<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 創建菜單 ## 后臺菜單創建 一般我們的應用插件都會有后臺管理的菜單,此時我們需要創建插件的后臺管理菜單。以下是常用的方法。以下是`addons/mydemo/Mydemo.php`中的代碼如下: ~~~php <?php namespace addons\mydemo; use app\common\library\Menu; use app\common\model\User; use fast\Date; use think\Addons; use think\Config; use think\Request; use think\Route; /** * Mydemo插件 */ class Mydemo extends Addons { protected $menu = [ [ 'name' => 'mydemo', //權限規則標識,首個菜單標識必須和插件標識相同 'title' => 'Mydemo管理', //菜單標題 'icon' => 'fa fa-map-marker', //菜單按鈕,可使用Font-Awesome的圖標 'ismenu' => 1, //是否為菜單 'weigh' => 1, //權重,值越大越靠前 'remark' => 'Demo管理描述內容', //菜單描述內容,在列表處顯示 'sublist' => [ //子菜單配置 ["name" => "signin/index","title" => "查看"], ["name" => "signin/add","title" => "添加"], ["name" => "signin/edit","title" => "編輯"], ["name" => "signin/del","title" => "刪除"], ["name" => "signin/multi","title" => "批量更新"], ] ] ]; /** * 插件安裝方法 * @return bool */ public function install() { Menu::create($this->menu); return true; } /** * 插件卸載方法 * @return bool */ public function uninstall() { Menu::delete("mydemo"); return true; } /** * 插件啟用方法 * @return bool */ public function enable() { Menu::enable("mydemo"); return true; } /** * 插件禁用方法 * @return bool */ public function disable() { Menu::disable("mydemo"); return true; } /** * 插件升級方法 * @return bool */ public function upgrade() { //如果菜單有變更則升級菜單 Menu::upgrade('mydemo', $this->menu); return true; } /** * 會員中心邊欄后 * @return mixed * @throws \Exception */ public function userSidenavAfter() { $request = Request::instance(); $controllername = strtolower($request->controller()); $actionname = strtolower($request->action()); $data = [ 'actionname' => $actionname, 'controllername' => $controllername ]; return $this->fetch('view/hook/user_sidenav_after', $data); } } ~~~ 其中我們可以在`install`方法中使用`Menu::create($menu, $parent)`來創建菜單,其中`$menu`是我們的菜單配置信息,`$parent`是我們父菜單,父菜單是父菜單的`name`。默認為`0`表示頂級菜單。 ## 后臺多級菜單 如果我們需要創建多級菜單,我們的`$menu`值應該是這樣 ~~~bash $menu = [ [ 'name' => 'mydemo', 'title' => 'Mydemo管理', 'icon' => 'fa fa-magic', 'ismenu' => 1, 'weigh' => 1, 'remark' => 'Demo管理描述內容' 'sublist' => [ [ 'name' => 'mydemo/menu1', 'title' => '菜單示例1', 'icon' => 'fa fa-table', 'ismenu' => 1, 'weigh' => 3, 'sublist' => [ ['name' => 'mydemo/menu1/index', 'title' => '查看'], ['name' => 'mydemo/menu1/detail', 'title' => '詳情'], ['name' => 'mydemo/menu1/change', 'title' => '變更'], ['name' => 'mydemo/menu1/del', 'title' => '刪除'], ['name' => 'mydemo/menu1/multi', 'title' => '批量更新'], ] ], [ 'name' => 'mydemo/menu2', 'title' => '菜單示例2', 'icon' => 'fa fa-table', 'ismenu' => 1, 'weigh' => 2, 'sublist' => [ ['name' => 'mydemo/menu2/index', 'title' => '查看'], ['name' => 'mydemo/menu2/del', 'title' => '刪除'], ['name' => 'mydemo/menu2/multi', 'title' => '批量更新'], ] ], [ 'name' => 'mydemo/menu3', 'title' => '菜單示例3', 'icon' => 'fa fa-edit', 'ismenu' => 1, 'weigh' => 1, 'sublist' => [ ['name' => 'mydemo/menu2/index', 'title' => '查看'], ] ], ] ] ]; ~~~ 其中`sublist`表示下級菜單的配置,FastAdmin無限級菜單配置,但建議菜單級數不宜過多,合理的欄目規劃能更方便后臺的使用。 ## 后臺菜單操作 我們在后臺禁用、啟用、卸載插件是需要對菜單進行操作的。因此我們需要在`Mydemo.php`對應的方法中添加上相應的操作。如 ~~~php /** * 插件卸載方法 * @return bool */ public function uninstall() { Menu::delete("mydemo"); return true; } /** * 插件啟用方法 * @return bool */ public function enable() { Menu::enable("mydemo"); return true; } /** * 插件禁用方法 * @return bool */ public function disable() { Menu::disable("mydemo"); return true; } ~~~ ## 后臺菜單升級 請檢查是否存在`upgrade`方法,如 ~~~php /** * 插件升級方法 * @return bool */ public function upgrade() { //如果菜單有變更則升級菜單 Menu::upgrade('mydemo', $this->menu); return true; } ~~~ 調用`Menu::upgrage('插件標識', 菜單數組);`會自動進行菜單的升級 ## 會員中心菜單 如果我們開發的插件有前臺會員中心菜單,我們可以通過在`Mydemo.php`中添加 ~~~php /** * 會員中心邊欄后 * @return mixed * @throws \Exception */ public function userSidenavAfter() { $request = Request::instance(); $controllername = strtolower($request->controller()); $actionname = strtolower($request->action()); $data = [ 'actionname' => $actionname, 'controllername' => $controllername ]; return $this->fetch('view/hook/user_sidenav_after', $data); } ~~~ 用此行為事件返回一個HTML即可將菜單顯示在會員中心的邊欄。 注意`view/hook/user_sidenav_after`文件位于`addons/mydemo/view/hook/user_sidenav_after.html` ## 常見問題 1. 開發階段由于創建了錯誤的后臺菜單,導致安裝插件時索引錯誤,此時可以到`權限管理`\->`規則菜單`中去刪除錯誤的菜單規則。 2. 插件卸載重裝后,管理組權限菜單需要重新分配,否則對應的管理員會沒有相關權限。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看