Дополнительные поля в Joomla 3.7.+

Дополнительные поля в Joomla 3.7.+

12 295 в Joomla 42

Доброго времени суток всем! В данном посте хочу рассмотреть некоторую особенность, которая появилась в Joomla, начиная с версии 3.7 — это дополнительные поля в материалах. Считаю это полезным дополнением к стандартному компоненту материалов com_content. Ранее приходилось из-за нескольких полей устанавливать тяжеловесные конструкторы контента (CCK) и все для того, чтобы пользователю было легче работать в админке. В данной статье как раз рассмотрим как создать дополнительные поля в материалах и как вывести их во внешнем сайте.

Также, как и материалы поля объединяются в группы, это своего рода категории. Для того,чтобы создать группу полей идем в админке Материалы -> Группы полей. Создаем группу. Далее, создаем сами поля. Здесь уже по более опций, пройдемся по основным.

Вкладка «Основное»

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

Тип — выбираем тип поля: Текст (text), Текстовое поле (textarea), Url, Календарь и т.д. Не буду здесь разбирать в подробностях, т.к. ничего сложного в них нет и настраиваются все по одному принципу.

Имя — вводим алиас поля латиницей. Это своего рода индефикатор поля и он должен быть уникальным.

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

Описание — вводим описание поля.

Обязательно — если данное поле будет обязательным при создании материала, то ставим переключатель «Да».

Значение по умолчанию — можете ввести то значение, которое должно быть подставлено по умолчанию в данное поле.

Фильтр — здесь выбираем параметр фильтрации вводимых данных, например, вы хотите, чтобы данное поле принимало только целые числа. Данную фильтрацию можно определить и глобально в настройках плагина данного типа поля.

Читайте также:  RSForm - ajax отправка форм без перезагрузки страницы

Максимальная длина — можете ограничить длину вводимых символов.

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

Настройка поля дополнительных полей Joomla

Вкладка «Параметры»

Placeholder — это подсказка для поля. Например, можете ввести подсказку для вашего контент менеджера.

CSS-класс для показа — можете ввести свой класс поля для переопределения стиля в css.

Заголовок поля — управляет выводом заголовка поля на сайте.

Автоматическое отображение — вот эта полезная опция на мой взгляд. Есть предустановленные настройки (на момент написания статьи значения не переведены на русский язык):

  • After Title — показать поле после заголовка;
  • Before Display — показать перед текстом;
  • After Display — показать после текста;
  • Do not automatically display — не показывать автоматически поле. Данная опция предусматривает вывод поля в шаблоне сайта посредством кода. Об этом поговорим ниже.

Настройка параметров дополнительных полей  Joomla

Все, сохраняем поле и идем создавать материалы. В материалах той категории что вы присвоили полям появится новая вкладка с именем группы полей. У меня она называется «Поля«.

заполнение доп. полей в админке Joomla

А вот как данное поле выглядит на сайте.

вывод доп. поля Joomla на сайте

Название поля я сделал жирным через стили CSS. Сразу скажу, что через автоматический вывод у нас нет возможности кастомизировать шаблон вывода полей. Это возможно сделать без автоматического вывода.

Вывод дополнительных полей материалов в шаблоне Joomla — ручной режим

Итак, если вам не подходит предустановленные настройки вывода полей или вы хотите просто править html-шаблон полей, то есть возможность вывести поля в любом месте шаблона материала и обрамить их какими угодно тегами. Для вывода поля в ручном режиме необходимо сначала отключить автоматический показ поля в параметрах. Если этого не сделать, то поля у вас будут просто дублироваться.

Читайте также:  Как создать материал в joomla 2.5? Добавление статей и категорий.

запрет автоматического показа поля joomla

Далее создаем переопределение шаблона вывода материала для типа «Article«. Если у вас еще нет переопределения шаблона материалов com_content, то идем в админке Расширения -> Шаблоны — > В правой колонке «Шаблон» выбираем ваш шаблон -> Создать переопределение -> com_content -> article. 

переопределение com-content joomla

После этих действий в папке вашего шаблона должна появиться следующая директория с файлом Ваш шаблон -> html -> com_content -> article — default.php. Вот с данным файлом и будем работать. Открываем файл шаблона материала и в нужном месте вставляем код для вывода поля. Я вставил до кода вывода текста:

<?php echo $this->item->text; ?>

Код вывода поля

<?php 
// GET CUSTOM FIELDS
    $myCustomFields = array();
    foreach($this->item->jcfields as $field) {
        $myCustomFields[$field->name] = $field->value;
} 
// RECOVER CUSTOM FILED NAME
    if (isset($myCustomFields['field-1']) and !empty($myCustomFields['field-1'])) : ?>
        <div class="field">
            <div class="field__name">Название поля:</div>
            <div class="field__value"><?php echo $myCustomFields['field-1']; ?></div>
        </div>
<?php endif; ?>

Вместо field-1 подставляете ваш псевдоним поля (первый скриншот настроек, поле «Имя»). Вот как это выглядит на примере — демо.

Если вы хотите вывести более одного поля, то нет необходимости заново копировать цикл «foreach». Данный цикл необходимо объявить выше вывода полей. А второе поле вывести, например, так:

<?php // RECOVER CUSTOM FILED NAME
    if (isset($myCustomFields['field-2']) and !empty($myCustomFields['field-2'])) : ?>
        <div class="field">
            <div class="field__name">Название поля:</div>
            <div class="field__value"><?php echo $myCustomFields['field-2']; ?></div>
        </div>
<?php endif; ?>

Вместо field-2 — название вашего поля.

На этом завершу. Всем удачи, всем пока!

Оцените пост
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (6 оценок, среднее: 5,00 из 5)
Загрузка...
Заур Магомедов
Заур Магомедов
Занимаюсь созданием сайтов с 2009 года. Постоянно обучаюсь и совершенствуюсь, шагая в ногу со временем. Владею такими навыками, как: Html5, Css3, JavaScript, Vue, Git, БЭМ, Gulp.
Другие материалы той же категории