This is an old revision of the document!
Создание пунктов бокового меню для плагина на любой вкладке административной панели GetSimple осуществляется с помощью следующего кода:
add_action('xxxxxx-sidebar','createSideMenu',array('your-plugin-filename','Menu Text'));
Замените 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'));
Новый параметр 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));
При клике на созданный пункт будет вызвана функция, которую вы зарегистрировали в 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') { ... } }
(3.1+) You can also add a new tab to the GetSimple administration by using the following code:
add_action('nav-tab','createNavTab',array('thetabname','your-plugin-filename','Tab Text', 'my-action'));
Use a unique name for the tab, e.g. your plugin name like newsmanager. Also use this name for the page type in register_plugin()
. The action
parameter is again optional.
You can then add sidebar links for this tab with
add_action('thetabname-sidebar', ...); // e.g. 'newsmanager-sidebar'
Only use this functionality, if you need a lot of side bar links for you plugin and want to group them.