Добавляем новое поле в JoomGallery 2.1.5. Версия Joomla 2.5.
Пример. Мне нужно добавить поле типа input type=text для категории (поле для самой фотографии добавляется идентично). Т.е. обычное поле. Назовем его h1_name. Например, нам нужно, что бы мы могли заголовок h1 на странице менять так как нам удобно.
1. Первое, это нужно добавить новое поле в таблицу _joomgallery_catg базу данных (для создания нового поля для изображения используем таблицу _joomgallery). Я его добавил через phpmyadmin.
Поле называем в нашем примере h1_name.
2. Редактируем следующей файл:
/administrator/components/com_joomgallery/models/forms/category.xml
В конце файла дописываем следующее:
<field
name=»h1_name»
type=»text»
class=»inputbox»
id=»h1_name»
label=»COM_JOOMGALLERY_COMMON_H1_NAME»
description=»COM_JOOMGALLERY_CATMAN_H1_NAME»
size=»40″
maxLength=»255″
/>
Естественно, перед конструкциями:
</fieldset>
</form>
3. Далее идем в файл:
/administrator/language/ru-RU/ru-RU.com_joomgallery.ini.
Это языковый файл. Здесь нам нужно добавить константы в конце файла. Я написал так:
COM_JOOMGALLERY_COMMON_H1_NAME=»H1 заголовок на странице»
COM_JOOMGALLERY_CATMAN_H1_NAME=»При заполнении этого поля на странице будет выводиться именно это поле. Если оставить пустым, то выведется предыдущее поле.»
4. В админке добавляем нужные html-формы:
/administrator/components/com_joomgallery/views/category/tmpl/form.php
Я добавляю новое поле под полем «Название»:
<li><?php echo $this->form->getLabel(‘h1_name’); ?>
<?php echo $this->form->getInput(‘h1_name’); ?></li>
И все. Теперь в админке есть это поле. При заполнении его — все сохраняется в нашей БД.
5. Осталось нам только его вытащить из базы данных и использовать в шаблоне. Для этого идем в модель:
/components/com_joomgallery/models/category.php
Находим метод function _loadCategory() и в нем примерно такую строчку:
->select(‘cid, name, parent_id, description, metakey, metadesc, params’)
В выборку добавляем наше новое поле и получаем:
->select(‘cid, name, parent_id, description, metakey, metadesc, params, h1_name’)
6. В шаблонах можно использовать по разному поле. Я, например, написал так:
<h1>
<?php
if ($this->category->h1_name != »):
echo $this->category->h1_name;
else:
echo $this->category->name;
endif;
?>
</h1>
Переход к добавлению нового пользовательского поля. Кнопка отображается при редактировании существующего пользовательского поля.
А на Joomla 3.8 будет работать?
И что делать с обновлениями? Они же все заново потрут?
1. Да на новой Joomla все так же.
2. Да, потрут. Перезаливать нужно будет файлы.