Jump to content
  • Sign Up
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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Member Statistics

    46,881
    Total Members
    1,451
    Most Online
    Irina985
    Newest Member
    Irina985
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...