hasOne(ObjectTemplate::class, ['id' => 'ot_id']); } public function getCommonField() { return $this->hasOne(CommonFields::class, ['id' => 'common_field_id']); } public function getFieldOptions() { return $this->hasMany(ObjectTemplateField::class, ['parent_id' => 'id']); } public function fieldOptionsAsJson($fieldOptions) { if (!empty($fieldOptions)) { $data = []; /** @var \app\models\ObjectTemplateField $fieldOption */ foreach ($fieldOptions as $fieldOption) { $data[] = [ 'id' => $fieldOption->id, 'bg' => $fieldOption->name, 'en' => $fieldOption->ts_en_name ]; } return json_encode($data); } return '[]'; } public static function dataType($id, $value = null, $html = true, $optionOnly = false) { $types = [ 'string' => 'текстов низ', 'int' => 'числова стойност', ]; if ($html) { $select = !$optionOnly ? '' : ''; return $select; } if ($value) return $types[$value]; return $types; } public static function userInterfaceType($value = null, $html = true, $id = null, $optionOnly = null) { $types = [ 'year' => 'Запис на година', 'date' => 'Запис на дата', 'geo_coordinates' => 'Географски кординати', 'map'=>'Запис на локация по карта', 'settlements_data' => 'Избор от списък с градове и села', 'input_simple' => 'Поле (без превод)', 'input' => 'Поле (двуезично)', 'text' => 'Текст (двуезично)', 'text_redactor' => 'Текст с редактор (двуезично)', 'list_simple' => 'Избор с опции (без превод)', 'list' => 'Избор с опции (двуезично)' ]; foreach (CommonFields::find()->where(['IS', 'parent_id', NULL])->all() as $commonField) { $types[$commonField->id] = "(Общи номенклатури) ". $commonField->name; } $select = $optionOnly ? '' : ''; if ($html) return $select; if ($value) return $types[$value]; return $types; } public static function getNextOrderIndex($ot_id) { $last = self::find()->where(['ot_id' => $ot_id])->orderBy(['order_index' => SORT_DESC])->one(); return $last && $last->order_index ? $last->order_index + 1 : 1; } }