Пример #1
0
 public function runAction()
 {
     @set_time_limit(0);
     AO::app()->cleanCache();
     // Clean all cach
     $this->_initImport();
     $importModel = AO::registry('oscommerce_adminhtml_import');
     /** @var $importModel Mage_Oscommerce_Model_Oscommerce */
     $totalRecords = array();
     // Start handling charsets
     $connCharset = $this->getRequest()->getParam('connection_charset');
     if ($connCharset) {
         $importModel->getSession()->setConnectionCharset($connCharset);
         $importModel->getResource()->setConnectionCharset($connCharset);
     }
     $dataCharset = $this->getRequest()->getParam('data_charset');
     if ($dataCharset) {
         $importModel->getSession()->setDataCharset($dataCharset);
         $importModel->getResource()->setDataCharset($dataCharset);
     }
     // End hanlding charsets
     $timezone = $this->getRequest()->getParam('timezone');
     $importModel->getSession()->setTimezone($timezone);
     $importModel->getResource()->resetConnectionCharset();
     if ($tablPrefix = $importModel->getTablePrefix()) {
         $importModel->getResource()->setTablePrefix($tablPrefix);
     }
     $importModel->getResource()->setImportModel($importModel);
     $importModel->getResource()->importCollection($importModel->getId());
     // Setting Locale for stores
     $locales = explode("|", $this->getRequest()->getParam('store_locale'));
     $storeLocales = array();
     if ($locales) {
         foreach ($locales as $locale) {
             $localeCode = explode(':', $locale);
             $storeLocales[$localeCode[0]] = $localeCode[1];
         }
     }
     $importModel->getSession()->setStoreLocales($storeLocales);
     $importModel->getResource()->setStoreLocales($storeLocales);
     // End setting Locale for stores
     $websiteId = $this->getRequest()->getParam('website_id');
     $websiteCode = $this->getRequest()->getParam('website_code');
     $options = $this->getRequest()->getParam('import');
     // Checking Website, StoreGroup and RootCategory
     if (!$websiteId) {
         $importModel->getResource()->setWebsiteCode($websiteCode);
         $importModel->getResource()->createWebsite();
     } else {
         $importModel->getResource()->createWebsite($websiteId);
     }
     // End checking Website, StoreGroup and RootCategory
     $importModel->getResource()->importStores();
     $importModel->getResource()->importTaxClasses();
     $importModel->getResource()->createOrderTables();
     if (isset($options['categories'])) {
         $importModel->getSession()->setIsProductWithCategories(true);
         $totalRecords['categories'] = $importModel->getResource()->getCategoriesCount();
     }
     if (isset($options['products'])) {
         $totalRecords['products'] = $importModel->getResource()->getProductsCount();
     }
     if (isset($options['customers'])) {
         $totalRecords['customers'] = $importModel->getResource()->getCustomersCount();
     }
     if (isset($options['customers']) && isset($options['orders'])) {
         $totalRecords['orders'] = $importModel->getResource()->getOrdersCount();
     }
     if ($totalRecords) {
         $importModel->setTotalRecords($totalRecords);
         AO::unRegister('oscommerce_adminhtml_import');
         AO::register('oscommerce_adminhtml_import', $importModel);
     }
     $this->getResponse()->setBody($this->getLayout()->createBlock('oscommerce/adminhtml_import_run')->toHtml());
     $this->getResponse()->sendResponse();
 }