<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之旅 廣告
                >[danger] 注意:所有插件的數據表命名格式必須為:cowcms_插件模塊名_數據表名稱,比如模塊為admin,數據表名稱為menu,創建數據表最終的名稱為:cowcms_admin_menu。 > 插件的開發和THINKPHP模塊的開發基本沒什么區別,唯一的區別就是插件模塊中多了一個exec的目錄。 >[info]exec目錄展示 > ~~~ application 模塊的總目錄 │ ├─common 公共模塊目錄(可選) │ ├─module1 模塊目錄 │ │ ├─exec 操作執行目錄 │ │ │ ├─install 安裝模塊執行目錄 │ │ │ │ ├─sql sql文件目錄,在該目錄中的sql文件,在安裝模塊被執行 │ │ │ │ ├─exec.php 在模塊安裝時執行該文件 │ │ │ ├─uninstall 卸載模塊執行目錄 │ │ │ │ ├─exec.php 在模塊卸載時執行該文件 │ │ │ ├─update 更新目錄執行目錄 │ │ │ │ ├─sql sql文件目錄,在該目錄中的sql文件,在模塊時被執行 │ │ │ │ ├─exec.php 在模塊更新時執行該文件 │ │ │ ├─config.php 模塊配置文件 │ │ │ ├─tables.php 數據表文件,在安裝時根據執行的sql文件保存sql文件中創建的數據表 │ │ │ ├─auth.php 安裝時加入的權限規則表 │ │ │ ├─menu.php 安裝時加入的菜單列表 │ │ │ ├─event.php 安裝時關聯的碎片功能 │ │ └─ ... 更多類庫目錄 ~~~ >[info] config.php---模塊的配置文件 > ~~~php [ 'name' =>'文章系統', //模塊名稱 'author'=>'COWCMS', //開發作者 'version'=>'5.1.1', //模塊版本號 'qq'=>'360881323', //開發者QQ號 'web'=>'//open.cowcms.com', //開發者個人主頁 'sign'=>'gQrr7uc0eP7GX0rtLTcqoazmOOUk9h0rcAow', //是模塊的唯一標識嗎 32為字符 'describe'=>'COWCMS插件是一個插件庫', //模塊功能描述 ] ~~~ >[danger]特別注意:config.php文件中的 【sign】值,該值是每個模塊對應的一個唯一的標識碼,一個32為的字符串 > * [ ] 【功能作用】是實現在線更新功能,此值為空的模塊不支持在線更新。 * [ ] 【獲取方法】在 //open.cowcms.com 網站上注冊會員,添加插件后,管理員審核通過,會在會員中心找到該 【sign】的值。 ![](https://box.kancloud.cn/bb6642feb47ede35bf19ffff939db409_1531x236.jpg) >[info] exec.php---模塊執行文件,在模塊執行 安裝,更新,卸載操作的時候,都會執行其對應目錄下的exec.php文件和sql目錄下的sql文件。 > 模塊安裝時:要執行--install 目錄下的exec.php文件,以及sql目錄下的sql文件 模塊卸載時:要執行--uninstall 目錄下的exec.php文件,以及sql目錄下的sql文件 模塊更新時:要執行--update 目錄下的exec.php文件,以及sql目錄下的sql文件 >[info] 執行文件 exec.php,在這個文件中預設了幾個執行函數 > ~~~php //在執行安裝,卸載,更新時,提交的表單數據 // $module_name 當前執行的模塊名 $this->field = function($module_name){ $fields=[ [ 'name'=>"username",//字段名稱 'title'=>"用戶名",//字段別名 'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證) 'type'=>"text",//表單類型 可選 text|select|checkbox|radio|textarea 'value'=>"admin",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組 'option'=>"",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value 'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效 ] ]; return $fields; }; //在執行安裝,卸載,更新時,如果field函數返回了字段且有表單數據被提交會執行此函數 // $module_name 當前執行的模塊名 // $data field函數中產生的表單提交過來的數據 $this->form = function($module_name,$data){ return $data; }; //在執行安裝,卸載,更新之前要執行該函數 // $module_name 當前執行的模塊名 // $data form函數中反回來的數據 $this->begin = function($module_name,$data){ return $data; }; //在執行安裝,更新時,如果有sql文件,在執行sql文件前會執行此函數 // $module_name 當前執行的模塊名 // $data form函數中反回來的數據 // $param 前邊函數返回的值 $param['begin'] :begin函數返回的值 $this->sqlBegin = function($module_name,$data,$param){ return $data; }; //在執行安裝,更新時,如果有sql文件,在執行sql文件完成后會執行此函數 // $module_name 當前執行的模塊名 // $data form函數中反回來的數據 // $param 前邊函數返回的值 $param['begin'] :begin函數返回的值,$param['sqlBegin'] :sqlBegin函數返回的值 $this->sqlEnd = function($module_name,$data,$param){ return $data; }; //在執行安裝,卸載,更新完成后會執行此函數 // $module_name 當前執行的模塊名 // $data form函數中反回來的數據 // $param 前邊函數返回的值 $param['begin'] :begin函數返回的值,$param['sqlBegin'] :sqlBegin函數返回的值,$param['sqlEnd'] :sqlEnd函數返回的值 $this->finish = function($module_name,$data,$param){ return $data; }; ~~~ >[info] 執行文件 exec.php中 $this->field函數中字段設置效果,如 > ~~~php $this->field = function($module_name){ $fields=[ [ 'name'=>"username",//字段名稱 'title'=>"用戶名",//字段別名 'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證) 'type'=>"text",//表單類型 可選 text|select|checkbox|radio|textarea 'value'=>"admin",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組 'option'=>"",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value 'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效 ], [ 'name'=>"group_1",//字段名稱 'title'=>"會員組1",//字段別名 'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證) 'type'=>"select",//表單類型 可選 text|select|checkbox|radio|textarea 'value'=>"2",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組 'option'=>"普通會員=10|高級會員=11|合作會員=12",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value 'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效 ], [ 'name'=>"group_2",//字段名稱 'title'=>"會員組2",//字段別名 'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證) 'type'=>"radio",//表單類型 可選 text|select|checkbox|radio|textarea 'value'=>"2",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組 'option'=>"普通會員=10|高級會員=11|合作會員=12",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value 'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效 ], [ 'name'=>"group_3",//字段名稱 'title'=>"會員組3",//字段別名 'verify'=>"required",//表單驗證(支持text|textarea),多個用|隔開 required(必填項) phone(手機號)email(郵箱)url(網址)number(數字)date(日期)identity(身份證) 'type'=>"checkbox",//表單類型 可選 text|select|checkbox|radio|textarea 'value'=>"2",//表單默認值 在(text|textarea)表單類型值為字符串,在(select|checkbox|radio) 表單類型值為默認選擇的索引,在checkbox表單類型,默認值可以為數組 'option'=>"普通會員=10|高級會員=11|合作會員=12",// 在(checkbox|select|radio)表單類型 該字段有效,格式為text=value|text=value 'placeholder'=>''//placeholder值,對(text|textarea)表單類型有效 ] ]; return $fields; }; ~~~ ![](https://box.kancloud.cn/70eb110f919a686e7d804f8466e20932_968x730.jpg)
                  <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>

                              哎呀哎呀视频在线观看