Использование плагина MiniCCK
MiniCCK - это плагин к компоненту com_content Joomla, позволяющий добавить контенту произвольное количество дополнительных полей разного типа, а так-же фильтровать контент по значением полей MiniCCK.
Поддерживаемые типы полей:
- Выпадающий список
- Радиокнопки
- Чекбоксы
- Строка
- Большое текстовое поле
- Изображение
- Галерея изображений
- Ссылка на загрузку Akeeba Release System
- Ссылка на подписку Akeeba Subscription
Плагин писался по мотивам статьи Adding custom fields to the article component Franz Korntner. Получилось гибкое и простое решение проблемы добавления полей к контенту Joomla.
В плагине есть возможность создавать неограниченное количество типов контента, html полей создается с помошью макетов, так-же общий макет вывода MiniCCK и макеты полей можно переопределить в шаблоне Joomla.
Установку, настройку и работу плагина я описал в этой статье.
Для импорта контента в com_content и дополнительных полей MiniCCK есть компонент импорта содержимого.
История версий
1.0. Первый выпуск палгина
1.1. С этой версии плагин не требует хака ядра. Работает на чистой установке начиная с Joomla 3.1.5.Вывод фронта сделан через шаблон. В настройки добавлены опции выбора шаблона и места вывода плагина (сверху или снизу контента).
1.2. Добавлены типы контента. Сделана совместимость с Joomla 3.2.
1.3. Добавлен вывод в блоге категории. Добавлен вывод присоединением объекта minicck к основному объекту контента.
1.4. Шаблонизация вывода полей. Переопределение шаблонов вывода полей в шаблоне joomla. Переопределение основного шаблона плагина в шаблоне joomla.
2.0. Добавлена фильтрация контента по дополнительным полям MiniCCK. Создан модуль фильтров. Для фильтрации по дополнительным полям надо сделать хак одной странички джумлы:
В /components/com_content/models/category.php после всех $model->setState() и перед запуском функции $model->getItems(); вставить:
То есть добавить триггер, по которому будет проходить фильтрация.
2.1. Добавлено переопределение модели категории контента на модель со встроенным хаком. Для этой версии хак не требуется. необходимо только включить переопределение модели в настройках плагина.
Установка.
- Установить и опубликовать плагин "Контент - MiniCCK".
Настройка.
Добавление полей контента происходит в настройках плагина. Там можно добавить к контенту произвольное количество полей разного типа. Добавление поля производится нажатием на кнопку "Добавить поле".
Каждому полю необходимо прописать:
- Название поля - служебное название, состоящее только из латинских букв, цифр и знака подчеркивания _ в нижнем регистре. Другие символы не допустимы, включая пробел.
- Заголовок поля - Это тот заголовок, что увидите вы в панели администрирования в дополнительных полях контента и пользователь на фронте вашего сайта. Для многоязычных сайтов сюда можно вписвывать языковые константы, которые будут обработаны в соответствии с языком контента.
- Тип поля - выпадающий список, где вам необходимо выбрать тип создваемого поля. Эта устновка определяет как будет выглядеть поле в административной части сайта, на фронте выведется информация выбранная или введенная вами.
- Параметры поля - это поле для введения дополнительных параметров для поля контента. Действует оно только для типов поля типа Выпадающий список, Радиокнопки, Чекбокс. Вводить сюда нужно пары ключ-значение через разделитель двойное двоеточие (::) каждую следующую пару на следующей строке. Для поля типа "изображение" сюда вводится путь от корневой папки изображений, объявленной в настройках медиаменеджера без переднего и заднего слеша. Это всего-лишь папка по умолчанию, пользователь сможет перейти к верхним папкам до корня медиаменеджера.
Удалить поле можно кнопкой "Удалить поле" расположенной напротив каждого поля.
Работа
В панели редактирования контента в компоненте com_content, после установки и настройки плагина и патча, в правой части снизу появится вкладка "Дополнительные поля" в которой вам предстоит ввести или выбрать значения для созданных вами полей. После сохранения контента при просмотре контента с фронта сайта там появится ваша дополнительная информация.
Варианты вывода полей
С версии 1.3 в плагине предусмотрено два способа вывода дополнительных полей:
- Способ "HTML" реализует обычный вывод присоединением шаблона плагина к тексту контента, так как было и в прошлых выпусках плагина.
- Способ "Объект" гораздо более гибок, но предназначен для профессионалов т.к. он не имеет собственного представления, а добавляет объект MiniCCK к объекту $article, что позволяет оперировать полями плагина в самом шаблоне com_content. Это добавляет непревзойденную гибкость в выводе полей - вы можете вывести любое поле плагина в любом месте шаблона контента, но требует от вебмастера навыков работы с шаблонами.
Для вывода полей плагина "Объектом" предусмотрено две функции - вывод заголовка поля и вывод значения поля. В шаблоне контента их можно вызывать так:
//в контенте $this->item->minicck->getFieldLabel('field_name'); $this->item->minicck->getFieldValue($this->item->id, 'field_name');
С версии 2.2 доступна функция запроса типа контента (тип контента полезно знать для переключения макетов вывода и т.п.) и функция запроса чистых данных поля.
Тип контента можно получить так:
Чистые данные поля можно получить так:
Переопределение шаблонов
С версии 1.4 появились шаблоны полей (не путать с общим шаблоном плагина), а так-же возможность переопределения их в шаблоне Joomla.
Для переопределения основного шаблона плагина надо скопировать его из
в
После этого плагин будет использовать шаблон, находящийся в папке шаблона сайта. Так-жеможно поступить и с шаблонами полей. Копируем
в
После переопределения шаблонов полей и основного шаблона плагина вы смело можете их модернизировать, не боясь что они зартутся при обновлении.