ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
> 开发者也可以用hook方法在控制器中加入钩子,让你的应用具有更好的扩展性; 同时也可以后台模板里加入钩子 ``` <hook name="footer_start"/> ``` 钩子支持传入参数: ``` <php>$param="test";</php> <hook name="footer_start" param="param"/> ``` ## 1,向系统暴露你的钩子 > 就是把你的钩子在相应的文件里列出来,系统会来检测。 如何暴露应用控制器钩子: 在你的应用根目录加上hooks.php文件,文件中返回此应用所有钩子数组就可以了; 例如:要给portal应用添加新的钩子,需找到hooks.php,添加钩子信息 > app/portal/hooks.php ``` return [ 'portal_admin_category_edit_view_main' => [ "type" => 4,//钩子类型(默认为应用钩子;2:应用钩子;3:模板钩子;4:后台模板钩子) "name" => '门户后台分类添加编辑界面主要内容', // 钩子名称 "description" => "门户后台分类添加编辑界面主要内容", //钩子描述 "once" => 0 // 是否只执行一次 ], ]; ``` ## 2,在插件里面声明 > plugins\article_field\ArticleFieldPlugin.php ``` public function portalAdminCategoryEditViewMain() { $Fields = FieldModel::all(['model'=>2]); $this->assign('Fields',$Fields); $request = request(); $id = $request->param('id'); if ($id) { $post = PortalCategoryModel::get($id); $this->assign('post',$post); } //var_dump($Fields); echo $this->fetch('category'); } ``` ## 3,后台钩子管理->同步钩子 ## ## 4,后台模板中使用钩子 > \themes\admin_simpleboot3\portal\admin_category\add.html 模板里面合适的地方添加钩子 ``` <hook name="portal_admin_category_edit_view_main"/> ```