Overview

Packages

  • currencysymbol
  • MAbout
  • Mage
    • Admin
    • Adminhtml
    • AdminNotification
    • Api
    • Api2
    • Authorizenet
    • Backup
    • Bundle
    • Captcha
    • Catalog
    • CatalogIndex
    • CatalogInventory
    • CatalogRule
    • CatalogSearch
    • Centinel
    • Checkout
    • Cms
    • Compiler
    • Connect
    • Contacts
    • Core
    • Cron
    • CurrencySymbol
    • Customer
    • Dataflow
    • Directory
    • DirtectPost
    • Downloadable
    • Eav
    • GiftMessage
    • GoogleAnalytics
    • GoogleBase
    • GoogleCheckout
    • ImportExport
    • Index
    • Install
    • Log
    • Media
    • Newsletter
    • Oauth
    • Page
    • PageCache
    • Paygate
    • Payment
    • Paypal
    • PaypalUk
    • Persistent
    • Poll
    • ProductAlert
    • Rating
    • Reports
    • Review
    • Rss
    • Rule
    • Sales
    • SalesRule
    • Sedfriend
    • Sendfriend
    • Shipping
    • Sitemap
    • Tag
    • Tax
    • Usa
    • Weee
    • Widget
    • Wishlist
    • XmlConnect
  • None
  • Phoenix
    • Moneybookers
  • PHP
  • Zend
    • Date
    • Mime
    • XmlRpc

Classes

  • Mage_Core_Model_Convert
  • Mage_Dataflow_Helper_Data
  • Mage_Dataflow_Model_Batch
  • Mage_Dataflow_Model_Batch_Abstract
  • Mage_Dataflow_Model_Batch_Export
  • Mage_Dataflow_Model_Batch_Import
  • Mage_Dataflow_Model_Batch_Io
  • Mage_Dataflow_Model_Convert
  • Mage_Dataflow_Model_Convert_Action
  • Mage_Dataflow_Model_Convert_Action_Abstract
  • Mage_Dataflow_Model_Convert_Adapter_Abstract
  • Mage_Dataflow_Model_Convert_Adapter_Db_Table
  • Mage_Dataflow_Model_Convert_Adapter_Http
  • Mage_Dataflow_Model_Convert_Adapter_Http_Curl
  • Mage_Dataflow_Model_Convert_Adapter_Io
  • Mage_Dataflow_Model_Convert_Adapter_Soap
  • Mage_Dataflow_Model_Convert_Adapter_Std
  • Mage_Dataflow_Model_Convert_Adapter_Zend_Cache
  • Mage_Dataflow_Model_Convert_Adapter_Zend_Db
  • Mage_Dataflow_Model_Convert_Container_Abstract
  • Mage_Dataflow_Model_Convert_Container_Collection
  • Mage_Dataflow_Model_Convert_Container_Generic
  • Mage_Dataflow_Model_Convert_Exception
  • Mage_Dataflow_Model_Convert_Iterator_File_Csv
  • Mage_Dataflow_Model_Convert_Iterator_Http
  • Mage_Dataflow_Model_Convert_Mapper_Abstract
  • Mage_Dataflow_Model_Convert_Mapper_Column
  • Mage_Dataflow_Model_Convert_Parser_Abstract
  • Mage_Dataflow_Model_Convert_Parser_Csv
  • Mage_Dataflow_Model_Convert_Parser_Serialize
  • Mage_Dataflow_Model_Convert_Parser_Xml_Excel
  • Mage_Dataflow_Model_Convert_Profile
  • Mage_Dataflow_Model_Convert_Profile_Abstract
  • Mage_Dataflow_Model_Convert_Profile_Collection
  • Mage_Dataflow_Model_Convert_Validator_Abstract
  • Mage_Dataflow_Model_Convert_Validator_Column
  • Mage_Dataflow_Model_Convert_Validator_Dryrun
  • Mage_Dataflow_Model_Import
  • Mage_Dataflow_Model_Mysql4_Batch
  • Mage_Dataflow_Model_Mysql4_Batch_Abstract
  • Mage_Dataflow_Model_Mysql4_Batch_Collection
  • Mage_Dataflow_Model_Mysql4_Batch_Export
  • Mage_Dataflow_Model_Mysql4_Batch_Import
  • Mage_Dataflow_Model_Mysql4_Import
  • Mage_Dataflow_Model_Mysql4_Import_Collection
  • Mage_Dataflow_Model_Mysql4_Profile
  • Mage_Dataflow_Model_Mysql4_Profile_Collection
  • Mage_Dataflow_Model_Mysql4_Profile_History
  • Mage_Dataflow_Model_Mysql4_Profile_History_Collection
  • Mage_Dataflow_Model_Mysql4_Session
  • Mage_Dataflow_Model_Profile
  • Mage_Dataflow_Model_Profile_History
  • Mage_Dataflow_Model_Resource_Batch
  • Mage_Dataflow_Model_Resource_Batch_Abstract
  • Mage_Dataflow_Model_Resource_Batch_Collection
  • Mage_Dataflow_Model_Resource_Batch_Export
  • Mage_Dataflow_Model_Resource_Batch_Import
  • Mage_Dataflow_Model_Resource_Import
  • Mage_Dataflow_Model_Resource_Import_Collection
  • Mage_Dataflow_Model_Resource_Profile
  • Mage_Dataflow_Model_Resource_Profile_Collection
  • Mage_Dataflow_Model_Resource_Profile_History
  • Mage_Dataflow_Model_Resource_Profile_History_Collection
  • Mage_Dataflow_Model_Resource_Session
  • Mage_Dataflow_Model_Session
  • Mage_Dataflow_Model_Session_Adapter_Http
  • Mage_Dataflow_Model_Session_Adapter_Iterator
  • Mage_Dataflow_Model_Session_Parser_Csv

Interfaces

  • Mage_Dataflow_Model_Convert_Action_Interface
  • Mage_Dataflow_Model_Convert_Adapter_Interface
  • Mage_Dataflow_Model_Convert_Container_Interface
  • Mage_Dataflow_Model_Convert_Iterator_Interface
  • Mage_Dataflow_Model_Convert_Mapper_Interface
  • Mage_Dataflow_Model_Convert_Parser_Interface
  • Mage_Dataflow_Model_Convert_Profile_Interface
  • Mage_Dataflow_Model_Convert_Validator_Interface
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Magento
  4:  *
  5:  * NOTICE OF LICENSE
  6:  *
  7:  * This source file is subject to the Open Software License (OSL 3.0)
  8:  * that is bundled with this package in the file LICENSE.txt.
  9:  * It is also available through the world-wide-web at this URL:
 10:  * http://opensource.org/licenses/osl-3.0.php
 11:  * If you did not receive a copy of the license and are unable to
 12:  * obtain it through the world-wide-web, please send an email
 13:  * to license@magentocommerce.com so we can send you a copy immediately.
 14:  *
 15:  * DISCLAIMER
 16:  *
 17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
 18:  * versions in the future. If you wish to customize Magento for your
 19:  * needs please refer to http://www.magentocommerce.com for more information.
 20:  *
 21:  * @category    Mage
 22:  * @package     Mage_Dataflow
 23:  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 24:  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 25:  */
 26: class Mage_Dataflow_Model_Session_Adapter_Iterator extends Mage_Dataflow_Model_Convert_Adapter_Abstract
 27: {
 28:     public function walk()
 29:     {
 30:         $sessionId = Mage::registry('current_dataflow_session_id');
 31:         $import = Mage::getResourceModel('dataflow/import');
 32:         $total = $import->loadTotalBySessionId($sessionId);
 33: 
 34:         $callbacks = array();
 35:         if ($mapperCb = $this->_parseCallback($this->getVar('mapper'), 'mapRow')) {
 36:             $callbacks[] = $mapperCb;
 37:         }
 38:         if ($adapterCb = $this->_parseCallback($this->getVar('adapter'), 'saveRow')) {
 39:             $callbacks[] = $adapterCb;
 40:         }
 41:         $callbacks[] = array($this, 'updateProgress');
 42: 
 43:         echo $this->_getProgressBarHtml($sessionId, $total['cnt']);
 44: 
 45:         Mage::getModel('core/resource_iterator')
 46:             ->walk($import->select($sessionId), $callbacks);
 47:     }
 48: 
 49:     protected function _getProgressBarHtml($sessionId, $totalRows)
 50:     {
 51:         return '
 52: <li>
 53:     <div style="position:relative">
 54:         <div id="progress_bar_'.$sessionId.'" style="position:absolute; background:green; height:2px; width:0; top:-2px; left:-2px; overflow:hidden; "></div>
 55:         <div>
 56:             '.$this->__('Total records: %s', '<strong>'.$totalRows.'</strong>').',
 57:             '.$this->__('Processed records: %s', '<strong><span id="records_processed_'.$sessionId.'">0</span></strong>').',
 58:             '.$this->__('ETA: %s', '<strong><span id="finish_eta_'.$sessionId.'">N/A</span></strong>').',
 59:             '.$this->__('Memory Used: %s', '<strong><span id="memory_'.$sessionId.'">'.memory_get_usage(true).'</span></strong>').'
 60:         </div>
 61:     </div>
 62: </li>
 63: <script type="text/javascript">
 64: function updateProgress(sessionId, idx, time, memory) {
 65:     var total_rows = '.$totalRows.';
 66:     var elapsed_time = time-'.time().';
 67:     var total_time = Math.round(elapsed_time*total_rows/idx);
 68:     var eta = total_time-elapsed_time;
 69:     var eta_str = "";
 70:     var eta_hours = Math.floor(eta/3600);
 71:     var eta_minutes = Math.floor(eta/60)%60;
 72: 
 73:     if (total_rows==idx) {
 74:         eta_str = "'.$this->__('Done').'";
 75:     } else if (!eta_hours && !eta_minutes) {
 76:         eta_str = "'.$this->__('Less than a minute').'";
 77:     } else {
 78:         if (eta_hours) {
 79:             eta_str += eta_hours+" "+(eta_hours>1 ? "'.$this->__('hours').'" : "'.$this->__('hour').'");
 80:         }
 81:         if (eta_minutes) {
 82:             eta_str += eta_minutes+" "+(eta_minutes>1 ? "'.$this->__('minutes').'" : "'.$this->__('minute').'");
 83:         }
 84:     }
 85: 
 86:     document.getElementById("records_processed_'.$sessionId.'").innerHTML= idx;
 87:     document.getElementById("finish_eta_'.$sessionId.'").innerHTML = eta_str;
 88:     document.getElementById("memory_'.$sessionId.'").innerHTML = memory;
 89:     document.getElementById("progress_bar_'.$sessionId.'").style.width = (idx/total_rows*100)+"%";
 90: }
 91: </script>';
 92:     }
 93: 
 94:     public function updateProgress($args)
 95:     {
 96:         $memory = !empty($args['memory']) ? $args['memory'] : '';
 97:         echo '<script type="text/javascript">updateProgress("'.$args['row']['session_id'].'", "'.$args['idx'].'", "'.time().'", "'.$memory.'");</script>';
 98:         echo '<li>'.$memory.'</li>';
 99: 
100:         return array();
101:     }
102: 
103:     protected function _parseCallback($callback, $defaultMethod=null)
104:     {
105:         if (!preg_match('#^([a-z0-9_/]+)(::([a-z0-9_]+))?$#i', $callback, $match)) {
106:             return false;
107:         }
108:         if (!($model = Mage::getModel($match[1]))) {
109:             return false;
110:         }
111:         if (!($method = $match[3] ? $match[3] : $defaultMethod)) {
112:             return false;
113:         }
114:         return array($model, $method);
115:     }
116: }
117: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0