Главная Статьи только Joomla! 1.0 Дополнительное поле в материале Joomla!

Дополнительное поле в материале Joomla!

Как известно в контенте Joomla! при использовании стандартного компонента контента (com_content) есть следующие поля
  • Заголовок (Title)
  • Альяс заголовка (Title Alias)
  • Раздел (Section)
  • Категория (Category)

В один прекрасный момент передо мной возникла задача добавить еще одно текстовое поле для материала необходимый для еще одного уровня фильтрации вывода контента. Для этого нужно сделать следующие шаги
  1. Добавить в админке поле ввода
  2. Добавить поле в базу данных
  3. Научить Joomla записывать данные из поля ввода в поле базы данных
  4. Научить Joomla читать данные этого поля из базы
  5. Вывести во фронтэнд


Поехали по порядку
1. Файл administrator/components/com_content/admin.content.html.php
Добавляем в него поле для ввода текста.
Я добавлял поле ввода под полем Алиас заголовка: Получил следующее начиная со строки 607 (в Joomla! 1.0.12 LE 2007) 2. Идем в phpMyAdmin
В таблицу #__content добавляем поле superfield руками
Или выполняем запрос ALTER TABLE `jos_content` ADD `superfield` MEDIUMTEXT CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ;
3. Открываем файл /includes/joomla.php после строки class mosContent extends mosDBTable { (строка 2491 для Joomla! 1.0.12 LE 2007)
Дописываем 4. Файл components/com_content/content.php строка 202 Дописываем в нее выборку из поля superfield 5. И наконец вывод во фронтэнд файл /components/com_content/content.html.php
В том месте где нужен вывод пишем Данный метод интересен еще и тем ,что можно создавать компоненты ,которые занимаются только выводом контента.
В то время как добавление материалов производится средствами стандартной админки com_content. Что в свою очередь сокращает усилия на разработку компонента.