Дополнительные поля для материалов Joomla 2.5 / 3

В Joomla бывает необходимо добавлять дополнительные поля прямо в редакторе материала (списки, просто информацию), а также выводить данные из этих полей. О том, как это сделать ниже

Эту возможность можно использовать в разных областях, например, поля очень мне пригодились для красивого вывода информации о номерах отеля - стоимость, тип, доп. услуги и т.д. А если немного повозиться, то можно и вовсе сделать с помощью данных полей фильтры, разные условия и функции, например, используя JQuery.

Способ добавить дополнительные поля к материалам Joomla не касаясь базы данных и ядра:
1) Открываем файл /administrator/components/com_content/models/forms/article.xml
2) Находим <fields name="attribs"> и сразу после него вставляем

<fieldset name="nomer-otel" label="Параметры номера">
<field name="cena" type="inputbox"
label="Стоимость номера"
description="Стоимость номера"
class="inputbox" size="70" />
</fieldset>

Здесь Параметры номера - будет нашей закладкой в админке материала, а поле field - новый параметр, например, стоимость номера.

Когда будете делать новые поля - не забывайте выставлять новые имена в name. Также надо поменять кодировки файлов с ANSI на UTF-8

3) В макете материала /components/com_content/views/article/tmpl/default.php добавляем вывод данных из нашего поля. В нужном месте пишем следующий код:

<?php if ($params->get('cena') !== '') : ?> <!-- Проверяем параметр на пустоту-->
<?php echo JText::_($params->get('cena')); ?> <!--Выводим значение параметра-->
<?php endif; ?> <!--Конец проверки-->

На этом всё. Добавляем новую статью. В параметрах отображения материала видим наше поле.

Так как у многих вставить дополнительные поля вызывает трудности - создали пример готового файла article.xml. Скачать вы его можете по ссылке ниже.

В этом примере вы найдете article.xml для Joomla 2.5 (строки кода 128-146) и Joomla 3 (строки 150-168). Обычно данный файл у всех одинаковый (не забывайте делать копии). Если у вас совсем ничего не получается, то просто замените article.xml на тот, что в архиве. В результате чего в админке при редактировании материала появится новый пункт "Параметры номера" с полем "Цена" и выпадающим списком "Тип номера".

Другие поля вы также сможете сделать по аналогии из скачанного примера.

PS По многочисленным просьбам потратил лишний час и провел успешные исследования, за счет которых вы теперь сможете выводить дополнительные поля в блоге категории!

Итак, если вы создали пункт меню "Блог категории" и хотите, чтобы дополнительные поля, которые вы добавили в материалы выводились в этом самом блоге, то откройте файл по адресу: /components/com_content/views/category/tmpl/blog_item.php и добавьте код такого типа:

<?php
//выводим дополнительные поля в блоге категории
$attribs_dop = json_decode($this->item->attribs);
echo $attribs_dop->cena;
?>

Например после h2 заголовка (примерно, строка 35). Если вы все сделаете правильно, то в блоге категории выведутся дополнительные поля, которые вы добавите к материалу в админку.