예제 #1
0
 public function addAction()
 {
     $form = new Zetta_Form(Zend_Registry::get('config')->Cron->form->task);
     /* заполняем выпадающие списки данными */
     $minute = $form->getElement('minute');
     for ($i = -1; $i <= 59; $i++) {
         $i == -1 ? $minute->addMultiOption('*', '*') : $minute->addMultiOption($i, $i);
     }
     $hour = $form->getElement('hour');
     for ($i = -1; $i <= 23; $i++) {
         $i == -1 ? $hour->addMultiOption('*', '*') : $hour->addMultiOption($i, sprintf('%02d', $i));
     }
     $day = $form->getElement('day');
     for ($i = 0; $i <= 31; $i++) {
         $i == 0 ? $day->addMultiOption('*', '*') : $day->addMultiOption($i, sprintf('%02d', $i));
     }
     $month = $form->getElement('month');
     for ($i = 0; $i <= 12; $i++) {
         if ($i == 0) {
             $month->addMultiOption('*', '*');
         } else {
             $month_str = Zend_Locale_Data::getContent(new Zend_Locale(), 'month', array('gregorian', 'stand-alone', 'wide', intval($i)));
             $month->addMultiOption($i, $month_str);
         }
     }
     $week = $form->getElement('week_day');
     $array_weekDay = array('', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun');
     for ($i = 0; $i <= 7; $i++) {
         if ($i == 0) {
             $week->addMultiOption('*', '*');
         } else {
             $week_str = Zend_Locale_Data::getContent(new Zend_Locale(), 'day', array('gregorian', 'format', 'wide', $array_weekDay[$i]));
             $week->addMultiOption($i, $week_str);
         }
     }
     if ($cron_id = $this->getParam('cron_id')) {
         $this->view->cron_id = $cron_id;
         $editData = $this->_model->fetchRow($this->_model->select()->where('cron_id = ?', $cron_id))->toArray();
         $form->setDefaults($editData);
     }
     if (!sizeof($_POST) || !$form->isValid($_POST)) {
         $this->view->form = $form;
     } else {
         $arrayData = array('minute' => $form->getValue('minute'), 'hour' => $form->getValue('hour'), 'day' => $form->getValue('day'), 'month' => $form->getValue('month'), 'week_day' => $form->getValue('week_day'), 'task' => $form->getValue('task'), 'active' => (bool) $form->getValue('active') == true ? '1' : new Zend_Db_Expr('NULL'));
         if ($cron_id) {
             $this->_model->update($arrayData, $this->_model->getAdapter()->quoteInto('cron_id = ?', $cron_id));
         } else {
             $this->_model->insert($arrayData);
         }
         $this->renderScript('admin/addComplete.ajax.phtml');
     }
 }