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;
}
}