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

Дополнительные поля для материалов 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). Если вы все сделаете правильно, то в блоге категории выведутся дополнительные поля, которые вы добавите к материалу в админку.

| | Дополнительные поля для материалов Joomla 2.5 / 3 | В Joomla бывает необходимо добавлять дополнительные поля прямо в редакторе материала (списки, просто информацию), а также выводить данные из этих поле |

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

  1. Александр:

    добрый вечер. в статье все выводится, но поддерживаю вышенаписаный вопрос Андрея: как вывести информацию из этих полей в блоге категорий? значение не подгружается в blog_item.php...

  2. Денис:

    А у меня почему-то не появляется это поле на сайте. В админке есть, в материале на сайте пусто =(
    Не подскажите, с чем может быть связано?

    • Александр:

      Что-то сделали не так в /components/com_content/views/article/tmpl/default.php - кодировка должна быть UTF8 и название поля соответствовать тому, что в админке (xml). Также в некоторых шаблонах есть папка html, в которой может быть дубликат компонента материалов - тогда в нем править.

  3. ildar:

    после обновления админки правки пропадут?

    • Илья:

      Скорей всего да, так как при обновлении движка, например с 3.4 на 3.6 должны перезаписываться файлы компонентов. Поэтому сделайте копию исправленных файлов перед обновлением, а затем обратно замените их.

      • ildar:

        а какие еще есть способы, чтоб после обновления не терялись настройки

        • Илья:

          Этого не подскажу, советую погуглить. И еще уточнение - перезальются файлы (физически): /administrator/components/com_content/models/forms/article.xml и components\com_content\views\article\tmpl\default.php А сама БД, в которую вы вносили дополнительные поля для материалов останется не тронутой.

      • ildar:

        может нужно вместо /administrator/components/com_content/models/forms/article.xml создать файл здесь /administrator/templates//html/com_content/models/forms/article.xml или /administrator/templates//html/com_content/forms/article.xml

        • ildar:

          угловые скобки игнорируются..
          имел ввиду /administrator/templates/*template_name*/html/com_content/models/forms/article.xml

  4. Андрей:

    А как вывести в блоге категории?? ?
    так не выводит

  5. Серега:

    У меня наконец-то заработало в Joomla 3. Только сначала не работало из-за того, что по невнимательности забыл поменять кодировку на UTF-8. Сейчас все Ок, спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>