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

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


создание_новой_страницы

Создание новой страницы / действия

Иногда бывает полезно создать новую, выделенную страницу для плагина. Возможно, в противном случае было бы слишком много ссылок, необходимых для получения различных элементов управления/настроек для вашего плагина, или, может быть, больше свободы в настройке дизайна пользовательского интерфейса для вашего плагина. В этом случае создание выделенной страницы будет жизнеспособным решением. Есть два способа сделать это.

Использование misc.php позволяет добавлять пользовательские «страницы» без создания нового файла PHP самостоятельно, и позволяет иметь дело только со стандартными файлами ядра и файлом плагина. Однако, если вам нужна еще большая гибкость, вы можете использовать отдельный файл для достижения своей цели.

Использование ''misc.php''

Простой способ добавить пользовательскую страницу через плагин - использовать хук misc_start.

$plugins->add_hook('misc_start', 'my_action');

// In the body of your plugin
function my_action()
{
    global $mybb, $templates, $lang, $header, $headerinclude, $footer;

    if($mybb->get_input('action') == 'myaction')
    {
        // Do something, for example I'll create a page using the hello_world_template

        // Add a breadcrumb
        add_breadcrumb('My Action', "misc.php?action=myaction");

        $hello_world = 'This text will appear on the page';
        eval('$sections  = "' . $templates->get('hello_world_template') . '";');

        // Using the misc_help template for the page wrapper
        eval("\$page = \"".$templates->get("misc_help")."\";");
        output_page($page);
    }
}
Это создает страницу, красиво оформленную с верхним и нижним колонтитулом шаблона, доступную путем перехода к misc.php?действие=myaction.

Вы можете добавить свой собственный шаблон страницы вместо использования misc_help.

Использование отдельного файла

Если настраиваемая страница имеет много функциональных возможностей, можно использовать отдельный файл, например my_plugin.php, помещенный в корневой каталог MyBB. Процесс почти тот же, кроме размещения вашей функциональности в файл my_plugin.php, а не в хук-функции:

<?php

// Set some useful constants that the core may require or use
define("IN_MYBB", 1);
define('THIS_SCRIPT', 'my_plugin.php');

// Including global.php gives us access to a bunch of MyBB functions and variables
require_once "./global.php";

// Only required because we're using misc_help for our page wrapper
$lang->load("misc");

// Add a breadcrumb
add_breadcrumb('My Page', "my_plugin.php");

$hello_world = 'This text will appear on the page';
eval('$sections  = "' . $templates->get('hello_world_template') . '";');

// Using the misc_help template for the page wrapper
eval("\$page = \"".$templates->get("misc_help")."\";");

// Spit out the page to the user once we've put all the templates and vars together
output_page($page);

?>
Вы можете открыть это, перейдя к my_plugin.php. Вы также можете запустить оператор switch на $mybb→get_input('action') для обслуживания нескольких действий на вашей пользовательской странице.

Vladimir 26.12.2018 17:39

создание_новой_страницы.txt · Последние изменения: 26.12.2018 17:40 — vladimir