プラグインからの管理パネルのコントローラーとビュー

    Bluditでは、プラグインから管理パネルのコントローラーとビューを簡単に作成できます。

    この機能はBludit v3.13から実装されています。

    メモ

    • Bluditのデフォルトでは、スタイリングにBootstrapを使用しますが管理ビューでも使用できます。
    • 管理ビューのエンドポイントは/admin/plugin/<プラグイン名>です。

    例: Hello world!

    次のプラグインは、メタデータ<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;
        }
    }

    完全なプラグインサンプルは、こちらからダウンロードできます。

    Copyright © 2021Powered by Bludit