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(); вставить:

//Arkadiy hack
$dispatcher = JEventDispatcher::getInstance();
// Include the content plugins for the change of category state event.
JPluginHelper::importPlugin('content');
// Trigger the onCategoryChangeState event.
$dispatcher->trigger('onGetContentItems', array(&$model));
//end of Arkadiy hack

То есть добавить триггер, по которому будет проходить фильтрация.

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 доступна функция запроса типа контента (тип контента полезно знать для переключения макетов вывода и т.п.) и функция запроса чистых данных поля.

Тип контента можно получить так:

$this->item->minicck->getArticleType($this->item->id);

Чистые данные поля можно получить так:

$this->item->minicck->getFieldData($this->item->id, "field_name");

Переопределение шаблонов

С версии 1.4 появились шаблоны полей (не путать с общим шаблоном плагина), а так-же возможность переопределения их в шаблоне Joomla.

Для переопределения основного шаблона плагина надо скопировать его из

/plugins/system/minicck/tmpl/название_шаблона.php

в

/templates/шаблон_сайта/html/plg_system_minicck/название_шаблона.php

После этого плагин будет использовать шаблон, находящийся в папке шаблона сайта. Так-жеможно поступить и с шаблонами полей. Копируем

/plugins/system/minicck/fields/папка_поля/tmpl/default.php

в

/templates/шаблон_сайта/html/plg_system_minicck/fields/папка_поля/default.php

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

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(); вставить: 1. //Arkadiy hack 2. $dispatcher = JEventDispatcher::getInstance(); 3. // Include the content plugins for the change of category state event. 4. JPluginHelper::importPlugin('content'); 5. // Trigger the onCategoryChangeState event. 6. $dispatcher->trigger('onGetContentItems', array(&$model)); 7. //end of Arkadiy hack То есть добавить триггер, по которому будет проходить фильтрация. 2.1. Добавлено переопределение модели категории контента на модель со встроенным хаком. Для этой версии хак не требуется. необходимо только включить переопределение модели в настройках плагина

http://q99.it/estGwfp