На многих сайтах, посвященных новостям, музыке или программам часто можно увидеть под материалом список значений, например: автор, дата публикации, ссылка на что-либо и т.д. Таких полей может быть бесконечно много. Научим Joomla 3 выводить такие поля в своих публикациях.
Сразу скажу, что есть некоторое ограничение - дополнительные поля появились в Joomle 3.7 и старше. Поэтому обновляйте движок, а если это невозможно или у вас старая Joomla - читайте инструкцию.
Создание дополнительных полей в Joomla
Откройте Материалы > Группы полей (Field Groups) и создайте группу для ваших полей. Она будет являться своего рода папкой, в которой будут находиться ваши поля. Назовем ее "Отель".
Теперь откройте Материалы > Поля и Нажмите кнопку "Создать". Появится окно создания поля с множеством параметров.
Начните вводить "Заголовок" - автоматически продублируется поле "Название" (Label) (его мы увидим на сайте).
Поле "Имя" (Name) - автоматом создает в латинице программное имя поле - оно должно быть всегда уникальным.
В "Описание" вы можете ввести описание поля, а за счет переключателя "Обязательно" (Required) пометить какое поле должно быть заполнено редактором материала обязательно, прежде чем он сможет его сохранить.
"Значение по умолчанию" (Default Value) - это значение подставится автоматом при создании материала, его вы сможете изменить.
"Фильтр" (Filter) - служит для фильтрации данных, которые должен вводить редактор при заполнении полей, например, только цифры, буквы и т.п.
"Максимальная длина" (Maximum Length) - максимальная длина заполняемого поля в символах.
Справа не забудьте отметить к какой группе полей относится поля (в нашем примере это "Отель"), а также категорию, в которой это поле будет действовать, по умолчанию - во всех.
Это были основные настройки при создании дополнительного поля. Остался только самый важный параметр - Тип (Type) поля. Обычно используется Text - обычный, произвольный текст, но вы можете выбрать Календарь (позволит легко вывести дату), Цвет, Ссылку (с переходом по ней), Радиокнопки (очень удобная вещь - в админке вы сможете выбрать 1 из нескольких вариантов) и даже небольшую фотогалерею (List of Images) - вам нужно будет выбрать каталог с картинками, а в поле при редактировании материала просто их выбирать.
Создайте пару полей и сохраните их, затем заполните в материале в дополнительной вкладке и посмотрите, как они будут отображаться на сайте:
Если у вас, как и у меня отображаются кракозябры в полях, то откройте файл
/administrator/components/com_fields/helpers/fields.php найдите цикл
foreach ($fields as $key => $original), там будут условия типа
if ($valuesToOverride && key_exists($field->name, $valuesToOverride))
{
$field->value = $valuesToOverride[$field->name];
}
elseif ($valuesToOverride && key_exists($field->id, $valuesToOverride))
{
$field->value = $valuesToOverride[$field->id];
}
elseif (key_exists($field->id, $fieldValues))
{
$field->value = $fieldValues[$field->id];
}
if (!isset($field->value) || $field->value === '')
{
$field->value = $field->default_value;
}
после них поставить (или прописать в каждом - но это не точно): $field->rawvalue = $field->value;
Затем открыть файл:
/components/com_fields/layouts/field/render.php и замените строку $value = $field->value; на $value = $field->rawvalue;
Как вы видите на скриншоте, допполя отображаются после заголовка. Это можно изменить в настройках каждого поля, во вкладке "Параметры". Там будет пункт "Автоматическое отображение" (Automatic Display) - выберите, где должно показываться поле - после заголовка, перед текстом, после текста. Там же есть и другие полезные настройки, например, подсказка для редактора Placeholder и класс, с помощью которого можно задать уникальный класс и изменять дизайн поля как угодно за счет css.
Итак, дополнительные поля в Joomla 3.7 достаточно гибкие, как в плане настроек, так и удобства использования. К тому же, если вы программист, то без труда сможете использовать этот функционал под свои нужды, например поиск или фильтры.
Добавить комментарий