Esempio n. 1
0
 /**
  * Пометка или снятие документа как папки
  * @param $id - ID документа
  * @param bool $child_delete - дочерние документы удаляются?
  * @return bool
  */
 public static function folder($id, $child_delete = false)
 {
     $model = Document::findOne($id);
     $db = self::getDb();
     // Помечаем документ как папку если имеются дочерние документы
     if ($model && $model->children && !$model->is_folder) {
         $db->createCommand()->update('lb_document', ['is_folder' => 1], ['id' => $model->id])->execute();
     }
     // Помечаем папку как документ если нет дочерних документов или
     // имеется один дочерний докуемнт, который будет удален
     if ($model && !$model->children && $model->is_folder || $model && count($model->children) === 1 && $model->is_folder && $child_delete) {
         $db->createCommand()->update('lb_document', ['is_folder' => 0], ['id' => $model->id])->execute();
     }
 }
 /**
  * Добавление значения мультиполя
  */
 public function actionField()
 {
     $document_id = Yii::$app->request->post('document_id');
     $model = $document_id ? Document::findOne($document_id) : new Document();
     $field_id = Yii::$app->request->post('field_id');
     $field = Field::findOne($field_id);
     if (!$field) {
         return false;
     }
     $data_id = Yii::$app->request->post('data_id');
     $data_id = 'new_multi_' . $data_id;
     // 0 перед id нового поля свидетельствует о добавлении мультизначения
     $data = ['value' => '', 'position' => ''];
     return $this->renderAjax('@vendor/lowbase/yii2-document/views/document/_field', ['model' => $model, 'field' => $field, 'field_id' => $field_id, 'data' => $data, 'data_id' => $data_id]);
 }