Sign in to follow this  
Radiocity

J 1.5: Дополнительные поля в статье

Recommended Posts

Многие из пользователей Joomla 1.5 сталкивались с необходимостью вывода дополнительной информации в статье. Будь то информация о фотографе, или дополнительное изображение, или краткая сноска. Оказывается, ставить тяжелые компоненты, подобные K2 для решения поставленной задачи, совершенно необязательно.

Реализация заключается в расширении стандартного компонента com_content, путем манипуляций с базой данных и исходным кодом.

Добавление поля "Информация"

В базе данных MySQL выполним скрипт, добавляющий дополнительное поле для статей:

ALTER TABLE `jos_content` ADD `article_info` VARCHAR( 255 ) NOT NULL

Для того, чтобы в редакторе статьи можно было редактировать примечание в следующем файле administrator/components/com_content/models/article.xml добавим код после 14 строки:

<param name="article_info" type="text" default="" label="Info" description="" />

Теперь необходимо в классе JTableContent задать переменную, которая будет отвечать за новое поле. Откроем файл libraries/joomla/database/table/content.php и в строке 92 добавим следующий код:

var $article_info = null;

Поле и переменная созданы. Давайте заставим Joomla работать с ними, сохраняя данные. Откроем файл administrator/components/com_content/controller.php и в функции editContent() перед выводом мета-данных (567 строка) вставим следующий код:

$form->set('article_info', $row->article_info);

Как в шаблоне добавить поле?

Поле создано и обрабатывается. Однако, его еще нужно вывести посетителю. Необходимо поправить используемый шаблон.

В файле /templates/<my template>/html/com_content/article/default.php необходимо вставить строку:

<?php echo trim($this->item->article_info);?>

В шаблоне блога категории ничего не выводится! Что делать?

Для вывода информации в com_content для этих шаблонов используется собственная функция, поэтому необходимо ее поправить.

В файле /components/com_content/models/category.php найдите функцию _buildQuery() и добавьте ваше поле в mysql запрос:

$query = 'SELECT cc.title AS category, a.id, a.title, a.article_info

Поле успешно обрабатывается, однако необходимо добавить вывод в шаблон также, как это делалось ранее. В файле /templates/<my template>/html/com_content/category/blog_item.php вставьте строку:

<?php echo trim($this->item->article_info);?>

Постскриптум

Текущая информация основана на данной статье, а также посте S.M. Saidur Rahman на одном из форумов.

Edited by Radiocity

Share this post


Link to post
Share on other sites

А можно ли это сделать в подключаемом плагине или компоненте? Чем больше изменений в системных файлах, тем соленее слезы при обновлении :)

Share this post


Link to post
Share on other sites

Можно сделать и в отдельном компоненте (расширенная версия com_content), но идея как раз таки и заключается в том, чтобы их не использовать.

Share this post


Link to post
Share on other sites
А можно ли это сделать в подключаемом плагине или компоненте?

можно как в установленном' date=' но здесь речь идёт о MySQL, не всё храниться там, по крайней мере настройки модуля и плагина не всегда в MySQL

Чем больше изменений в системных файлах, тем соленее слезы при обновлении

Не попробуешь не узнаешь

В принципе, проект J1.5 завершён, как и J1.0

Пускай ломает, глобальных изменений и исправлений не ожидается J1.5, в отличие от К2

Появиться ещё одна Joostina :P

Radiocity

Если про K2, то там был плагин User Extended Fields for K2

http://getk2.org/ext...d-fields-for-k2

С ним были проблемы по русификации, но он был заброшен и не обновлялся уже давно... :(

На форумах, переведённый плагин есть, его не только я мучил, но надо искать

Edited by lev99

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Member Statistics

    46,440
    Total Members
    3,128
    Most Online
    Talomir
    Newest Member
    Talomir
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.