Ejemplo n.º 1
0
 /**
  * @return Zend_Db_Table_Row
  */
 protected function _getErrorRow()
 {
     $row = self::$_model->fetchRow(array('sid=?' => 'error'));
     if (!$row) {
         $configError = new Z_Config('error_text');
         $errtext = $configError->getValue();
         $row = self::$_model->createRow(array('sid' => 'error', 'title' => 'Ошибка', 'text' => $errtext ? $errtext : 'Страница не найдена'));
     }
     return $row;
 }
Ejemplo n.º 2
0
 public function addAction()
 {
     $this->setViewPathes();
     $form = $this->getFormInstance();
     $data = $this->_request->getPost();
     $data = $this->addOverridePrevalidate($data);
     if (!$this->validateAction($data)) {
         Z_FlashMessenger::addMessage("Невозможно добавить новый элемент!");
         $this->disableRenderView();
         $this->ajaxGo($this->view->url(array("action" => $this->z_defaultAction)));
         return;
     }
     if (!empty($data) && $form->isValid($data)) {
         //получение данных из формы
         $dataForm = $form->getValues($data);
         if ($this->z_datatype == 'catalog' && !isset($dataForm['parentid'])) {
             $dataForm['parentid'] = $this->_getParam('parentid', 0);
         }
         //если есть дополнительные поля, то добавляем их в массив для insert
         if (!empty($this->z_addfields)) {
             $dataForm = array_merge($this->z_addfields, $dataForm);
         }
         if (!$this->addCheck($dataForm)) {
             $this->disableRenderView();
             Z_FlashMessenger::addMessage('Нельзя добавить новый элемент!');
             return;
         }
         //оверрайд
         $dataForm = $this->addOverride($dataForm);
         //добавление элемента в таблицу
         $item = $this->z_model->createRow($dataForm);
         $item->save();
         $id = $item->id;
         //саксэс
         $this->addSuccess(array_merge($item->toArray(), $dataForm));
         $this->addToIndex($item->toArray());
         //добавление связей многие ко многим
         if (!empty($this->z_refers)) {
             foreach ($this->z_refers as $referName => $refer) {
                 $referData = $dataForm[$referName] ? $dataForm[$referName] : array();
                 $referModel = new $refer['model']();
                 foreach ($referData as $referDataEl) {
                     $referModel->createRow(array($refer['field1'] => $id, $refer['field2'] => $referDataEl))->save();
                 }
             }
         }
         //если список сортируемый, то устанавливаем orderid для элемента
         if ($this->z_sortable) {
             $select = $this->z_model->select(true);
             $select->reset('columns')->columns(($this->z_sortable_position == 'top' ? 'MIN' : 'MAX') . '(orderid)')->where('id!=?', $id);
             $orderid = $select->query()->fetchColumn();
             if (!is_numeric($orderid)) {
                 $orderid = $id;
             } else {
                 $this->z_sortable_position == 'top' ? $orderid-- : $orderid++;
             }
             $item->orderid = $orderid;
             $item->save();
         }
         if (isset($data['z-ajax-form-applyonly'])) {
             $this->disableRenderView();
             $this->ajaxGo($this->view->url(array('action' => 'edit', 'id' => $id)));
         } else {
             $this->disableRenderView();
             $this->ajaxGo($this->view->url(array('action' => $this->z_defaultAction)));
         }
     }
     $this->view->form = $form;
 }
Ejemplo n.º 3
0
 public function addEl($uid, $descr)
 {
     //echo $descr;
     $row = $this->_model->createRow(array('uid' => $uid, 'descr' => $descr));
     $row->save();
 }