Модулестроение
Создание панели администрирования
Написал andrey3761 в 28.08.2011 21:00:00 (5540 прочтений)

В данной статье я раскажу о создании панели администрирования (далее админки) модуля. Для этого мы будет использовать классы из фреймворка ModuleClasses.



Первое что необходимо сделать, это добавить в файл xoops_version.php несколько строк:

//
$modversion['dirmoduleadmin'] = 'Frameworks/moduleclasses';
$modversion['icons16'] = 'Frameworks/moduleclasses/icons/16';
$modversion['icons32'] = 'Frameworks/moduleclasses/icons/32';

// О модуле
// Ссылка на сайт модуля
$modversion["module_website_url"] = "http://radio-hobby.org/";
// Название сайта модуля
$modversion["module_website_name"] = "radio-hobby.org";
// Дата релиза
$modversion["release_date"] = "2011/08/28";
// Статус модуля
$modversion["module_status"] = "Beta";
// Сайт автора
$modversion["author_website_url"] = "http://radio-hobby.org/";
// Название автора
$modversion["author_website_name"] = "andrey3761";
// Минимальная версия PHP
$modversion['min_php']='5.2';
// Минимальная версия XOOPS
$modversion['min_xoops']="2.3";


Как видно, этим мы указали пути к фреймворку и к директории с иконками. Ниже информация для странице "О модуле", её можно менять на свою.

Теперь переходим к созданию самой панели администрирования. Создадим следующую структуру файлов:

/admin/about.php
/admin/admin_footer.php
/admin/admin_header.php
/admin/index.php
/admin/menu.php

Файлы admin_footer.php и admin_header.php мы расматривать не будем. Исходные коды вы сможете посмотреть в модуле "MyModule", ссылка на него в конце статьи.

Файл menu.php содержит массив с меню, которое отображается в панели администрирования. Исходный код его ниже:

$module_handler =& xoops_gethandler('module');
// Объект модуля
$xoopsModule =& XoopsModule::getByDirname('mymodule');
$moduleInfo =& $module_handler->get($xoopsModule->getVar('mid'));
$pathImageAdmin = $moduleInfo->getInfo('icons32');

// Массив меню
$adminmenu = array();

$i = 1;
// Первый пункт меню
// Название пункта
$adminmenu[$i]["title"] = _MI_MYMODULE_ADMIN_HOME;
// Ссылка на страницу
$adminmenu[$i]["link"]  = "admin/index.php";
// Описание страницы
$adminmenu[$i]["desc"] = _MI_MYMODULE_ADMIN_HOME_DESC;
// Картинка к данному пункту
$adminmenu[$i]["icon"] =  '../../' . $pathImageAdmin . '/home.png';
$i++;
// Второй пункт меню
$adminmenu[$i]["title"] = _MI_MYMODULE_ADMIN_ABOUT;
$adminmenu[$i]["link"]  = "admin/about.php";
$adminmenu[$i]["desc"] = _MI_MYMODULE_ADMIN_ABOUT_DESC;
$adminmenu[$i]["icon"] =  '../../' . $pathImageAdmin . '/about.png';
$i++;

Как видно, в данном меню будет всего два пункта. К этим пунктам указывается название, описание, ссылка на страницу и картинка. Картинка будет отображаться в заголовке страницы и на главной странице модуля. Файл index.php содержит следующие строки кода:

require_once '../../../include/cp_header.php';
include 'admin_header.php';

xoops_cp_header();

    // Объявляем класс интерфейса администрирования
    $indexAdmin = new ModuleAdmin();
    // Добавляем меню
    echo $indexAdmin->addNavigation('index.php');
    // Выводим главную страницу
    echo $indexAdmin->renderIndex();

include "admin_footer.php";
//
xoops_cp_footer();

функции xoops_cp_header() и xoops_cp_footer() выводят заголовок и подвал страницы администрирования. Переменная $indexAdmin является объектом интерфейса администратора. Между заголовком и подвалом страницы мы выводим меню и содержание главной страницы. Внешне она выглядет так

Создание админки модуля

В файле about.php выводится информация о модуле. Единственное отличие его от index.php в том, что там используется строка для вывода информации о модуле

echo $aboutAdmin->renderabout('', false);

Внешне данная страница выглядет так.

Создание вкладки О модуле

Теперь в нашем модуле красивый интерфейс администрирования.

Скачать модуль MyModule.


Теги: ModuleClasses  
Версия для печати Отправить эту статью другу Создать из статьи PDF-файл
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Кто активен

10 пользователь(ей) активно (1 пользователь(ей) просматривают Новости)

Участников: 0
Гостей: 10

далее...

Рекомендуем