Многие из пользователей 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 строки:
Теперь необходимо в классе 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 вставьте строку:
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.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
Radiocity
Многие из пользователей Joomla 1.5 сталкивались с необходимостью вывода дополнительной информации в статье. Будь то информация о фотографе, или дополнительное изображение, или краткая сноска. Оказывается, ставить тяжелые компоненты, подобные K2 для решения поставленной задачи, совершенно необязательно.
Реализация заключается в расширении стандартного компонента com_content, путем манипуляций с базой данных и исходным кодом.
Добавление поля "Информация"
В базе данных MySQL выполним скрипт, добавляющий дополнительное поле для статей:
Для того, чтобы в редакторе статьи можно было редактировать примечание в следующем файле administrator/components/com_content/models/article.xml добавим код после 14 строки:
Теперь необходимо в классе JTableContent задать переменную, которая будет отвечать за новое поле. Откроем файл libraries/joomla/database/table/content.php и в строке 92 добавим следующий код:
Поле и переменная созданы. Давайте заставим Joomla работать с ними, сохраняя данные. Откроем файл administrator/components/com_content/controller.php и в функции editContent() перед выводом мета-данных (567 строка) вставим следующий код:
Как в шаблоне добавить поле?
Поле создано и обрабатывается. Однако, его еще нужно вывести посетителю. Необходимо поправить используемый шаблон.
В файле /templates/<my template>/html/com_content/article/default.php необходимо вставить строку:
В шаблоне блога категории ничего не выводится! Что делать?
Для вывода информации в com_content для этих шаблонов используется собственная функция, поэтому необходимо ее поправить.
В файле /components/com_content/models/category.php найдите функцию _buildQuery() и добавьте ваше поле в mysql запрос:
Поле успешно обрабатывается, однако необходимо добавить вывод в шаблон также, как это делалось ранее. В файле /templates/<my template>/html/com_content/category/blog_item.php вставьте строку:
Постскриптум
Текущая информация основана на данной статье, а также посте S.M. Saidur Rahman на одном из форумов.
Edited by RadiocityLink to comment
Share on other sites
3 answers to this question
Recommended Posts
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.