Добавление своих страниц в панель управления CMS MODx

Хотя сейчас моя основная работа не связана с разработкой сайтов на PHP и уж тем более с MODx, иногда ко мне все же обращаются друзья с просьбой помочь им с их сайтом. Хочу рассказать о том, как создавать собственные административные страницы в набирающей популярность бесплатной CMS MODx.  Это бывает очень полезно, когда необходимо добавить дополнительную функциональность админке или реализовать что-то совершенно новое.

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

Сразу скажу что пример буду показывать на примере MODx 0.9.6.3, но аналогичные действия позволят Вам создать собственные страницы и на последней версии CMS.

Для начала создадим файл-экшн который будет отображаться при открытии страницы в админке. Для этого в директории manager/actions/ cоздадим свой файл с названием download.counter.php. В отличии от многих фреймворков здесь не имеет значения как будет называться файл, поэтому, при желании, можно сделать название любым. Поместим в этот файл следующий код:

1
2
3
4
<?php
if(IN_MANAGER_MODE!="true") die("<b>INCLUDE_ORDERING_ERROR</b><br /><br />Please use the MODx Content Manager instead of accessing this file directly.");
$base = MODX_SITE_URL;
?>

Это стандартное начало практически всех экшенов в MODx. После третьей строчки кода можно уже добавлять свой содержание, но об этом позже.

Теперь нам нужно добавить информарцию о новом экшене в меню, для этого необходимо в файле manager/index.php добавить свой case-обработчик и придумать нашей странице идентификатор. Выбирать идентификатор можно любой не занятый, но если Вы планируете в будущем обновлять свою версию MODx, то лучше заведомо взять очень большое число.

Пример кода manager/index.php

914
915
916
917
case 666:
 //download counter
 include_once "actions/download.counter.php";
 break;

Как видите, я взял достаточно красивый и запоминающийся идентификатор для своего экшена 666 :)

Следующий шаг наших действий – добавить название кнопки в словарь. В зависимости от того, на каком языке у Вас работает сайт и админка MODx, необходимо добавить новый элемент в массив $_lang. Я всегда использую вариант Russian-UTF8 и править буду соответсвующий файл manager/includes/lang/russian-UTF8.inc.php. Добавлю в него упоминание о моей кнопке:

1008
$_lang['counter'] = 'Счетчик скачиваний';

Именно этот текст будет на кнопке в панели управления.

Теперь осталось только добавить саму кнопку на панель, делается это в файле manager/frames/menu.php. В зависимости от того, в какой раздел Вы хотите поместить кнопку, нужно будет добавить код в соответствующий участок кода. Я добавил кнопку в главный раздел «Сайт» в самый конец:

246
$sitemenu[] = '<li><a onclick="this.blur();" href="index.php?a=666" target="main">'.$_lang['counter'].'</a></li>';

Вот и всё. Как видите, в атрибуте href мы задаем параметр ?a=666, где число и есть идентификатор экшена, который мы указали в файле manager/index.php. После обновления страницы в админке Вы увидите свою кнопку.

Таким способом можно создавать сколько угодно страниц и расширять бесконечно функциональность админки, все зависит от Ваших потребностей и навыков программирования.

Если есть у читателей интерес, я могу написать про то, как создавался счетчик скачиваний для сайта Танго и Кэш и как он работает.

Метки: ,

Среда, января 6, 2010 CMS

Комментировать

При копировании материалов указывайте ссылку на http://kuaa.ru