コード例 #1
0
 /**
  * Retrieve field dependencies
  *
  * @param array $dependencies
  * @param string $storeCode
  * @param string $fieldPrefix
  * @return array
  */
 public function getDependencies($dependencies, $storeCode, $fieldPrefix = '')
 {
     $output = array();
     foreach ($dependencies as $depend) {
         /* @var array $depend */
         $fieldId = $fieldPrefix . array_pop($depend['dependPath']);
         $depend['dependPath'][] = $fieldId;
         $dependentId = implode('_', $depend['dependPath']);
         $shouldAddDependency = true;
         $dependentValue = $depend['value'];
         if (isset($depend['separator'])) {
             $dependentValue = explode($depend['separator'], $dependentValue);
         }
         /** @var Mage_Backend_Model_Config_Structure_Element_Field $dependentField  */
         $dependentField = $this->_fieldLocator->getElement($depend['id']);
         /*
          * If dependent field can't be shown in current scope and real dependent config value
          * is not equal to preferred one, then hide dependence fields by adding dependence
          * based on not shown field (not rendered field)
          */
         if (false == $dependentField->isVisible()) {
             $valueInStore = $this->_application->getStore($storeCode)->getConfig($dependentField->getPath($fieldPrefix));
             if (is_array($dependentValue)) {
                 $shouldAddDependency = !in_array($valueInStore, $dependentValue);
             } else {
                 $shouldAddDependency = $dependentValue != $valueInStore;
             }
         }
         if ($shouldAddDependency) {
             $output[$dependentId] = $dependentValue;
         }
     }
     return $output;
 }
コード例 #2
0
 /**
  * @return Container
  */
 private function _buildContainer()
 {
     $this->_generatorConfig->addCompilerPass($this->_storeConfigCompilerPass);
     $this->_generatorConfig->addCompilerPass($this->_injectableCompilerPass);
     $this->_mageApp->dispatchEvent('symfony_container_before_container_generator', ['generator_config' => $this->_generatorConfig]);
     $generator = new ContainerGenerator($this->_generatorConfig);
     return $this->_container = $generator->getContainer();
 }
コード例 #3
0
 /**
  * @return Configuration
  */
 public function build()
 {
     $servicesFormat = 'xml';
     $cachedContainer = $this->_baseDir . '/' . self::CACHED_CONTAINER;
     $configuration = Configuration::fromParameters($cachedContainer, $this->_collectConfigFolders(), !$this->_mageApp->useCache(self::MODEL_ALIAS), $servicesFormat);
     $configuration->setTestEnvironment($this->_isTestEnvironment());
     return $configuration;
 }
コード例 #4
0
 /**
  * @param array $tag
  * @param Definition $definition
  */
 private function processTag($tag, Definition $definition)
 {
     foreach ($tag as $attribute) {
         if (isset($attribute['key'])) {
             $configValue = $this->_mageApp->getStore()->getConfig($attribute['key']);
             $definition->addArgument($configValue);
         }
     }
 }
コード例 #5
0
 protected function setUp()
 {
     /** Init all dependencies for SUT. */
     $this->_storeMock = $this->getMockBuilder('Mage_Core_Model_Store')->disableOriginalConstructor()->getMock();
     $this->_applicationMock = $this->getMockBuilder('Mage_Core_Model_App')->disableOriginalConstructor()->getMock();
     $this->_applicationMock->expects($this->any())->method('getStore')->will($this->returnValue($this->_storeMock));
     $this->_requestMock = $this->getMockBuilder('Mage_Webapi_Controller_Request_Soap')->disableOriginalConstructor()->getMock();
     $this->_domDocumentFactory = $this->getMockBuilder('Magento_DomDocument_Factory')->disableOriginalConstructor()->getMock();
     parent::setUp();
 }
コード例 #6
0
 /**
  * @covers Mage_Sales_Block_Adminhtml_Report_Filter_Form_Coupon::_afterToHtml
  */
 public function testAfterToHtml()
 {
     /** @var $block Mage_Sales_Block_Adminhtml_Report_Filter_Form_Coupon */
     $block = $this->_application->getLayout()->createBlock('Mage_Sales_Block_Adminhtml_Report_Filter_Form_Coupon');
     $block->setFilterData(new Varien_Object());
     $html = $block->toHtml();
     $expectedStrings = array('FormElementDependenceController', 'sales_report_rules_list', 'sales_report_price_rule_type');
     foreach ($expectedStrings as $expectedString) {
         $this->assertContains($expectedString, $html);
     }
 }
コード例 #7
0
 /**
  * @param Mage_Core_Model_App|integer $store
  *
  * @return AW_Followupemail_Model_Mysql4_Unsubscribe_Collection
  */
 public function addStoreFilter($store)
 {
     if ($store instanceof Mage_Core_Model_Store) {
         $storeId = $store->getId();
     } elseif (is_numeric($store)) {
         $storeId = $store;
     } else {
         return $this;
     }
     $this->addFieldToFilter('store_id', $storeId);
     return $this;
 }
コード例 #8
0
 /**
  * Set the passed in address object to ignore validation only when
  * we are currently saving an order and ROM Address validation is not
  * needed.
  *
  * @param  Mage_Customer_Model_Address_Abstract
  * @return self
  */
 public function allowAddressValidation(Mage_Customer_Model_Address_Abstract $address)
 {
     /** @var Mage_Core_Controller_Request_Http */
     $request = $this->app->getRequest();
     /** @var bool */
     $needValidation = $this->validator->shouldValidateAddress($address);
     // We only want to ignore address validation when we are actually creating an order.
     // The assumption is if we get to this point, then, validating the address is
     // unnecessary if it is already valid in ROM.
     if (!$needValidation && $request->getActionName() === 'saveOrder') {
         $address->setShouldIgnoreValidation(true);
     }
     return $this;
 }
コード例 #9
0
ファイル: Mage.php プロジェクト: natxetee/magento2
 /**
  * Shortcut for the application "is installed" getter
  *
  * @return bool
  * @throws Magento_Exception
  *
  * @todo Remove in favour of Mage_Core_Model_App::isInstalled() as soon as dependencies on application are injected
  */
 public static function isInstalled()
 {
     if (!self::$_app) {
         throw new Magento_Exception('Application instance has not been initialized yet.');
     }
     return self::$_app->isInstalled();
 }
コード例 #10
0
ファイル: Mage.php プロジェクト: nemphys/magento2
 /**
  * Front end main entry point
  *
  * @param string $code
  * @param string $type
  * @param string|array $options
  */
 public static function run($code = '', $type = 'store', $options = array())
 {
     try {
         Magento_Profiler::start('mage');
         self::setRoot();
         if (isset($options['edition'])) {
             self::$_currentEdition = $options['edition'];
         }
         self::$_app = new Mage_Core_Model_App();
         if (isset($options['request'])) {
             self::$_app->setRequest($options['request']);
         }
         if (isset($options['response'])) {
             self::$_app->setResponse($options['response']);
         }
         self::$_events = new Varien_Event_Collection();
         self::_setIsInstalled($options);
         self::_setConfigModel($options);
         self::$_app->run(array('scope_code' => $code, 'scope_type' => $type, 'options' => $options));
         Magento_Profiler::stop('mage');
     } catch (Mage_Core_Model_Session_Exception $e) {
         header('Location: ' . self::getBaseUrl());
     } catch (Mage_Core_Model_Store_Exception $e) {
         require_once self::getBaseDir() . '/pub/errors/404.php';
     } catch (Exception $e) {
         self::printException($e);
     }
 }
コード例 #11
0
ファイル: Collection.php プロジェクト: natxetee/magento2
 /**
  * Add stores to collection
  *
  * @return Mage_Rating_Model_Resource_Rating_Collection
  */
 public function addStoresToCollection()
 {
     if ($this->_app->isSingleStoreMode()) {
         return $this;
     }
     if (!$this->_isCollectionLoaded) {
         return $this;
     }
     $ratingIds = array();
     foreach ($this as $item) {
         $ratingIds[] = $item->getId();
         $item->setStores(array());
     }
     if (!$ratingIds) {
         return $this;
     }
     $adapter = $this->getConnection();
     $inCond = $adapter->prepareSqlCondition('rating_id', array('in' => $ratingIds));
     $this->_select = $adapter->select()->from($this->getTable('rating_store'))->where($inCond);
     $data = $adapter->fetchAll($this->_select);
     if (is_array($data) && count($data) > 0) {
         foreach ($data as $row) {
             $item = $this->getItemById($row['rating_id']);
             $item->setStores(array_merge($item->getStores(), array($row['store_id'])));
         }
     }
     return $this;
 }
コード例 #12
0
ファイル: Mage.php プロジェクト: redesignMob/extensii
 /**
  * Front end main entry point
  *
  * @param string $code
  * @param string $type
  * @param string|array $options
  */
 public static function run($code = '', $type = 'store', $options = array())
 {
     try {
         Varien_Profiler::start('mage');
         self::setRoot();
         self::$_app = new Mage_Core_Model_App();
         self::$_events = new Varien_Event_Collection();
         self::$_config = new Mage_Core_Model_Config($options);
         self::$_app->run(array('scope_code' => $code, 'scope_type' => $type, 'options' => $options));
         Varien_Profiler::stop('mage');
     } catch (Mage_Core_Model_Session_Exception $e) {
         header('Location: ' . self::getBaseUrl());
         die;
     } catch (Mage_Core_Model_Store_Exception $e) {
         require_once self::getBaseDir() . DS . 'errors' . DS . '404.php';
         die;
     } catch (Exception $e) {
         if (self::isInstalled() || self::$_isDownloader) {
             self::printException($e);
             exit;
         }
         try {
             self::dispatchEvent('mage_run_exception', array('exception' => $e));
             if (!headers_sent()) {
                 header('Location:' . self::getUrl('install'));
             } else {
                 self::printException($e);
             }
         } catch (Exception $ne) {
             self::printException($ne, $e->getMessage());
         }
     }
 }
コード例 #13
0
ファイル: Switcher.php プロジェクト: nickimproove/magento2
 /**
  * @return string
  */
 protected function _toHtml()
 {
     if (!$this->_application->isSingleStoreMode()) {
         return parent::_toHtml();
     }
     return '';
 }
コード例 #14
0
 /**
  * Process redirect (R) and permanent redirect (RP)
  *
  * @return Mage_Core_Model_Url_Rewrite_Request
  */
 protected function _processRedirectOptions()
 {
     $isPermanentRedirectOption = $this->_rewrite->hasOption('RP');
     $external = substr($this->_rewrite->getTargetPath(), 0, 6);
     if ($external === 'http:/' || $external === 'https:') {
         $destinationStoreCode = $this->_app->getStore($this->_rewrite->getStoreId())->getCode();
         $this->_setStoreCodeCookie($destinationStoreCode);
         $this->_sendRedirectHeaders($this->_rewrite->getTargetPath(), $isPermanentRedirectOption);
     }
     $targetUrl = $this->_request->getBaseUrl() . '/' . $this->_rewrite->getTargetPath();
     $storeCode = $this->_app->getStore()->getCode();
     if (Mage::getStoreConfig('web/url/use_store') && !empty($storeCode)) {
         $targetUrl = $this->_request->getBaseUrl() . '/' . $storeCode . '/' . $this->_rewrite->getTargetPath();
     }
     if ($this->_rewrite->hasOption('R') || $isPermanentRedirectOption) {
         $this->_sendRedirectHeaders($targetUrl, $isPermanentRedirectOption);
     }
     $queryString = $this->_getQueryString();
     if ($queryString) {
         $targetUrl .= '?' . $queryString;
     }
     $this->_request->setRequestUri($targetUrl);
     $this->_request->setPathInfo($this->_rewrite->getTargetPath());
     return $this;
 }
コード例 #15
0
ファイル: AppTest.php プロジェクト: natxetee/magento2
 /**
  * @magentoConfigFixture global/di/preferences/Mage_Core_Model_Url Mage_Backend_Model_Url
  * @magentoConfigFixture frontend/di/preferences/Mage_Core_Model_Url Mage_DesignEditor_Model_Url_NavigationMode
  */
 public function testLoadDiConfiguration()
 {
     $objectManager = Mage::getObjectManager();
     $this->_model = $objectManager->get('Mage_Core_Model_App');
     $this->_model->loadDiConfiguration('frontend');
     $testInstance = $objectManager->create('Mage_Backend_Block_Widget_Grid_ColumnSet');
     $this->assertAttributeInstanceOf('Mage_DesignEditor_Model_Url_NavigationMode', '_urlBuilder', $testInstance);
 }
コード例 #16
0
 /**
  * Initialize stores data
  *
  * @param bool $withDefault
  * @return Mage_ImportExport_Model_Import_Entity_EavAbstract
  */
 protected function _initStores($withDefault = false)
 {
     /** @var $store Mage_Core_Model_Store */
     foreach ($this->_storeManager->getStores($withDefault) as $store) {
         $this->_storeCodeToId[$store->getCode()] = $store->getId();
     }
     return $this;
 }
コード例 #17
0
 /**
  * Execute specified task
  *
  * @param array $task
  * @return bool
  */
 public function execute($task)
 {
     $taskDetails = Zend_Json::decode($task['data']);
     if (isset($taskDetails['task_name'])) {
         try {
             $this->_config->loadEventObservers('workers');
             $this->_app->addEventArea('workers');
             $this->getReporter()->reportTaskProcessing($task['task_id']);
             $this->_dispatchEvent($taskDetails['task_name'], $taskDetails['params']);
             $this->getReporter()->reportTaskCompleted($task['task_id']);
         } catch (Exception $e) {
             $this->getReporter()->reportTaskFailed($task['task_id']);
             $this->_logger->logException($e);
         }
     }
     return true;
 }
コード例 #18
0
 /**
  * Prepare affected product
  */
 protected function _prepareAffectedProduct()
 {
     /** @var $modelCondition Mage_Catalog_Model_Product_Condition */
     $modelCondition = $this->_factory->getModel('catalog/product_condition');
     $productCondition = $modelCondition->setTable($this->_resource->getTable('catalogrule/affected_product'))->setPkFieldName('product_id');
     $this->_app->dispatchEvent('catalogrule_after_apply', array('product' => $this->_getProduct(), 'product_condition' => $productCondition));
     $this->_connection->delete($this->_resource->getTable('catalogrule/affected_product'));
 }
コード例 #19
0
 /**
  * @param GetResponseEvent $event
  */
 public function onKernelRequestSetStore(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType() && $this->app) {
         $store = $this->storeResolver->resolve($event->getRequest());
         if (false !== $store) {
             // keep default store in case manual override fails
             $defaultStore = $this->app->getStore()->getCode();
             $this->app->setCurrentStore($store);
             try {
                 // try to load the store
                 $this->app->getStore();
             } catch (\Mage_Core_Model_Store_Exception $e) {
                 $this->app->setCurrentStore($defaultStore);
             }
         }
     }
 }
コード例 #20
0
ファイル: EntityAbstract.php プロジェクト: nemphys/magento2
 /**
  * Initialize website values
  *
  * @param bool $withDefault
  * @return Mage_ImportExport_Model_Export_EntityAbstract
  */
 protected function _initWebsites($withDefault = false)
 {
     /** @var $website Mage_Core_Model_Website */
     foreach ($this->_websiteManager->getWebsites($withDefault) as $website) {
         $this->_websiteIdToCode[$website->getId()] = $website->getCode();
     }
     return $this;
 }
コード例 #21
0
ファイル: Grid.php プロジェクト: nemphys/magento2
 protected function _prepareColumns()
 {
     $this->addColumn('subscriber_id', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('ID'), 'index' => 'subscriber_id'));
     $this->addColumn('email', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Email'), 'index' => 'subscriber_email'));
     $this->addColumn('type', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Type'), 'index' => 'type', 'type' => 'options', 'options' => array(1 => Mage::helper('Mage_Newsletter_Helper_Data')->__('Guest'), 2 => Mage::helper('Mage_Newsletter_Helper_Data')->__('Customer'))));
     $this->addColumn('firstname', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Customer First Name'), 'index' => 'customer_firstname', 'default' => '----'));
     $this->addColumn('lastname', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Customer Last Name'), 'index' => 'customer_lastname', 'default' => '----'));
     $this->addColumn('status', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Status'), 'index' => 'subscriber_status', 'type' => 'options', 'options' => array(Mage_Newsletter_Model_Subscriber::STATUS_NOT_ACTIVE => Mage::helper('Mage_Newsletter_Helper_Data')->__('Not Activated'), Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED => Mage::helper('Mage_Newsletter_Helper_Data')->__('Subscribed'), Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED => Mage::helper('Mage_Newsletter_Helper_Data')->__('Unsubscribed'), Mage_Newsletter_Model_Subscriber::STATUS_UNCONFIRMED => Mage::helper('Mage_Newsletter_Helper_Data')->__('Unconfirmed'))));
     if (!$this->_app->isSingleStoreMode()) {
         $this->addColumn('website', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Website'), 'index' => 'website_id', 'type' => 'options', 'options' => $this->_getWebsiteOptions()));
         $this->addColumn('group', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Store'), 'index' => 'group_id', 'type' => 'options', 'options' => $this->_getStoreGroupOptions()));
         $this->addColumn('store', array('header' => Mage::helper('Mage_Newsletter_Helper_Data')->__('Store View'), 'index' => 'store_id', 'type' => 'options', 'options' => $this->_getStoreOptions()));
     }
     $this->addExportType('*/*/exportCsv', Mage::helper('Mage_Customer_Helper_Data')->__('CSV'));
     $this->addExportType('*/*/exportXml', Mage::helper('Mage_Customer_Helper_Data')->__('Excel XML'));
     return parent::_prepareColumns();
 }
コード例 #22
0
ファイル: Field.php プロジェクト: nickimproove/magento2
 /**
  * Render scope label
  *
  * @param Varien_Data_Form_Element_Abstract $element
  * @return string
  */
 protected function _renderScopeLabel(Varien_Data_Form_Element_Abstract $element)
 {
     $html = '<td class="scope-label">';
     if ($element->getScope() && false == $this->_application->isSingleStoreMode()) {
         $html .= $element->getScopeLabel();
     }
     $html .= '</td>';
     return $html;
 }
コード例 #23
0
 /**
  * Test maskException method with turned on developer mode.
  */
 public function testMaskExceptionInDeveloperMode()
 {
     /** Mock app isDeveloperMode to return true. */
     $this->_appMock->expects($this->once())->method('isDeveloperMode')->will($this->returnValue(true));
     /** Init Logical exception. */
     $logicalException = new LogicException();
     /** Asser Webapi exception was not masked. */
     $this->assertEquals($this->_errorProcessor->maskException($logicalException), $logicalException, 'Exception was masked wrong in developer mode.');
 }
コード例 #24
0
 /**
  * Parse Request body into array of params.
  *
  * @param string $encodedBody Posted content from request.
  * @return array|null Return NULL if content is invalid.
  * @throws InvalidArgumentException
  * @throws Mage_Webapi_Exception If decoding error was encountered.
  */
 public function interpret($encodedBody)
 {
     if (!is_string($encodedBody)) {
         throw new InvalidArgumentException(sprintf('Invalid data type "%s". String is expected.', gettype($encodedBody)));
     }
     try {
         /** @var Mage_Core_Helper_Data $jsonHelper */
         $jsonHelper = $this->_helperFactory->get('Mage_Core_Helper_Data');
         $decodedBody = $jsonHelper->jsonDecode($encodedBody);
     } catch (Zend_Json_Exception $e) {
         if (!$this->_app->isDeveloperMode()) {
             throw new Mage_Webapi_Exception($this->_helper->__('Decoding error.'), Mage_Webapi_Exception::HTTP_BAD_REQUEST);
         } else {
             throw new Mage_Webapi_Exception('Decoding error: ' . PHP_EOL . $e->getMessage() . PHP_EOL . $e->getTraceAsString(), Mage_Webapi_Exception::HTTP_BAD_REQUEST);
         }
     }
     return $decodedBody;
 }
コード例 #25
0
ファイル: Rule.php プロジェクト: buttasg/cowgirlk
 /**
  * Inserts rule data into catalogrule/rule_product table
  *
  * @param Mage_CatalogRule_Model_Rule $rule
  * @param array $websiteIds
  * @param array $productIds
  */
 public function insertRuleData(Mage_CatalogRule_Model_Rule $rule, array $websiteIds, array $productIds = array())
 {
     /** @var $write Varien_Db_Adapter_Interface */
     $write = $this->_getWriteAdapter();
     $customerGroupIds = $rule->getCustomerGroupIds();
     $fromTime = (int) strtotime($rule->getFromDate());
     $toTime = (int) strtotime($rule->getToDate());
     $toTime = $toTime ? $toTime + self::SECONDS_IN_DAY - 1 : 0;
     $sortOrder = (int) $rule->getSortOrder();
     $actionOperator = $rule->getSimpleAction();
     $actionAmount = (double) $rule->getDiscountAmount();
     $subActionOperator = $rule->getSubIsEnable() ? $rule->getSubSimpleAction() : '';
     $subActionAmount = (double) $rule->getSubDiscountAmount();
     $actionStop = (int) $rule->getStopRulesProcessing();
     /** @var $helper Mage_Catalog_Helper_Product_Flat */
     $helper = $this->_factory->getHelper('catalog/product_flat');
     if ($helper->isEnabled() && $helper->isBuiltAllStores()) {
         /** @var $store Mage_Core_Model_Store */
         foreach ($this->_app->getStores(false) as $store) {
             if (in_array($store->getWebsiteId(), $websiteIds)) {
                 /** @var $selectByStore Varien_Db_Select */
                 $selectByStore = $rule->getProductFlatSelect($store->getId())->joinLeft(array('cg' => $this->getTable('customer/customer_group')), $write->quoteInto('cg.customer_group_id IN (?)', $customerGroupIds), array('cg.customer_group_id'))->reset(Varien_Db_Select::COLUMNS)->columns(array(new Zend_Db_Expr($store->getWebsiteId()), 'cg.customer_group_id', 'p.entity_id', new Zend_Db_Expr($rule->getId()), new Zend_Db_Expr($fromTime), new Zend_Db_Expr($toTime), new Zend_Db_Expr("'" . $actionOperator . "'"), new Zend_Db_Expr($actionAmount), new Zend_Db_Expr($actionStop), new Zend_Db_Expr($sortOrder), new Zend_Db_Expr("'" . $subActionOperator . "'"), new Zend_Db_Expr($subActionAmount)));
                 if (count($productIds) > 0) {
                     $selectByStore->where('p.entity_id IN (?)', array_keys($productIds));
                 }
                 $selects = $write->selectsByRange('entity_id', $selectByStore, self::RANGE_PRODUCT_STEP);
                 foreach ($selects as $select) {
                     $write->query($write->insertFromSelect($select, $this->getTable('catalogrule/rule_product'), array('website_id', 'customer_group_id', 'product_id', 'rule_id', 'from_time', 'to_time', 'action_operator', 'action_amount', 'action_stop', 'sort_order', 'sub_simple_action', 'sub_discount_amount'), Varien_Db_Adapter_Interface::INSERT_IGNORE));
                 }
             }
         }
     } else {
         if (count($productIds) == 0) {
             Varien_Profiler::start('__MATCH_PRODUCTS__');
             $productIds = $rule->getMatchingProductIds();
             Varien_Profiler::stop('__MATCH_PRODUCTS__');
         }
         $rows = array();
         foreach ($productIds as $productId => $validationByWebsite) {
             foreach ($websiteIds as $websiteId) {
                 foreach ($customerGroupIds as $customerGroupId) {
                     if (empty($validationByWebsite[$websiteId])) {
                         continue;
                     }
                     $rows[] = array('rule_id' => $rule->getId(), 'from_time' => $fromTime, 'to_time' => $toTime, 'website_id' => $websiteId, 'customer_group_id' => $customerGroupId, 'product_id' => $productId, 'action_operator' => $actionOperator, 'action_amount' => $actionAmount, 'action_stop' => $actionStop, 'sort_order' => $sortOrder, 'sub_simple_action' => $subActionOperator, 'sub_discount_amount' => $subActionAmount);
                     if (count($rows) == 1000) {
                         $write->insertMultiple($this->getTable('catalogrule/rule_product'), $rows);
                         $rows = array();
                     }
                 }
             }
         }
         if (!empty($rows)) {
             $write->insertMultiple($this->getTable('catalogrule/rule_product'), $rows);
         }
     }
 }
コード例 #26
0
ファイル: Emulation.php プロジェクト: okite11/frames21
 /**
  * Restore locale of the initial store
  *
  * @param string $initialLocaleCode
  * @param string $initialArea
  *
  * @return Mage_Core_Model_App_Emulation
  */
 protected function _restoreInitialLocale($initialLocaleCode, $initialArea = Mage_Core_Model_App_Area::AREA_ADMINHTML)
 {
     $currentLocaleCode = $this->_app->getLocale()->getLocaleCode();
     if ($currentLocaleCode != $initialLocaleCode) {
         $this->_app->getLocale()->setLocaleCode($initialLocaleCode);
         $this->_factory->getSingleton('core/translate')->setLocale($initialLocaleCode)->init($initialArea, true);
     }
     return $this;
 }
コード例 #27
0
 /**
  * Get rate for current row, 1 by default
  *
  * @param $row
  * @return float|int
  */
 protected function _getRate($row)
 {
     if ($rate = $this->getColumn()->getRate()) {
         return floatval($rate);
     }
     if ($rate = $row->getData($this->getColumn()->getRateField())) {
         return floatval($rate);
     }
     return $this->_app->getStore()->getBaseCurrency()->getRate($this->_getCurrencyCode($row));
 }
コード例 #28
0
 /**
  * @see Mage_Core_Model_App::dispatchEvent($eventName, $args)
  */
 public function dispatchEvent($eventName, $args)
 {
     $event = new Varien_Event($args);
     $event->setName($eventName);
     $observer = new Varien_Event_Observer();
     $observer->setData(array('event' => $event));
     $observer->addData($args);
     $this->_bar->update($observer->getEvent());
     return parent::dispatchEvent($eventName, $args);
 }
コード例 #29
0
 /**
  * Retrieve default currency for selected store, website or website group
  *
  * @param Mage_Core_Controller_Request_Http $request
  * @return string
  */
 public function getDefaultCurrency(Mage_Core_Controller_Request_Http $request)
 {
     if ($request->getParam('store')) {
         $store = $request->getParam('store');
         $currencyCode = $this->_app->getStore($store)->getBaseCurrencyCode();
     } else {
         if ($request->getParam('website')) {
             $website = $request->getParam('website');
             $currencyCode = $this->_app->getWebsite($website)->getBaseCurrencyCode();
         } else {
             if ($request->getParam('group')) {
                 $group = $request->getParam('group');
                 $currencyCode = $this->_app->getGroup($group)->getWebsite()->getBaseCurrencyCode();
             } else {
                 $currencyCode = $this->_app->getStore()->getBaseCurrencyCode();
             }
         }
     }
     return $currencyCode;
 }
コード例 #30
0
 /**
  * Listener for before product delete event. Deletes product custom redirects.
  * Needed because of http://bugs.mysql.com/bug.php?id=11472
  * @param Varien_Event_Observer $observer
  */
 public function deleteProductCustomRedirects(Varien_Event_Observer $observer)
 {
     if ((string) $this->_app->getConfig()->getNode(Enterprise_UrlRewrite_Model_Index_Observer::XML_PATH_REDIRECT_URL_SUFFIX_UPDATE_ON_SAVE)) {
         return;
     }
     /** @var Mage_Catalog_Model_Product $product */
     $product = $observer->getProduct();
     /** @var Enterprise_UrlRewrite_Model_Resource_Redirect $redirects */
     $redirects = $this->_factory->getResourceModel('enterprise_urlrewrite/redirect');
     $redirects->deleteByProductIds(array($product->getId()));
 }