===== Вкладки и боковые меню =====
Создание пунктов бокового меню для плагина на любой вкладке административной панели GetSimple осуществляется с помощью следующего кода:
add_action('xxxxxx-sidebar','createSideMenu',array('your-plugin-filename','Menu Text'));
то есть
add_action('xxxxxx-sidebar','createSideMenu',array('имя-файла-вашего-плагина','Текст пункта меню'));
Замените ''xxxxxx-sidebar'' наименованием сайдбара, на который вы хотите вывести ссылку или пункт меню, связанный с вашим плагином, то есть - ''backups-sidebar'', ''files-sidebar'', ''pages-sidebar'', ''plugins-sidebar'', ''settings-sidebar'', ''support-sidebar'' или ''theme-sidebar''.
(3.1+) Если вы хотите добавить для вашего плагина несколько пунктов бокового меню, используйте необязательный параметр ''action (действие)'':
add_action('xxxxxx-sidebar','createSideMenu',array('your-plugin-filename','Menu Text', 'my-action'));
то есть
add_action('xxxxxx-sidebar','createSideMenu',array('имя-файла-вашего-плагина','Текст пункта меню', 'мое-действие'));
Новый параметр ''action = my-action(мое-действие)'' добавляется к ссылке, и вы имеете возможность определить, какой из пунктов меню был кликнут.
(3.1+) Если вам требуется функционал, аналогичный, например,// “Edit Page” (Редактировать страницу)//, когда ссылка на плагин отображается на экране только в случае, если функция активна, добавьте к вызову ''add_action'' четвертый параметр ''false'':
add_action('xxxxxx-sidebar','createSideMenu',array('your-plugin-filename','Show list of It', 'list'));
add_action('xxxxxx-sidebar','createSideMenu',array('your-plugin-filename','Edit It', 'edit', false));
то есть
add_action('xxxxxx-sidebar','createSideMenu',array('имя-файла-вашего-плагина','Показать список', 'list'));
add_action('xxxxxx-sidebar','createSideMenu',array('имя-файла-вашего-плагина','Редактировать список', 'edit', false));
При клике на созданный пункт будет вызвана функция, которую вы зарегистрировали в ''register_plugin()'', но если вы не определил страницу для вывода пункта меню в седьмом аргументе ''register_plugin()'', этот пункт исчезнет.
Таким образом, если вы добавляете пункты бокового меню на две разные вкладки, этот аргумент необходимо менять динамически (например, настройки плагина на вкладке **Плагины**, еще какая-то функция на вкладке **Тема**):
$thisfile = basename(__FILE__, ".php");
# register plugin
register_plugin(
$thisfile, //Plugin id
'Hello World', //Plugin name
'1.0', //Plugin version
'Chris Cagle', //Plugin author
'http://www.cagintranet.com/', //author website
'Finds email addresses in content and components and "hides" them', //Plugin description
@$_GET['id'] == $thisfile && @$_GET['action'] == 'setup' ? 'plugins' : 'theme',
//page type - on which admin tab to display
'hello_world_show' //main function (administration)
);
add_action('plugins-sidebar','createSideMenu',array($thisfile,'Setup Hello World','setup'));
add_action('theme-sidebar','createSideMenu',array($thisfile,'Show Hello World','show'));
При наличии нескольких пунктов бокового меню для вашего плагина , ваша главная функция (в текущем примере это - //hello_world_show//) должна выглядеть примерно так:
function hello_world_show() {
if (@$_GET['action'] == 'setup') {
...
} else if (@$_GET['action'] == 'show') {
...
}
}
===== Создаем вкладки =====
В версиях GetSimple 3.1+ появилась возможность добавлять собственные вкладки в административной панели с помощью следующего кода:
add_action('nav-tab','createNavTab',array('thetabname','your-plugin-filename','Tab Text', 'my-action'));
то есть
add_action('nav-tab','createNavTab',array('Имя-новой-вкладки','имя-файла-вашего-плагина','Текстовое наименование новой вкладки','мое-действие'));
Имя новой вкладки должно быть уникальным, так же, как и имя вашего плагина, например //newsmanager//. Имя плагина также должно использоваться при назначении типа страницы при вызове функции ''register_plugin()''. Параметр action не является обязательным. Затем вы можете создать боковое меню для новой вкладки.
add_action('thetabname-sidebar', ...); // e.g. 'newsmanager-sidebar'
Создавайте дополнительную вкладку в панели только если для работы вашего плагина необходимы несколько пунктов бокового меню, и вы хотите сгруппировать их в одном месте.
====== Ссылки ======
На главную [[ru:|Содержание]]
===== Страницы этой секции =====
=== Разработка плагинов ===
*[[ru:plugins:creation|Создание плагинов ]]
*[[ru:plugins:extend_api|Работа с Extend API ]]
*[[ru:plugins:hooks_filters|Хуки и фильтры]]
*[[ru:plugins:tips|Советы и рекомендации]]
*[[ru:plugins:update_notifications|Взаимодействие плагинов и секции Extend сайта get-simple.info]]