/** * @overide * @return Df_YandexMarket_Model_System_Config_Backend_Conditions */ protected function _beforeSave() { try { if ($this->validate()) { $this->getRule()->loadPost(array('conditions' => df_a(df_a($this->getPost(), 'rule'), 'conditions'), 'website_ids' => $this->getWebsiteIds())); $this->getRule()->setDataChanges(true); $this->getRule()->save(); df_assert_between($this->getRule()->getId(), 1); $this->setValue($this->getRule()->getId()); } } catch (Exception $e) { df_log_exception($e); rm_session()->addError($e->getMessage()); } parent::_beforeSave(); return $this; }
/** * @overide * @return Df_YandexMarket_Model_System_Config_Backend_Currency */ protected function _beforeSave() { parent::_beforeSave(); if (!in_array($this->getValue(), Df_YandexMarket_Model_System_Config_Source_Currency::getAllowedCurrencies())) { /** @var string $currencyName */ $currencyName = $this->getValue(); try { /** @var Zend_Currency $result */ $currency = Mage::app()->getLocale()->currency($this->getValue()); $currencyName = $currency->getName(); } catch (Exception $e) { } df_error(sprintf('Яндекс.Маркет не допускает указанную Вами валюту «%s» в качестве основной валюты магазина.', $currencyName)); } else { /** @var Df_Admin_Model_Config_BackendChecker_CurrencyIsSupported $checker */ $checker = df_model(Df_Admin_Model_Config_BackendChecker_CurrencyIsSupported::getNameInMagentoFormat(), array(Df_Admin_Model_Config_BackendChecker_CurrencyIsSupported::PARAM__CURRENCY_CODE => $this->getValue(), Df_Admin_Model_Config_BackendChecker_CurrencyIsSupported::PARAM__BACKEND => $this)); df_assert($checker instanceof Df_Admin_Model_Config_BackendChecker_CurrencyIsSupported); $checker->check(); } return $this; }