コード例 #1
0
ファイル: __channel.php プロジェクト: lianren/doophp.cms
 private function export()
 {
     set_time_limit(0);
     $id = Lua::get('id');
     $id = intval($id);
     $db = Lua::get_one("select * from lua_channel where id='{$id}'");
     if (empty($db)) {
         Lua::admin_msg('错误提示', '所要导出的频道不存在');
     }
     Doo::loadHelper('DooFile');
     $fileManager = new DooFile(0777);
     Doo::cache('php')->hashing = false;
     $old_dir = LUA_ROOT . ADMIN_ROOT . '/cache/';
     // 第一步 频道数据
     Doo::cache('php')->set('channel', $db);
     // 第二步 模型数据
     $list = Lua::get_more("select * from lua_model where cid='{$id}'");
     Doo::cache('php')->set('model', $list);
     // 第三步 数据表数据
     if ($list) {
         $dumpsql = '';
         Doo::db()->query("SET SQL_QUOTE_SHOW_CREATE=1");
         foreach ($list as $v) {
             $table = Lua::get_more("select * from lua_model_table where model_id='" . $v['id'] . "'");
             Doo::cache('php')->set('model.' . $v['id'], $table);
             // 第四步 字段数据
             if ($table) {
                 foreach ($table as $k) {
                     $field = Lua::get_more("select * from lua_model_field where model_id='" . $v['id'] . "' and table_id='" . $k['id'] . "'");
                     Doo::cache('php')->set('field.' . $v['id'] . '.' . $k['id'], $field);
                     // 第五步 创建数据表
                     $r = Doo::db()->fetchRow("SHOW CREATE TABLE `" . $k['tablename'] . "`;");
                     $create = str_replace("\"", "\\\"", $r['Create Table']);
                     $dumpsql .= "\r\nDoo::db()->query(\"" . $create . "\");\r\n";
                     // 第六步 导出数据
                     $data = Lua::get_more("select * from " . $k['tablename']);
                     Doo::cache('php')->set('data.' . $k['id'], $data);
                 }
             }
         }
         $fileManager->create($old_dir . 'create.php', '<?php' . $dumpsql . '?>');
     }
     // 第七步 栏目数据
     $list = Lua::get_more("select * from lua_category where systemname='" . $db['path'] . "'");
     Doo::cache('php')->set('cate', $list);
     $list = Lua::get_more("select * from lua_piece where systemname='" . $db['path'] . "'");
     Doo::cache('php')->set('piece', $list);
     // 第八步 打包数据
     $new_dir = LUA_ROOT . $db['path'] . '/cache/update/';
     $fileManager->copy($old_dir, $new_dir);
     // 第九步 删除数据
     $fileManager->delete($old_dir, false);
     Lua::admin_msg('提示信息', '导出成功', './channel.htm');
 }