В предыдущей статье ("Создание дополнительного элемента формы к статье Joomla 2.x") я рассказывал о создании дополнительных полей в Joomla 2.5, в этой статье этот же вопрос будет расcмотрен в Joomla 3.x!
Функции создаваемого плагина аналогичны функциям плагина в предыдущей статье:
- Добавление дополнительного поля к статье в бакэнде сайта;
- Добавление дополнительного поля к статье в фронтэнде сайта;
- Сохранение данных вновь создаваемого поля в базе данных;
- Вывод полей с использованием собственной разметки на страницах сайта (до вывода текста статьи);
Пример
Для примера будут браться следующие данные "структура", "температура", "вкус":
При этом данные будут доступны как в бакэнде так и во фронтэнде сайта.
Админ раздел
Сайт
Framework
Опять же как впредыдущей статье все изменения основаны на Joomla Фреймовике, а именно на его событиях (подробное описание каждого можно найти в предыдущей статье "Создание дополнительного элемента формы к статье Joomla 2.x").
- onContentPrepareForm()
- onContentPrepareData()
- onContentAfterSave()
- onContentAfterDelete()
- onContentPrepare()
База данных
Наш плагин будет использовать таблицу #__user_profiles и столбец "user_id" как "article_id".
Структура нашего плагина остаётся такой же как для Joomla 2.5:
── plugins/content/rating ├── language │ └── en-GB │ ├── en-GB.plg_content_rating.ini [language file] │ └── en-GB.plg_content_rating.sys.ini [language file] ├── rating │ ├── rating.css [CSS for the rendered rating table] │ └── rating.xml [Form description] ├── rating.php [Plugin hooks] └── rating.xml [Manifest]
Установочный файл
Установчный файл можно оставить таким же как и для Joomla 2.5, замените версию на 3.x
Языковой файл
Языковой файл можно оставить таким же как и для Joomla 2.5
CSS
CSS файл можно оставить таким же как и для Joomla 2.5
Дополнительные поля формы
Элементы формы остаются такими же как и в Joomla 2.5
Хуки плагина
Главный файл плагина 'rating.php' содержит все хуки что и для Joomla 2.5, за исключение хука "onContentPrepareData", который я решил полностью удалить из его отказа работать в Joomla 3.0.x, хотя в 3.1.1 он работает так как описано в документации:
Все хуки будет содержаться следующие объекты:
- $context
- $data – параметр, содержащий данные полей формы
- $article (JTableContent) содержит статью
__construct
Конструктор загружает языковой файл:
onContentPrepareForm
onContentPrepareForm в Joomla 3.x отличается от того жу хука в Joomla 2.x:
onContentPrepareData onContentPrepareData удалена и перенесена полностью в функцию "onContentPrepareForm". onContentAfterSave onContentAfterSave сохраняет данные дополнительных полей в базу данных.
onContentAfterDelete onContentAfterDelete выполняется при удалении статьи, удаляет данные из дополнительных полей.
onContentPrepare
onContentPrepare при подготовке вывода статьи, переменна $params содержит параметры статьи, $this->params - параметры плагина. Эта функция выводит дополнительные пол я в начале статьи на сайте. Функция отличается от её аналога для плагина в Joomla 2.5.
Вместо патча, используемого в Joomla 2.5, необходимо венсти несколько изменений в файл edit.php, добавить вкладку:
и добавить дополнительне поля из файла "rating/rating.xml" вставив их после вкладки "Права доступа к материалу":
для Joomla 3.1.x послдений код нужно заменить несколько другим вариантом:
Незабывайте что файл, в котрый мы только что внесли изменения перезаписывается при обновлении Joomla! Для того, чтобы это не прроизошло, нужно скопировать файл "edit.php" в администраторский раздел по адресу "\administrator\templates\isis\html\com_content\article\", в моём случае для шаблона "isis", для того чтобы узнать шаблон зайдите в менеджер шаблонов:
350 просмотров
Взаимосвязанные материалы
В тех случаях, когда пишется собственный компонент, неотъемлемой его частью будут классы, обслуживающие данный компонент.
читать...В предыдущей статье ("Создание дополнительного элемента формы к статье Joomla 2.x") я рассказывал о создании дополнительных по
читать...В этой статье будет рассказано о создании плагина, который объясняет возможности Joomla 2.5 создавать дополнительные поля формы к статьям.
читать...Здравствуйте уважаемые читатели!
читать...Nivo Slider обладает множеством настроек для создания эффектного рекламного ролика на сайте.
читать...