Ejemplo n.º 1
0
 public function install()
 {
     $name = $_POST['name'];
     $this->alert_str($name, '', true);
     $dir = __ROOTDIR__ . '/plugins/' . $name;
     //获取插件信息
     $info = model('plugin')->info($name);
     if (empty($info)) {
         $this->msg('插件信息获取错误!', 0);
     }
     if ($info['rely']) {
         $rely = explode(',', $info['rely']);
         if (!empty($rely)) {
             foreach ($rely as $value) {
                 if (!model('plugin')->info_data_count($value)) {
                     $this->msg('没有发现依赖插件:' . $value, 0);
                 }
             }
         }
     }
     //导入数据库
     $db = new Dbbak($this->config['DB_HOST'], $this->config['DB_USER'], $this->config['DB_PWD'], $this->config['DB_NAME'], 'utf8', $dir . '/dbbak/');
     $db->importSql('', $info['prefix'], $this->config['DB_PREFIX']);
     if (!$info['nomenu']) {
         //添加菜单
         $mid = model('plugin')->add_menu($info);
         if (empty($mid)) {
             $this->msg('菜单添加失败!', 0);
         }
     }
     //添加模块
     $id = model('plugin')->add($info, $mid);
     @Plugin::run($name, 'install', $id);
     $this->msg('插件安装成功!', 1);
 }
Ejemplo n.º 2
0
 public function in_data()
 {
     $table = $_POST['table'];
     if (empty($table)) {
         $this->msg('文件夹名尚未填写!', 0);
     }
     $dir = __ROOTDIR__ . '/data/form/' . $table;
     $config = @Xml::decode(file_get_contents($dir . '/form.xml'));
     $config = $config['config'];
     if (empty($config)) {
         $this->msg('无法获取模型配置!', 0);
     }
     if (!file_exists($dir) || !file_exists($dir . '/dbbak/')) {
         $this->msg($table . '目录不存在!或者目录结构错误!', 0);
     }
     if (model('form')->table_info($config['table'])) {
         $this->msg($table . '表单已经存在,无法重复导入!', 0);
     }
     //导入数据库
     $db = new Dbbak($this->config['DB_HOST'], $this->config['DB_USER'], $this->config['DB_PWD'], $this->config['DB_NAME'], 'utf8', $dir . '/dbbak/');
     if (!$db->importSql('', $config['prefix'], $this->config['DB_PREFIX'])) {
         $this->msg('数据库导入失败!', 0);
     }
     //修改关联信息
     $info = model('form')->associate_edit();
     $this->msg('模型导入完毕!', 1);
 }
Ejemplo n.º 3
0
 public function in_data()
 {
     $table = $_POST['table'];
     if (empty($table)) {
         $this->msg('文件夹名尚未填写!', 0);
     }
     $dir = __ROOTDIR__ . '/data/module/' . $table;
     $config = @Xml::decode(file_get_contents($dir . '/model.xml'));
     $config = $config['config'];
     if (empty($config)) {
         $this->msg('无法获取模型配置!', 0);
     }
     if (!file_exists($dir) || !file_exists($dir . '/file/') || !file_exists($dir . '/dbbak/')) {
         $this->msg($table . '目录不存在!或者目录结构错误!', 0);
     }
     if (model('model_manage')->search($config['model'])) {
         $this->msg($table . '模型已经存在,无法重复导入!', 0);
     }
     //复制文件
     if (!copy_dir($dir . '/file/', __ROOTDIR__)) {
         $this->msg('模型文件导入失败,可能网站目录没有写入权限!', 0);
     }
     //导入数据库
     $db = new Dbbak($this->config['DB_HOST'], $this->config['DB_USER'], $this->config['DB_PWD'], $this->config['DB_NAME'], 'utf8', $dir . '/dbbak/');
     if (!$db->importSql('', $config['prefix'], $this->config['DB_PREFIX'])) {
         $this->msg('数据库导入失败!', 0);
     }
     if (method_exists($info['model'], 'model_ini_in')) {
         model($info['model'])->model_ini_in();
     }
     $this->msg('模型导入完毕!', 1);
 }