Topic: Как добавить свою страницу (подменю) в панель администратора
При написании какого либо расширения, возможно вам понадобиться создать свою страницу (то есть подкатегорию, субменю, подменю или как там его еще называют....) в панели администратора PunBB для того чтобы отображать какие либо настройки или другую информацию. Сейчас мы рассмотрим как сделать страницу в админке.
В данном примере представим что у нас уже имеется каркас расширения. Информация по созданию расширений находиться здесь.
Для начала нужно определиться в какой главный пункт меню вы хотели бы добавить свой новый подпункт.
Основные пункты админ меню, их 5:
Начало Настройки Пользователи Управление Расширения
У каждого меню есть своя определенная константа. Вот они:
define('FORUM_PAGE_SECTION', 'start'); //Начало
define('FORUM_PAGE_SECTION', 'settings'); //Настройки
define('FORUM_PAGE_SECTION', 'users'); //Пользователи
define('FORUM_PAGE_SECTION', 'management'); //Управление
define('FORUM_PAGE_SECTION', 'extensions'); //Расширения
Давайте попрактикуемся и добавим страницу/подменю в главное меню администратора - Управление
Создадим простое расширение, которое будет сохранять информацию о пользователях и экспортировать их в формат CSV.
1. Создаем папку с именем aa_export_data, это ID расширение, так что должно совпадать с именем директории.
2. Создаем файл manifest.xml и заполняем все поля:
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">
<extension engine="1.0">
<id>aa_export_data</id>
<title>Export Users Data</title>
<version>0.1</version>
<description>Export users from the database to .csv file</description>
<author>aa</author>
<minversion>1.4</minversion>
<maxtestedon>1.4.5</maxtestedon>
<hooks>
<hook id="co_modify_url_scheme"><![CDATA[
$forum_url[$ext_info['id']] = 'admin/settings.php?section='.$ext_info['id'];
]]></hook>
<hook id="aop_new_section"><![CDATA[
if ($section == $ext_info['id'])
require $ext_info['path'].'/hooks/aop_new_section.php';
]]></hook>
<hook id="ca_fn_generate_admin_menu_new_sublink"><![CDATA[
require $ext_info['path'].'/hooks/ca_fn_generate_admin_menu_new_sublink.php';
]]></hook>
</hooks>
</extension>
Сохраняем файл.