Создание дополнительного поля формы к статье Joomla 3

Опубликовано admin -

В предыдущей статье ("Создание дополнительного элемента формы к статье Joomla 2.x") я рассказывал о создании дополнительных полей в Joomla 2.5, в этой статье этот же вопрос будет расcмотрен в Joomla 3.x!

Функции создаваемого плагина аналогичны функциям плагина в предыдущей статье:

  • Добавление дополнительного поля к статье в бакэнде сайта;
  • Добавление дополнительного поля к статье в фронтэнде сайта;
  • Сохранение данных вновь создаваемого поля в базе данных;
  • Вывод полей с использованием собственной разметки на страницах сайта (до вывода текста статьи);

Пример

Для примера будут браться следующие данные "структура", "температура", "вкус":

При этом данные будут доступны как в бакэнде так и во фронтэнде сайта.

Админ раздел

joomla

Сайт

Сайт

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", для того чтобы узнать шаблон зайдите в менеджер шаблонов:

joomla

 

Взаимосвязанные материалы

# 1 . Импорт php классов в собственных компонентах Joomla версии 2 и 3 ( ),

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

# 2 . Создание дополнительного поля формы к статье Joomla 3 ( ),

В предыдущей статье ("Создание дополнительного элемента формы к статье Joomla 2.x") я рассказывал о создании дополнительных по читать...

# 3 . Создание дополнительного элемента формы к статье Joomla ( ),

В этой статье будет рассказано о создании плагина, который объясняет возможности Joomla 2.5 создавать дополнительные поля формы к статьям. читать...

# 4 . Сделал сайт на локальном хосте, что дальше? ( ),

Здравствуйте уважаемые читатели!

читать...
# 5 . jQuery Nivo Slider ( ),

Nivo Slider обладает множеством настроек для создания эффектного рекламного ролика на сайте. читать...

На разработку сайта! Скидки до 20%!