Example #1
0
 /**
  * insert с учётом создания таблицы для хранения данных о публикации
  *
  * @param array $data
  * @return int
  */
 public function insert(array $data)
 {
     $rowID = parent::insert($data);
     if ($rowID) {
         /* создаём таблицу для хранения данных */
         $tableName = $data['table_name'];
         if (!System_Functions::tableExist($tableName)) {
             $_migrationManager = new Modules_Dbmigrations_Framework_Manager();
             $_migrationManager->upTo('Modules_Publications_Migrations_CreatePublicationAbstractTable', $tableName, false);
             // Добавляем базовые поля
             $filedsModel = new Modules_Publications_Model_Fields();
             $filedsModel->insert(array('rubric_id' => $rowID, 'name' => 'name', 'title' => 'Название', 'type' => 'text', 'validator' => '.*', 'sort' => 1));
             $filedsModel->insert(array('rubric_id' => $rowID, 'name' => 'active', 'title' => 'активно', 'type' => 'checkbox', 'default' => '1', 'sort' => 2));
         }
     }
     return $rowID;
 }
 /**
  * Добавляем поле в тип публикации
  *
  */
 public function addfieldAction()
 {
     if (!$this->_rubric) {
         throw new Exception('rubric_id не определён');
     }
     $form = new Zetta_Form(Zend_Registry::get('config')->Publications->form->fields);
     if ($field_id = $this->getParam('field_id')) {
         $this->view->field_id = $field_id;
         $editData = $this->_modelFields->fetchRow($this->_modelFields->select()->where('field_id = ?', $field_id))->toArray();
         $form->setDefaults($editData);
         $form->getElement('name')->setAttrib('disabled', 'disabled');
     }
     if (!sizeof($_POST) || !$form->isValid($_POST)) {
         $this->view->form = $form;
     } else {
         $arrayData = array('rubric_id' => $this->_rubric->rubric_id, 'name' => $form->getValue('name'), 'title' => $form->getValue('title'), 'type' => $form->getValue('type'), 'validator' => $form->getValue('validator'), 'default' => $form->getValue('default'), 'errormsg' => $form->getValue('errormsg'), 'list_values' => $form->getValue('list_values'), 'hidden_front' => $form->getValue('hidden_front'));
         if ($field_id) {
             $this->_modelFields->update($arrayData, $this->_modelFields->getAdapter()->quoteInto('field_id = ?', $field_id));
         } else {
             $this->_modelFields->insert($arrayData);
         }
         $this->renderScript('admin/addfieldComplete.ajax.phtml');
     }
 }