< Заур Магомедов />

профессиональный верстальщик и блоггер

Мое хобби - разработка сайтов, но со временем это переросло в постоянный и стабильный источник дохода.

Заур Магомедов
Главная » Joomla » Дополнительные поля в Joomla 3.7.+

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

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

Пост был обновлен: Окт 18, 2017

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Панель управления Joomla 2.5. Перевод Joomla 2.5 на русский язык

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Компонент Xmap - карта сайта для joomla 2.5, joomla 3.0

запрет автоматического показа поля 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». Данный цикл необходимо объявить выше вывода полей. А второе поле вывести, например, так:

// 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» — название вашего поля.

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

Пост был обновлен: Окт 18, 2017

Заур Магомедов
Заур Магомедов

Верстальщик с большим опытом работы. Занимаюсь созданием сайтов с 2009 года. Постоянно обучаюсь и совершенствую свои навыки. Веду свои проекты, в том числе и данный блог.

У меня вы можете:

Оцените пост:

1 балл2 балла3 балла4 балла5 баллов (3 оценок, среднее: 5,00 из 5)
Загрузка...

Проверка орфографии

Система Orphus

2 комментария к статье "Дополнительные поля в Joomla 3.7.+"

  • Vadim Окт 29, 2017 в 3:41

    Здравствуйте! Если я правильно понял, в Joomla поля можно вывести только в конкретно той статье где они же и прописаны. А как вывести поле из другой статьи? К примеру прайс цен.

    • Заур Магомедов
      Заур Магомедов Окт 29, 2017 в 10:07

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

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Если вы хотите вставить в текст комментария код HTML, CSS, PHP, JavaScript, то обрамите код в соответствии необходимыми тегами:

  • Код HTML - тегами [html] ваш код... [/html]
  • Код CSS - тегами [css] ваш код... [/css]
  • Код PHP - тегами [php] ваш код... [/php]
  • Код JavaScript - тегами [code lang="js"] ваш код... [/code]