Многие из пользователей 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 вставьте строку:
<?php echo trim($this->item->article_info);?>
Постскриптум
Текущая информация основана на данной статье, а также посте S.M. Saidur Rahman на одном из форумов.
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.
Здравствуйте. А какую цель Вы преследуете? По этим словам больше схоже на то, что не определена цель создания ресурса. Нехватка какой-то функциональной части говорит об отсутствии MVP. именно так.
Хочу Вам представить свой сайт - nexROM.ru Полтора года я работаю над сайтом, и уже переустанавливал много раз CMS, тк что то всегда не так, чего то не хватает, и какая то неопределённость приводит в тупик, и вот снова я переустановил движок, и уже не знаю стоит ли собственноручно наполнять контентом сайт, всё это выглядит как конвеерный процесс, и тем более прошлый опыт мне подсказывает, что нужно двигаться немного иначе, вот как идея - предоставить пользователям возможность вести свои блоги, выкладывать файлы и создавать клубы по интересам, но это ещё тяжелее с одной стороны чем просто привлечь посетителя на сайт, здесь пользователя должно заинтересовать создать запись в блоге или тему на форуме. Так что буду рад увидеть полезные советы по развитию и критику
alert('2' + submit.value) нужно было делать внутри request.onreadystatechange, потому что именно там приходит значение с сервера и задаётся value у submit. И через сколько времени это произойдёт, не всегда известно, может и через минуту, если интернет медленный, поэтому таймаутами универсально не побороть.
Я не уверен, что у формы есть событие input, но если даже было бы, то переменные result, num1 и num2 не определены. Они были бы созданы автоматически, если бы это были id, но у тебя-то name. И я не в курсе, сейчас можно писать js-код в атрибутах без javascript: спереди? И есть ли у тега <output> свойство value? Может быть, у него textContent? Подключи Vue, там будет работать так, как ты хочешь, только придётся несколько дополнительных действий сделать, привязывая переменные к инпутам и создавая computed-свойство.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.
Question
Radiocity 99
Многие из пользователей 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 post
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.