Поле Select Dynamic - список значений, данные запросом к таблице базы данных, единичный или множественный выбор.
Содержимое поля типа Select Dynamic формируется запросом к базе данных в отличии от других полей этого типа от других полей типа select, описанных в статье «Стандартные поля SEBLOD: Simple, Multiple, Numeric – простые списки», массив его данных формируется запросом к базе данных.
В админке поле типа Dynamic выглядит как поле <select> - простой выпадающий список, из которого администратор сайта выбирает полученные данные из базы для вставки в материал.
На сайте поле типа Dynamic выводится в двух вариантах. На странице материала (товара) как обычная строка данных. В форме обратной связи или форме поиска – поле выпадающий список, как в админке, с той разницей, что вид поля зависит от настроек CSS.
Так же поля типа Dynamic могут и не выводится на стороне сайта, так как, наряду с другими полями типа select, checkbox или radio, могут использоваться как поля - критерии для вывода (сокрытия) других полей.
Основная «магия» для использования полей типа Dynamic происходит при их создании (настройке). Как и для других полей для поля типа Dynamic есть возможность создания подписи (label) и значения по-умолчанию. Здесь же происходит наполнение поля.
Заполнение поля данными производится запросом к БД. Подходов к наполнению поля, а значит формированию запроса к БД, может быть два – использование полей ввода (режим Construction) и непосредственная запись запроса (режим Free).
В режиме Construction – все данные формирующие запрос к БД заносятся в созданные разработчиком Seblod поля. Поле «Table» предназначено для внесения имени таблицы БД.
Поле Dynamic позволяет обратится к любой таблице БД сайта, как к стандартной для Joomla (#__categoties, #__content и т.д.), так и к любой созданной разработчиком сайта, например, к таблице со списком стран.
В поле «Options Name» вносится имя поля таблицы БД, значение из которого будет выводится на сайте, например, поле наименование страны таблицы Страны. В поле «Options Value» вносится имя поля БД, значение из которого будет записываться в качестве значения поля Dynamic в базу (если хранение данных поля в БД настроено), например, ID таблицы Страны. Таким образом для строки поля Select Dynamic формируется пара «Текст = Значение (Text = Value)».
Это обязательные для работы поля Dynamic поля. Также можно заполнить данными поля «Where» для детализации запроса к таблице с большим числом записей, и поле «Order By» для сортировки результата запроса.
Поле Select Dynamic позволяет сделать мультивыбор значений. Для этого выбираем Yes в поле «Multiple» и назначаем разделитель для выбранных значений.
На мультиязычных сайтах поле Select Dynamic обеспечивает возможность формирования пар Text (RU, EN, DE...) => Value, где в качестве Text выступает отдельное поле таблицы БД.
В режиме Free – необходимо самостоятельно сформировать запрос к БД и записать его в поле «SQL Query».
На страницах сайта на CMS Joomla нет примеров полей, созданных на Select Dynamic. Пользовательские – любые поля списков выбора, данные которых хранятся в БД. Обычно с помощью этого поля делается выборка Категорий для разделов Статей отдельных типов контента, если они на одном уровне (без вложенности).
Для вывода многоуровневого списка категорий существуют поле, созданное в сообществе CCK Seblod и не входящие в стандартный пакет.
В каталоге товаров при помощи поля типа Dynamic можно создавать множество полей - списков выбора данных. Например – выбор страны, производителя, цвета и т.д., особенно для мультиязычных сайтов.