<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之旅 廣告
                # 8. 創建菜單 ## 創建后臺菜單 菜單數據以數組形式定義,定義好之后可以通`create_menu`函數手動創建菜單,通過`del_menu`函數來手動刪除菜單。當然,除了以上方式還支持系統自動判斷導入菜單,請參考下面的自動導入方式。 ## 字段說明 > 2.1.220220版本之前,字段需要填寫完整 字段名說明默認值是否必填parent\_id父菜單ID或父菜單的name,默認0,表示最頂級0-title菜單名稱,菜單多語言目前需要在admin\_route后臺路由事件中手動導入菜單語言包-必填name權限規則-必填route路由-icon圖標fas fa-align-ustify/far fa-circle-remark備注-weigh排序0-type類型:0-權限規則,1-菜單,2-菜單頭(提供的額外標識)1-child子級菜單,有子級的話按一級菜單字段填寫即可--1. name,權限規則 寫法:控制器/方法,二級文件夾則是文件夾名/控制器/方法,注意二級需要填寫路由 2. route,路由地址 寫法:文件夾名.控制器/方法,常用于有文件夾的情況,注意是“點” 3. icon,圖標 基于`fontawesome`,一級菜單默認為`fas fa-align-justify`,二級菜單默認`far fa-circle` 圖標地址:[https://fa5.dashgame.com/#/圖標](https://fa5.dashgame.com/#/%E5%9B%BE%E6%A0%87) 4. type,菜單類型 未填寫`type`時系統會自動判斷菜單類型,在認為有子級情況下認為是菜單。若有特殊情況,您需要填寫`type`字段 ## 自動導入示例 在插件名稱類里面增加公共屬性`$menu`,在安裝時檢測到有這個屬性就會自動導入,另外在`卸載`、`啟用`、`禁用`、`更新`等操作時系統會自動對菜單進行相應的操作,例如插件禁用,菜單也會被禁用。 > 注意:如果菜單已存在并且這個菜單不屬于該插件就不會導入,如果已存在,屬于該插件則是更新菜單。 > 插件升級操作時,同樣會根據menu導入,如果存在則是更新該菜單,如有額外處理,可在upgrade方法中操作 ``` <pre class="calibre16">``` <span class="token"><</span><span class="token">?</span>php declare <span class="token1">(</span>strict_types<span class="token">=</span><span class="token3">1</span><span class="token1">)</span><span class="token1">;</span> namespace addons\demo<span class="token1">;</span> use think\Addons<span class="token1">;</span> class <span class="token6">Demo</span> extends <span class="token6">Addons</span> <span class="token1">{</span> <span class="token5">// 菜單</span> public $menu <span class="token">=</span> <span class="token1">[</span> <span class="token1">[</span> <span class="token4">'title'</span><span class="token">=</span><span class="token">></span><span class="token4">'插件測試'</span><span class="token1">,</span> <span class="token4">'name'</span><span class="token">=</span><span class="token">></span><span class="token4">'demo'</span><span class="token1">,</span> <span class="token4">'child'</span><span class="token">=</span><span class="token">></span><span class="token1">[</span> <span class="token1">[</span><span class="token4">'title'</span><span class="token">=</span><span class="token">></span><span class="token4">'查看'</span><span class="token1">,</span><span class="token4">'name'</span><span class="token">=</span><span class="token">></span><span class="token4">'demo/index'</span><span class="token1">]</span><span class="token1">,</span> <span class="token1">[</span><span class="token4">'title'</span><span class="token">=</span><span class="token">></span><span class="token4">'添加'</span><span class="token1">,</span><span class="token4">'name'</span><span class="token">=</span><span class="token">></span><span class="token4">'demo/add'</span><span class="token1">]</span><span class="token1">,</span> <span class="token1">[</span><span class="token4">'title'</span><span class="token">=</span><span class="token">></span><span class="token4">'修改'</span><span class="token1">,</span><span class="token4">'name'</span><span class="token">=</span><span class="token">></span><span class="token4">'demo/edit'</span><span class="token1">]</span><span class="token1">,</span> <span class="token1">[</span><span class="token4">'title'</span><span class="token">=</span><span class="token">></span><span class="token4">'刪除'</span><span class="token1">,</span><span class="token4">'name'</span><span class="token">=</span><span class="token">></span><span class="token4">'demo/del'</span><span class="token1">]</span><span class="token1">,</span> <span class="token1">]</span> <span class="token1">]</span> <span class="token1">]</span><span class="token1">;</span> public <span class="token2">function</span> <span class="token6">install</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token2">return</span> <span class="token3">true</span><span class="token1">;</span> <span class="token1">}</span> public <span class="token2">function</span> <span class="token6">uninstall</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token2">return</span> <span class="token3">true</span><span class="token1">;</span> <span class="token1">}</span> <span class="token1">}</span> ``` ``` ## 菜單多語言 在插件目錄,在data目錄下創建zh-cn.php文件,如下圖 ![](https://img.kancloud.cn/a1/45/a14511db706c16ac94ad71d4e4739bdc_212x111.png) 目前后臺內置的中英語言包、因此在上面講的$menu變量里面title全部寫成英文,然后下面的寫上英文跟中文的對照。 ``` <pre class="calibre16">``` <span class="token"><</span><span class="token">?</span>php <span class="token2">return</span> <span class="token1">[</span> <span class="token4">'Addon test'</span> <span class="token">=</span><span class="token">></span> <span class="token4">'插件測試'</span> <span class="token1">]</span><span class="token1">;</span> ``` ``` 支持其他語言包寫法,例如繁體中文命名為:zh-tw.php,那么代碼如下: ``` <pre class="calibre16">``` <span class="token"><</span><span class="token">?</span>php <span class="token2">return</span> <span class="token1">[</span> <span class="token4">'Addon test'</span> <span class="token">=</span><span class="token">></span> <span class="token4">'插件測試'</span> <span class="token1">]</span><span class="token1">;</span> ``` ``` 創建文件后我們需要在插件初始化時加載語言包 ``` <pre class="calibre16">``` public <span class="token2">function</span> <span class="token6">addonsInitHook</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">// 獲取語言包對象</span> $lang <span class="token">=</span> <span class="token6">app</span><span class="token1">(</span><span class="token1">)</span><span class="token">-</span><span class="token">></span>lang<span class="token1">;</span> <span class="token5">// 加載語言包,$this->addon_path 插件目錄,DIRECTORY_SEPARATOR 是 '/' 或 '\',$lang->getLangset() 是當前語言</span> $lang<span class="token">-</span><span class="token">></span><span class="token6">load</span><span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>addon_path<span class="token1">.</span><span class="token4">'data'</span><span class="token1">.</span>DIRECTORY_SEPARATOR<span class="token1">.</span>$lang<span class="token">-</span><span class="token">></span><span class="token6">getLangset</span><span class="token1">(</span><span class="token1">)</span><span class="token1">.</span><span class="token4">'.php'</span><span class="token1">)</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` ## 手動導入 如下,我們可以創建PHP文件,放到插件的data目錄下,如下 ![](https://img.kancloud.cn/32/5c/325c9630822f033e706715b5654217aa_294x148.png) ``` <pre class="calibre16">``` <span class="token"><</span><span class="token">?</span>php <span class="token2">return</span> <span class="token1">[</span> <span class="token1">[</span> <span class="token5">// 父菜單ID或父菜單name或0</span> <span class="token4">"parent_id"</span> <span class="token">=</span><span class="token">></span> <span class="token3">57</span><span class="token1">,</span> <span class="token5">// 標題</span> <span class="token4">"title"</span> <span class="token">=</span><span class="token">></span> <span class="token4">'菜單名稱'</span><span class="token1">,</span> <span class="token5">// 權限認證規則</span> <span class="token4">"name"</span><span class="token">=</span><span class="token">></span><span class="token4">"createhtml"</span><span class="token1">,</span> <span class="token5">// 路由地址</span> <span class="token4">"route"</span> <span class="token">=</span><span class="token">></span> <span class="token4">""</span><span class="token1">,</span> <span class="token5">// fontawesome 圖標</span> <span class="token4">"icon"</span> <span class="token">=</span><span class="token">></span> <span class="token4">'fas fa-print'</span><span class="token1">,</span> <span class="token5">// 備注</span> <span class="token4">"remark"</span> <span class="token">=</span><span class="token">></span> <span class="token4">""</span><span class="token1">,</span> <span class="token5">// 排序</span> <span class="token4">"weigh"</span> <span class="token">=</span><span class="token">></span> <span class="token3">10</span><span class="token1">,</span> <span class="token5">// 菜單類型</span> <span class="token4">"type"</span> <span class="token">=</span><span class="token">></span> <span class="token3">1</span><span class="token1">,</span> <span class="token5">// 子級</span> <span class="token4">"child"</span><span class="token">=</span><span class="token">></span><span class="token1">[</span> <span class="token1">[</span> <span class="token5">// 標題</span> <span class="token4">"title"</span> <span class="token">=</span><span class="token">></span> <span class="token4">'菜單名稱1'</span><span class="token1">,</span> <span class="token5">// 權限認證規則</span> <span class="token4">"name"</span><span class="token">=</span><span class="token">></span><span class="token4">"createhtml/index1"</span><span class="token1">,</span> <span class="token5">// 子級</span> <span class="token4">"child"</span><span class="token">=</span><span class="token">></span><span class="token1">[</span> <span class="token1">[</span><span class="token4">"title"</span> <span class="token">=</span><span class="token">></span> <span class="token4">'菜單名稱2'</span><span class="token1">,</span><span class="token4">"name"</span><span class="token">=</span><span class="token">></span><span class="token4">"createhtml/index"</span><span class="token1">,</span><span class="token1">]</span> <span class="token1">]</span> <span class="token1">]</span><span class="token1">,</span> <span class="token1">[</span> <span class="token5">// 標題</span> <span class="token4">"title"</span> <span class="token">=</span><span class="token">></span> <span class="token4">'菜單名稱3'</span><span class="token1">,</span> <span class="token5">// 權限認證規則</span> <span class="token4">"name"</span><span class="token">=</span><span class="token">></span><span class="token4">"createhtml/index"</span><span class="token1">,</span> <span class="token1">]</span> <span class="token1">]</span> <span class="token1">]</span><span class="token1">,</span> <span class="token1">]</span><span class="token1">;</span> ``` ``` 在安裝的時候導入,使用`create_menu`方法導入。導入后無需管禁用、啟用與卸載的操作了,系統會自動去操作菜單。 ``` <pre class="calibre16">``` public <span class="token2">function</span> <span class="token6">install</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span> <span class="token5">// 菜單數組文件路徑</span> $menu <span class="token">=</span> include $this<span class="token">-</span><span class="token">></span>addon_path<span class="token1">.</span><span class="token4">'data'</span><span class="token1">.</span>DIRECTORY_SEPARATOR<span class="token1">.</span><span class="token4">'menu.php'</span><span class="token1">;</span> <span class="token5">// 參數一給路徑,參數二給當前插件的標識</span> <span class="token6">create_menu</span><span class="token1">(</span>$menu<span class="token1">,</span>$this<span class="token">-</span><span class="token">></span><span class="token6">getName</span><span class="token1">(</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> <span class="token2">return</span> <span class="token3">true</span><span class="token1">;</span> <span class="token1">}</span> ``` ``` ## 方法的使用 - create\_menu 創建菜單 參數1為菜單數組,參數2為菜單屬于的插件標識。 > 注意:如果菜單已存在并且這個菜單不屬于該插件就不會導入,如果已存在,屬于該插件則是更新菜單 ``` <pre class="calibre16">``` <span class="token5">// 在插件里面可以直接獲取到插件標識,當然你也可以直接寫上你的插件標識</span> <span class="token6">create_menu</span><span class="token1">(</span>$menu<span class="token1">,</span> $this<span class="token">-</span><span class="token">></span><span class="token6">getName</span><span class="token1">(</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> ``` ``` - status\_menu 更改狀態:啟用與禁用. 參數1為:1=啟用,0=禁用,參數2為插件名稱標識 ``` <pre class="calibre16">``` <span class="token6">status_menu</span><span class="token1">(</span><span class="token3">1</span><span class="token1">,</span> $this<span class="token">-</span><span class="token">></span><span class="token6">getName</span><span class="token1">(</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span> <span class="token5">// 啟用菜單</span> ``` ``` ``` <pre class="calibre16">``` <span class="token5">// 例如插件叫demo</span> <span class="token6">status_menu</span><span class="token1">(</span><span class="token3">0</span><span class="token1">,</span> <span class="token4">'demo'</span><span class="token1">)</span><span class="token1">;</span> <span class="token5">// 禁用demo的菜單</span> ``` ``` - del\_menu 刪除菜單 ``` <pre class="calibre20">``` <span class="token5">// 參數1為插件標識</span> <span class="token6">del_menu</span><span class="token1">(</span>$name<span class="token1">)</span><span class="token1">;</span> ``` ```
                  <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>

                              哎呀哎呀视频在线观看