Ejemplo n.º 1
0
 /**
  * Добавляем дополнительные валидаторы
  * в зависимости от типа записи
  */
 public function beforeValidate()
 {
     switch ($this->type) {
         case 4:
             // Строка
         // Строка
         case 8:
             // Файл (выбор с сервера)
             $this->validators[] = Validator::createValidator('string', $this, 'value');
             break;
         case 9:
             // Регулярное выражение
             $field = Field::findOne($this->field_id);
             if ($field) {
                 $pattern = $field->param ? $field->param : '\\w';
                 $this->validators[] = Validator::createValidator('match', $this, 'value', ['pattern' => $pattern]);
             }
             break;
     }
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Добавление значения мультиполя
  */
 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]);
 }
Ejemplo n.º 3
0
 /**
  * Поиск модели (поле шаблона по ID)
  * @param integer $id - ID поля шаблона
  * @return Field the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Field::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException(Yii::t('document', 'Запрашиваемая страница не найдена'));
     }
 }