User Tools

Site Tools


ru:plugins:tabs_menus

Вкладки и боковые меню

Создание пунктов бокового меню для плагина на любой вкладке административной панели 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/plugins/tabs_menus.txt · Last modified: 2013/10/15 10:36 by vladislav