Поле для связей

InstantCMS 2.X

Перебросить нужные поля из связанного контента

#1 14 сентября 2023 в 16:03

Хочу сделать поле, которое будет брать значения из полей связанного контента. Так как поля у связи могут быть разных типов, возник вопрос, можно ли менять эти значения при создании(редактировании) поля в ТК:

  1. public $sql = 'int NULL DEFAULT NULL';
  2. public $filter_type = 'int';
  3. public $filter_hint = LANG_PARSER_LIST_FILTER_HINT;
  4. public $var_type = 'string';


Вывел два списка, в первом выбираю привязанный тип контента, во втором выбираю нужное поле, после чего хотелось бы, копировать из выбранного поля свойства:

  1. $this->sql = $rel_field['sql'];
  2. $this->filter_type = $rel_field['filter_type'];
  3. $this->filter_hint = $rel_field['filter_hint'];
  4. $this->var_type = $rel_field['var_type'];

И здесь у меня тупик, как это правильно можно реализовать, и возможно ли вообще такое провернуть? 

#2 14 сентября 2023 в 16:19

 Smooch, задайте в своем поле метод getSQL по похожему принципу github.com/instantsoft/icms2/blob/9a05a0a564fc28330f79c987aa45b8d4d094f56f/system/core/formfield.php#L419

Получите в этом методе опции настроек поля, и сформируйте запрос к базе.

Там же есть метод для получения типа переменной github.com/instantsoft/icms2/blob/9a05a0a564fc28330f79c987aa45b8d4d094f56f/system/core/formfield.php#L453

Пробуйте. Показывайте результаты своих попыток, объясняйте, что не получается.

Поможем, подскажем.

#3 14 сентября 2023 в 16:34

 Zau4man, спасибо. formfield смотрел, но не смог разобраться, эти методы не встречал в стандартных полях. Пойду пробовать)

 
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.