/**
  * 卸载插件
  * @author jry <*****@*****.**>
  */
 public function uninstall()
 {
     $addon_object = D('Addon');
     $id = trim(I('id'));
     $db_addons = $addon_object->find($id);
     $class = get_addon_class($db_addons['name']);
     $this->assign('jumpUrl', U('index'));
     if (!$db_addons || !class_exists($class)) {
         $this->error('插件不存在');
     }
     session('addons_uninstall_error', null);
     $addons = new $class();
     $uninstall_flag = $addons->uninstall();
     if (!$uninstall_flag) {
         $this->error('执行插件预卸载操作失败' . session('addons_uninstall_error'));
     }
     $hooks_update = D('Hook')->removeHooks($db_addons['name']);
     if ($hooks_update === false) {
         $this->error('卸载插件所挂载的钩子数据失败');
     }
     S('hooks', null);
     $delete = $addon_object->where("name='{$db_addons['name']}'")->delete();
     // 卸载数据库
     $sql_file = realpath(C('ADDON_PATH') . $db_addons['name']) . '/Sql/uninstall.sql';
     if (file_exists($sql_file)) {
         $sql_object = new Sql();
         $sql_status = $sql_object->execute_sql_from_file($sql_file);
         if (!$sql_status) {
             $this->error('执行插件SQL卸载语句失败' . session('addons_uninstall_error'));
         }
     }
     if ($delete === false) {
         $this->error('卸载插件失败');
     } else {
         $this->success('卸载成功');
     }
 }
 /**
  * 卸载模块
  * @author jry <*****@*****.**>
  */
 public function uninstall($id, $clear = false)
 {
     $module_object = D('Module');
     $module_info = $module_object->find($id);
     if ($module_info['is_system'] === '1') {
         $this->error('系统模块不允许卸载!');
     }
     $result = $module_object->delete($id);
     if ($result) {
         if ($clear) {
             $sql_object = new Sql();
             $sql_file = realpath(APP_PATH . $module_info['name']) . '/Sql/uninstall.sql';
             $sql_status = $sql_object->execute_sql_from_file($sql_file);
             if ($sql_status) {
                 $this->success('卸载成功,相关数据彻底删除!', U('index'));
             }
         } else {
             $this->success('卸载成功,相关数据未卸载!', U('index'));
         }
     } else {
         $this->error('卸载失败', U('index'));
     }
 }