禁用外掛之後,資料表addons中的該外掛status狀態雖然改為了0,但是hooks表中對應的鉤子狀態依然存在。
如果是該外掛自己建立的鉤子很好辦,就是直接把它對應的鉤子在hooks表中status改為0即可。但如果是掛靠在其它的鉤子上,這個時候,就需要把這個外掛從hooks資料表中的addons中刪除。最終解決方案是第2個。
解決方法如下:
找到檔案:Application\Admin\Controller\AddonsController.class.php
找到啟用和禁用函式(enable,disable),改為下面的
如果是該外掛自己建立的鉤子很好辦,就是直接把它對應的鉤子在hooks表中status改為0即可。但如果是掛靠在其它的鉤子上,這個時候,就需要把這個外掛從hooks資料表中的addons中刪除。最終解決方案是第2個。
解決方法如下:
找到檔案:Application\Admin\Controller\AddonsController.class.php
找到啟用和禁用函式(enable,disable),改為下面的
/** * 啟用外掛 */ public function enable(){ $id = I('id'); $info = M('Addons')->find($id);//外掛資訊 $msg = array('success'=>'啟用成功', 'error'=>'啟用失敗'); S('hooks', null); //記錄行為 action_log('enable_addons','addons',$info['name'],UID); //啟用時重新把外掛新增到對應的鉤子裡 $hooks_update = D('Hooks')->updateHooks($info['name']); $this->resume('Addons', "id={$id}", $msg); }
/** * 禁用外掛 */ public function disable(){ $id = I('id'); $info = M('Addons')->find($id);//外掛資訊 $msg = array('success'=>'禁用成功', 'error'=>'禁用失敗'); S('hooks', null); //記錄行為 action_log('disable_addons','addons',$info['name'],UID); //禁用時把外掛從鉤子記錄裡刪除 $hooks_update = D('Hooks')->removeHooks($info['name']); $this->forbid('Addons', "id={$id}", $msg); }
回覆
自CoreThink v1.1 新版本釋出以來,我們陸續收到很多使用者的反饋,說很多情況比如政府網站不太適合多標籤的方式,我們的產品團隊在分析使用者反饋後,覺得是時候推出大殺器了,於是今天,國內首創後臺支援兩種模式切換的新功能在CoreThink v1.2全新推出。