Админ Панель: контроллер и просмотр через плагины.

Contents

    Bludit позволяет легко кастоимизировать админ панель с помощью плагинов.

    Эта функция реализована, начиная с Bludit v3.13

    Notes

    • Bludit по умолчанию использует Bootstrap для стилизации, вы можете его использовать в админ панели.
    • Просмотр плагина для админ панели - /admin/plugin/<plugin-name>

    Пример: Привет, Мир!

    Данный плагин изменить тег <title> и выведет Hello world!.

    После активации плагина, перейдем по адресу https://www.example.com/admin/plugin/hello.

    <?php
    
    class Hello extends Plugin {
    
        public function adminController()
        {
            global $layout;
            $layout["title"] = "Hello Plugin | Bludit";
        }
    
        public function adminView()
        {
            return 'Hello world!';
        }
    
        public function adminSidebar()
        {
            $pluginName = Text::lowercase(__CLASS__);
            $url = HTML_PATH_ADMIN_ROOT.'plugin/'.$pluginName;
            $html = '<a id="current-version" class="nav-link" href="'.$url.'">Hello world</a>';
            return $html;
        }
    }
    ?>

    Пример: изменение настрое с помощью формы

    Следующий плагин имеет возможность изменять настройки Bludit. Визуально отображается форма, а контроллер управляется методом POST.

    После активации плагина, перейдем по адресу https://www.example.com/admin/plugin/settings

    <?php
    
    class CustomAdmin extends Plugin {
    
        public function adminController()
        {
            // Check if the form was sent
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                global $site;
                $site->set(array('title'=>$_POST['title']));
            }
        }
    
        public function adminView()
        {
            // Token for send forms in Bludit
            global $security;
            $tokenCSRF = $security->getTokenCSRF();
    
            // Current site title
            global $site;
            $title = $site->title();
    
            // HTML code for the form
            $html = '
                <h2>Settings</h2>
                <form method="post">
                <input type="hidden" id="jstokenCSRF" name="tokenCSRF" value="'.$tokenCSRF.'">
                <div class="form-group">
                    <label for="title">Site title</label>
                    <input type="text" class="form-control" id="title" name="title" value="'.$title.'">
                </div>
                <button type="submit" class="btn btn-primary">Submit</button>
                </form>
            ';
            return $html;
        }
    
        public function adminSidebar()
        {
            $pluginName = Text::lowercase(__CLASS__);
            $url = HTML_PATH_ADMIN_ROOT.'plugin/'.$pluginName;
            $html = '<a id="current-version" class="nav-link" href="'.$url.'">Custom Admin Form</a>';
            return $html;
        }
    }

    Вы можете скачать исходный код плагина: