abushyk

[HOWTO] Добавление параметров в данные списка

Recommended Posts

Данные в список объявлений выбираются в том виде, в котором они хранятся в базе данных в таблице re_data. Для строковых данных это приемлемо, но часто возникает необходимость получения данных, которые имеют тип select_by_query и хранятся в смежных таблицах. Такие данные доступны в данных объявления в списке в виде числового идентификатора. Некоторые из них, например city_id, region_id, гриддер умеет поставлять сам в виде текстовых названий соотвествующих городов и регионов. Но пользовательские доступны только в виде идентификатора.

Для того, что бы например подтянуть в список имя направления или шоссе из пользовательского справочника можно использовать Локальный грид-менеджер. Но с версии system 3.3.17 доступна следующая настройка:

Общее - core.listing - core.listing.select_query_fields

В этом поле можно перечислить необходимые для текстуализации поля и имя переменной в которой они будут лежать. Например у нас есть поля Направление (route_id) и Материал фундамента (fundament_id) каждый из которых имеет тип select_by_query и его значения расположены в отдельных справочниках направлений и фундаментов.

В обычной ситуации в данных объявления в шаблоне мы имеем доступ только к {$grid_item.route_id} и {$grid_item.fundament_id} где у нас лежат малоупотребимые цифры 5 и 9. Мы то знаем, что route_id=5 - это "Алтуфьевское шоссе", а fundament_id=9 - это "гранитный блок", но это не удобно.

Тогда, в упомянутое поле настройки мы записываем строки

route_id=route_name
fundament_id=fundament_name

каждая строка отдельно. Формат прост 

системное имя select_by_query-поля, а после равно имя переменной в которой будет текстовое значение. После этого у нас в объекте будет два значения - {$grid_item.route_id} с числовой идешкой и {$grid_item.route_name} c текстовым названием значения.

Если не указать значение после равно, то текстовое значение заменит собой значение в route_id, что не всегда рационально.

Не следует злоупотреблять этой опцией и вытаскивать все параметры, что придет в голову. Всегда проверяйте, действительно ли оно вам там нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас