214-697-723 |
info@mainsource.ru |
(812) 946-31-81
Все контакты
Автор статьи Синцов Роман
Дорабатываем своими руками модуль «Комментарии» для UMI.CMS
Статья посвящена счастливым обладателям системы управления .
Это коммерческая система управления сайтом, обладающая удобным интерфейсом, высоким уровнем юзабилити и
широким функционалом, охватывающим большинство задач по созданию сайтов различного уровня сложности.
Для UMI существует широкий ассортимент подключаемых модулей, на момент написания статьи их порядка 23,
в частности, в данной статье рассмотрим модуль «Комментарии». Он по умолчанию входит в состав редакции PRO Commerce.
Также этот модуль можно заказать отдельно для любой другой сборки системы.
Я не буду подробно описывать методику установки модуля и вставку его на нужную страницу Вашего сайта, это достаточно
подробно описано на официальном сайте UMI.
Вот так выглядит модуль, встроенный на страницу сайта.
Xочу обратить внимание, что данный модуль имеет с точки зрения пользователя одно важное ограничение:
это порядок вывода комментариев на странице. Ко мне часто обращаются с просьбой, сделать так, чтобы последний комментарий
отображался не сверху, а снизу, так как многие считают такой вывод более удобным. Для опытного разработчика знакомого
с UMI это задача решается практически мгновенно. Я хочу рассказать, как Вы можете сделать это самостоятельно,
не привлекая к процессу специалиста.
Исходный код модуля комментариев находится в classes/modules/comments (доступен по ftp для тех, кто не в курсе).
Править будем файл class.php - там находится основная логика модуля. Ищем функцию вставки комментариев:
public function insert($parent_element_id = false, $template = "default") {
Добавляем новую переменную $sort, которая позволит при вставке комментариев на страницу сайта
задавать порядок сортировки:
public function insert($parent_element_id = false, $template = "default", $sort = 0) {
В нашем случае:
$sort = 0 - комментарии выводятся в порядке по умолчанию;
$sort = 1 – комментарии выводятся в обратном порядке.
Далее в теле этой функции находим код вида (цикл):
if($sort == 1) assort($result);
foreach($result as $element_id){
…
Стандартная функция php assort() осуществляет сортировку ассоциативного массива в обратном порядке,
что нам и требуется сделать, в случае, если $sort = 1.
Для того, чтобы увидеть изменения, нужно в код страницы, на которой Вы хотите вывести комментарии, вставить следующую строку:
%comments insert(%pid%, ‘default’, 1)%
Здесь:
pid - вывод комментариев только текущей страницы;
default – стандартный шаблон отображения модуля;
1 – режим сортировки.
Вы должны увидеть примерно такую картину после изменений.
Для использования стандартной сортировки достаточно добавить:
%comments insert()%
Либо в случае использования нестандартного шаблона:
Надеюсь, статья окажется для Вас полезной. Желаю успехов в разработке и решении интересных задач.
Если Вы заинтересовались возможностями популярной CMS UMI, то команда MainSource может ответить на Ваши вопросы или оказать услуги в создании сайтов и разработке модулей на основе UMI.CMS.
В следующих своих статьях, я подробнее расскажу о том, что из себя представляет данная система управления сайтом, какие ее достоинства и недостатки.