Поле "Системные настройки" представляет собой PHP-консоль и работает при отображении списка объектов. При помощи системных настроек можно, в частности, модифицировать SQL-запрос, возвращающий список объектов.
Изначально основной SQL-запрос, возвращающий список объектов на страницу, выглядит приблизительно следующим образом:
Условиями выборки, в частности, могут являться:
- выбрать объекты только в текущем разделе
- выбрать объекты только в текущем компоненте раздела
- выбрать объекты только текущего пользователя
- выбрать только включенные объекты
- выбрать только родительские объекты
Ниже приведен набор флагов, влияющих на эти условия:
• $ignore_catalogue – если 1, игнорирует выборку объектов по текущему сайту (по умолчанию - 0);
• $ignore_sub – если 1, игнорирует выборку объектов по текущему разделу (по умолчанию - 0);
• $ignore_cc – если 1, игнорирует выборку объектов по текущему компоненту раздела (по умолчанию - 0);
• $ingore_user – если 1, игнорирует выборку объектов по текущему пользователю (по умолчанию - 1);
• $ignore_check – если 1, игнорирует выборку только включенных объектов (по умолчанию - 0);
• $ignore_parent – если 1, игнорирует выборку только родительских объектов (по умолчанию - 0);
• $distinct – если 1, добавляет к запросу DISTINCT, т.е. получается SELECT DISTINCT fields FROM;
• $distinctrow – если 1, добавляет к запросу DISTINCTROW, т.е. получается SELECT DISTINCTROW fields FROM.
Кроме этого, есть возможность модифицировать основной SQL-запрос путем добавления в оператор SELECT собственного кода. Код устанавливается в соответствующие переменные и автоматически вставляется в запрос. С учетом этих переменных (отмечены жирным шрифтом), основной запрос выглядит следующим образом:
Переменной $query_select соответствует переменная $result_vars, содержащая соответственно список переменных, в которые необходимо записать значение выбираемых полей. Например, если $query_select содержит “b.CarType,f.Name”, то $result_vars может содержать “\$cartype,\$name”.
По умолчанию значения всех вспомогательных переменных не установлены.
В случае если Вам нужно вывести объекты с «подобъектами» (пример – иерархический форум), необходимо установить значение переменной $children в единицу. В противном случае, отображаются только родительские объекты.
Кроме того, "Системным настройкам" доступны ассоциативные массивы $current_catalogue, $current_sub, $current_cc, $current_user и все переменные, подаваемые на загружаемую страницу методом GET либо в функции s_list_class().
Учтите, что это поле обрабатывается 2 раза, поэтому не стоит использовать его для определения каких-то функций, классов и других подобных конструкций.