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'); }