*/ class Mage_Adminhtml_Model_System_Config_Backend_Currency_Cron extends Mage_Core_Model_Config_Data { const CRON_STRING_PATH = 'crontab/jobs/currency_rates_update/schedule/cron_expr'; protected function _afterSave() { $enabled = $this->getData('groups/import/fields/enabled/value'); $service = $this->getData('groups/import/fields/service/value'); $time = $this->getData('groups/import/fields/time/value'); $frequency = $this->getData('groups/import/fields/frequency/value'); $errorEmail = $this->getData('groups/import/fields/error_email/value'); $frequencyDaily = Mage_Adminhtml_Model_System_Config_Source_Cron_Frequency::CRON_DAILY; $frequencyWeekly = Mage_Adminhtml_Model_System_Config_Source_Cron_Frequency::CRON_WEEKLY; $frequencyMonthly = Mage_Adminhtml_Model_System_Config_Source_Cron_Frequency::CRON_MONTHLY; $cronDayOfWeek = date('N'); $cronExprArray = array( intval($time[1]), # Minute intval($time[0]), # Hour ($frequency == $frequencyMonthly) ? '1' : '*', # Day of the Month '*', # Month of the Year ($frequency == $frequencyWeekly) ? '1' : '*', # Day of the Week ); $cronExprString = join(' ', $cronExprArray); try { Mage::getModel('core/config_data') ->load(self::CRON_STRING_PATH, 'path') ->setValue($cronExprString) ->setPath(self::CRON_STRING_PATH) ->save(); } catch (Exception $e) { throw new Exception(Mage::helper('cron')->__('Unable to save the cron expression.')); } } }