- Заголовок (Title)
- Альяс заголовка (Title Alias)
- Раздел (Section)
- Категория (Category)
В один прекрасный момент передо мной возникла задача добавить еще одно текстовое поле для материала необходимый для еще одного уровня фильтрации вывода контента. Для этого нужно сделать следующие шаги
- Добавить в админке поле ввода
- Добавить поле в базу данных
- Научить Joomla записывать данные из поля ввода в поле базы данных
- Научить Joomla читать данные этого поля из базы
- Вывести во фронтэнд
Поехали по порядку
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.
Что в свою очередь сокращает усилия на разработку компонента.