thinkCMF自定义钩子hook不能使用的解决办法
初识thinkCMF,有很多的不了解的逻辑关系。
安装好thinkCMF,在官网下载安装了一些插件,其中安装了个自动缩略图的插件。
但是发布文章后没有实现其功能,不解。设置断点各种测试,发现根本没有进入安装的插件。
最后,进入了管理员后台>>钩子管理,发现上面有个《同步钩子》按钮,点了下,又卸载了一下插件,再安装插件,测试,成功解决。下面是原有自动缩略图的插件,为了使用更适合自己,还得修改一下。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?php namespace plugins\image; use cmf\lib\Plugin; /** * 后台发布文章时自动保存缩略图 * * 钩子 portal_admin_after_save_article * * @package plugins\image */ class ImagePlugin extends Plugin { public $info = [ 'name' => 'Image', 'title' => '缩略图插件', 'description' => '缩略图插件', 'status' => 1, 'author' => 'Tangchao', 'version' => '1.1', 'demo_url' => 'https://qq.ytecn.com', 'author_url' => 'https://qq.ytecn.com' ]; public $hasAdmin = 0; // 插件是否有后台管理界面 public function install() { return true; } public function uninstall() { return true; } // 方法名首字母不区分大小写 public function portalAdminAfterSaveArticle($hookParam) { if(empty($hookParam['article']['more']['thumbnail'])){ $data=[]; $data['id']=$hookParam['article']['id']; $content = $hookParam['article']['post_content']; $pattern1 = "/ src="(.*)"/iU"; preg_match_all($pattern1,$content,$matchContent1); if(!empty($matchContent1[1][0])){ $rurl = $matchContent1[1][0]; $data['more']['thumbnail']=$rurl; $post=new PortalPostModel(); $post->allowField(true)->isUpdate(true)->data($data, true)->save(); } } } } |