<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之旅 廣告
                ## 插件開發 插件是用于擴展系統的功能的一些獨立“組件”。 插件的定位是用于實現某些簡單的顯示及數據處理的功能擴展。所以我們的初衷是插件的開啟關閉,不會影響原有數據。 為了管理的方便,我們在后臺給插件默認提供了插件列表頁,用于插件的安裝、卸載、設置、插件后臺等功能。 自動生成插件:[AutoBuilder](http://www.lingyun.net/appstore/ab_addon/index.html "AutoBuilder") ##適用對象 本文的適用于對ThinkPHP3.2.3版本行為擴展機制有一定了解的開發者。 ##鉤子 鉤子是插件掛載的標簽位。包括系統鉤子和自定義鉤子兩大類。 ##系統鉤子列表 >系統鉤子一般可以在公共模板文件Public/layout.html中找到。如: ```php {:Hook('PageFooter')} ``` | 鉤子(Hook) | 說明| |--------|--------| | AdminIndex | 后臺首頁小工具 | |FormBuilderExtend|FormBuilder類型擴展Builder| |UploadFile|上傳文件鉤子| |PageHeader|頁面header鉤子,一般用于加載插件CSS文件和代碼| |PageFooter|頁面footer鉤子,一般用于加載插件CSS文件和代碼| |CommonHook|通用鉤子,自定義用途,一般用來定制特殊功能| ##自定義鉤子 如新建一個自定義鉤子,名稱為:myHook,則在視圖模板中添加以下代碼即可: ```php {:Hook('myHook')} ``` ##插件結構 插件目錄位于Addons。 解耦如下: 插件目錄如下: >|-wwwroot/ |-Addons/ |-Addons/Demo/[插件目錄,需與插件名稱一致] |-Addons/Controller/[插件控制器目錄] |-Addons/Controller/DemoController.class.php[插件控制器] |-Addons/Model/[插件模型目錄] |-Addons/Model/DemoModel.class.php[插件模型] |-Addons/img/[可選] |-Addons/css/[可選] |-Addons/js/[可選] |-Addons/DemoAddon.class.php [插件類,必須] |-Addons/config.php [插件配置文件] |-Addons/index.html [插件使用的視圖文件,可自定義文件名] ##插件配置 插件配置位于插件目錄的config.php文件中: 數組的key即為配置的名稱 <ul> <li>title:顯示名稱</li> <li>type:配置值類型,可參考FormBuilder支持的類型。常用類型有:text,array,toggle,select等</li> <li>options:選項。一般用于select、toggle、radio設置數據源</li> <li>value:默認值</li> </ul> return array( 'status' => array( 'title' => '是否開啟:', 'type' => 'radio', 'options' => array( '1' => '開啟', '0' => '關閉', ), ), 'text' => array( 'title' => '提示信息', 'type' => 'text', 'value' => '這是提示信息!', ), 'time' => array( 'title' => '自動關閉時間', 'type' => 'num', 'value' => '3000', ), ); ##命名空間 插件控制器命名空間為:Addons/插件名/Controller 插件模型命名空間為:Addons/插件名/Model 注意:控制器和模型并不是插件必須的。 ##插件類 DemoAddon.class.php該文件需繼承Common\Controller\Addon; 該類提供了getConfig()方法用于獲取插件配置 特別注意:例子中的PageFooter()方法需與掛在的鉤子名稱一致。示例中的PageFooter()使用了視圖并調用了$this->display()方法,因此在鉤子位置會輸出該插件渲染的html。當然,插件并不一定要輸出html。 自定義插件后臺列表: 設置$custom_adminlist即可(可參考以下文件) namespace Addons\Demo; use Common\Controller\Addon; /** * 在線留言插件 * @author jry 598821125@qq.com */ class EnquiryAddon extends Addon { /** * 插件信息 * @author jry <598821125@qq.com> */ public $info = array( 'name' => 'Demo', 'title' => 'Demo插件', 'description' => 'Demo插件', 'status' => 1, 'author' => 'Demo', 'version' => '1.6.0', 'icon' => 'fa fa-wechat', 'icon_color' => '#5E5DCA', ); /** * 自定義插件后臺 * @author jry <598821125@qq.com> */ public $custom_adminlist = 'Demo://Demo/index'; //掛載自定義鉤子 $hooks=array( '0'=>'myHook', ); /** * 插件安裝方法 * @author jry <598821125@qq.com> */ public function install() { return true; } /** * 插件卸載方法 * @author jry <598821125@qq.com> */ public function uninstall() { return true; } /** * 鉤子方法 * @author jry <598821125@qq.com> */ public function PageFooter($param) { $config = $this->getConfig(); $this->assign('config', $config); if ($config['status']) { $this->display('index'); } } ##框架提供的方法和常量 __ADDONROOT__ :插件目錄。在Demo插件的視圖文件中通過它即可定位到Addons/Demo目錄 D('Addons://插件名/模型名'):實例化相應插件模型 addons_url('插件名://控制器名/方法名'):生成相應插件控制器的url,一般用于前端。
                  <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>

                              哎呀哎呀视频在线观看