/** * @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; }
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; }
public function addEl($uid, $descr) { //echo $descr; $row = $this->_model->createRow(array('uid' => $uid, 'descr' => $descr)); $row->save(); }