Пример #1
0
 /**
  * 获取插件列表
  */
 public function getList()
 {
     $dirs = array_map('basename', glob('./plugins/*', GLOB_ONLYDIR));
     if ($dirs === false) {
         $this->error = '插件目录不可读';
         return false;
     }
     $plugins = array();
     $where['name'] = array('in', $dirs);
     $list = $this->where($where)->field(true)->select();
     foreach ($list as $plugin) {
         $plugins[$plugin['name']] = $plugin;
     }
     foreach ($dirs as $value) {
         if (!isset($plugins[$value])) {
             $class = sp_get_plugin_class($value);
             if (!class_exists($class)) {
                 // 实例化插件失败忽略
                 \Think\Log::record('插件' . $value . '的入口文件不存在!');
                 continue;
             }
             $obj = new $class();
             $plugins[$value] = $obj->info;
             if (!isset($obj->info['type']) || $obj->info['type'] == 1) {
                 //只获取普通插件,微信插件在微信中使用
                 if ($plugins[$value]) {
                     $plugins[$value]['status'] = 3;
                     //未安装
                 }
             } else {
                 unset($plugins[$value]);
             }
         }
     }
     return $plugins;
 }
Пример #2
0
/**
 * 获取插件类的配置
 * @param string $name 插件名
 * @return array
 */
function sp_get_plugin_config($name)
{
    $class = sp_get_plugin_class($name);
    if (class_exists($class)) {
        $plugin = new $class();
        return $plugin->getConfig();
    } else {
        return array();
    }
}
Пример #3
0
 /**
  * 卸载插件
  */
 public function uninstall()
 {
     $id = intval(I('get.id'));
     $find_plugin = $this->plugins_model->find($id);
     $class = sp_get_plugin_class($find_plugin['name']);
     $plugins = new $class();
     $uninstall_success = $plugins->uninstall();
     if (!$uninstall_success) {
         $this->error('插件预卸载失败');
     }
     S('hooks', null);
     $delete = $this->plugins_model->where(array("name" => $find_plugin['name']))->delete();
     if ($delete === false) {
         $this->error('卸载失败');
     } else {
         $this->success('卸载成功');
     }
 }