Инструменты пользователя

Инструменты сайта


основы_плагинов

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Последняя версия Следующая версия справа и слева
основы_плагинов [24.12.2018 17:24]
vladimir Переведен блок Other Hook Options
основы_плагинов [24.12.2018 17:37]
vladimir Переведен блок Adding Settings
Строка 176: Строка 176:
 ''<Priority>'' учитывает, есть ли две или более функции, связанные с обработчиком. Меньшее значение в параметре priority будет означать, что функция будет выполнена раньше других функций с более высоким приоритетом (например, приоритет ''0'' будет выполняться до ''10''). Приоритет по умолчанию ''10''. Обычно вам не нужно будет использовать этот параметр, если у вас нет двух плагинов, которые конфликтуют друг с другом в одном хуке. ''<Priority>'' учитывает, есть ли две или более функции, связанные с обработчиком. Меньшее значение в параметре priority будет означать, что функция будет выполнена раньше других функций с более высоким приоритетом (например, приоритет ''0'' будет выполняться до ''10''). Приоритет по умолчанию ''10''. Обычно вам не нужно будет использовать этот параметр, если у вас нет двух плагинов, которые конфликтуют друг с другом в одном хуке.
  
-Имя файла в параметре ''<file>'' будет ''included-once'' при запуске Хука, перед выполнением функции.+Имя файла в параметре ''<file>'' будет ''included-once'' при запуске хука, перед выполнением функции. 
 +===== Настройки плагина ===== 
 +Плагины могут создавать настройки, которые интегрируются с вкладкой "конфигурация" ACP. Общие параметры плагина должны быть реализованы с помощью этого метода для обеспечения согласованности между плагинами.
  
 +Настройки обычно добавляются и удаляются в методах ''_install()'' и ''_uninstall()'' соответственно, так что плагин может быть деактивирован без потери настроек.
 +===== Добавление настроек =====
 +Для создания параметров необходимо сначала создать группу параметров и получить ее идентификатор:
 +<sxh php>global $db, $mybb;
 +
 +$setting_group = array(
 +    'name' => 'mysettinggroup',
 +    'title' => 'My Plugin Settings',
 +    'description' => 'This is my plugin and it does some things',
 +    'disporder' => 5, // The order your setting group will display
 +    'isdefault' => 0
 +);
 +
 +$gid = $db->insert_query("settinggroups", $setting_group);</sxh>
 +Теперь вы можете добавить некоторые настройки в группу:
 +<sxh php>$setting_array = array(
 +    // A text setting
 +    'fav_colour' => array(
 +        'title' => 'Favorite Colour',
 +        'description' => 'Enter your favorite colour:',
 +        'optionscode' => 'text',
 +        'value' => 'Blue', // Default
 +        'disporder' => 1
 +    ),
 +    // A select box
 +    'green_good' => array(
 +        'title' => 'Is green good?',
 +        'description' => 'Select your opinion on whether green is good:',
 +        'optionscode' => "select\n0=Yes\n1=Maybe\n2=No",
 +        'value' => 2,
 +        'disporder' => 2
 +    ),
 +    // A yes/no boolean box
 +    'enable_lasers' => array(
 +        'title' => 'Enable lasers?',
 +        'description' => 'Do you want the lasers turned on?',
 +        'optionscode' => 'yesno',
 +        'value' => 1,
 +        'disporder' => 3
 +    ),
 +);
 +
 +foreach($setting_array as $name => $setting)
 +{
 +    $setting['name'] = $name;
 +    $setting['gid'] = $gid;
 +
 +    $db->insert_query('settings', $setting);
 +}
 +
 +// Don't forget this!
 +rebuild_settings();</sxh>
 +Следующий тип поля настройки (он же. код опций) поддерживает значения:
 +  * text : обычное текстовое поле
 +  * numeric : числовое поле
 +  * textarea : большое текстовое поле
 +  * yesno : логическое значение да/нет
 +  * onoff : логическое управление вкл/выкл
 +  * select : поле выбора (в формате select с последующим = по одному в новой строке)
 +  * forumselect : встроенный переключатель + флажок для выбора форумов
 +  * forumselectsingle : встроенный флажок, чтобы выбрать только один форум
 +  * groupselect : встроенный переключатель + флажок для выбора групп
 +  * groupselectsingle : встроенный флажок, чтобы выбрать только одну группу пользователей
 +  * radio : набор переключателей (в формате select, за которым следует = с одним в новой строке)
 +  * checkbox : логическое поле checkbox
 +  * language : выбор языка
 +  * adminlanguage : язык админ панели
 +  * cpstyle : выбор темы
 +  * php : php код
 +
 +Если вы установите плагин, вы теперь сможете увидеть вашу новую группу настроек и ее настройки на вкладке “конфигурация” ACP.
 +
 +Вы можете открыть эти значения через ''$mybb->settings['<setting name>']'', например ''$mybb->settings['enable_lasers']''.
основы_плагинов.txt · Последнее изменение: 24.12.2018 17:41 — vladimir