'; if ($_COOKIE["uid"]) { $uid = $_COOKIE["uid"]; } else { echo "尚未登录"; echo "

登录后才可以打开文档

"; exit; } if (isset($_GET["doc_id"]) == false) { echo "没有 文档编号"; exit; } PDO_Connect( _FILE_DB_FILEINDEX_); $doc_id = $_GET["doc_id"]; $query = "SELECT * from "._TABLE_FILEINDEX_." where uid= ? "; $Fetch = PDO_FetchAll($query, array($doc_id)); $iFetch = count($Fetch); if ($iFetch > 0) { //文档信息 $mbook = $Fetch[0]["book"]; $paragraph = $Fetch[0]["paragraph"]; } if (isset($_GET["channel"]) == false) { echo '
'; echo "

选择一个空白的版风存储新的文档

"; echo "
"; echo ""; PDO_Connect( _FILE_DB_CHANNAL_,_DB_USERNAME_,_DB_PASSWORD_); $query = "SELECT uid,name,lang,status,create_time from "._TABLE_CHANNEL_." where owner_uid = ? limit 100"; $Fetch = PDO_FetchAll($query,$_COOKIE["user_uid"]); $i = 0; foreach ($Fetch as $row) { echo '
'; echo '
'; echo ''; echo '
'; echo '
' . $row["name"] . '
'; echo '
' . $row["lang"] . '
'; echo '
'; PDO_Connect(_FILE_DB_USER_WBW_); $query = "SELECT count(*) from "._TABLE_USER_WBW_BLOCK_." where channel_uid = '{$row["uid"]}' and book_id='{$mbook}' and paragraph in ({$paragraph}) limit 100"; $FetchWBW = PDO_FetchOne($query); echo '
'; echo '
'; if ($FetchWBW == 0) { echo $_local->gui->blank; } else { echo $FetchWBW . $_local->gui->para; echo "open"; } echo '
'; echo '
'; PDO_Connect(_FILE_DB_SENTENCE_,_DB_USERNAME_,_DB_PASSWORD_); $query = "SELECT count(*) from "._TABLE_SENTENCE_." where channel_uid = ? and book_id=? and paragraph in ({$paragraph}) limit 1000"; $FetchWBW = PDO_FetchOne($query,array($row["uid"],$mbook)); echo '
'; echo '
'; if ($FetchWBW == 0) { echo $_local->gui->blank; } else { echo $FetchWBW . $_local->gui->para; } echo '
'; echo '
' . $row["status"] . '
'; echo '
' . $row["create_time"] . '
'; echo '
'; $i++; } echo ""; echo "
"; echo "
"; exit; } //if(isset($_GET["doc_id"])) { PDO_Connect( _FILE_DB_FILEINDEX_,_DB_USERNAME_,_DB_PASSWORD_); $doc_id = $_GET["doc_id"]; $query = "SELECT * from "._TABLE_FILEINDEX_." where uid= ? "; $Fetch = PDO_FetchAll($query, array($doc_id)); $iFetch = count($Fetch); if ($iFetch > 0) { //文档信息 $orgFileInfo = $Fetch[0]; $owner = $Fetch[0]["user_id"]; $filename = $Fetch[0]["file_name"]; $title = $Fetch[0]["title"]; $tag = $Fetch[0]["tag"]; $mbook = $Fetch[0]["book"]; $paragraph = $Fetch[0]["paragraph"]; if ($owner == $uid) { //自己的文档 echo "这是自己的文档,不能复刻。"; } else { //别人的文档 //查询自己是否以前打开过 $query = "SELECT * from "._TABLE_FILEINDEX_." where parent_id='{$doc_id}' and user_id='{$uid}' "; $FetchSelf = PDO_FetchAll($query); $iFetchSelf = count($FetchSelf); if ($iFetchSelf > 0) { //以前打开过 echo "文档已经复刻"; echo "正在打开文档"; echo ""; } else { //以前没打开过 echo "

共享的文档,正在fork...

"; echo "
"; //获取文件路径 PDO_Connect( _FILE_DB_USERINFO_); $query = "SELECT userid from user where id='{$owner}'"; $FetchUid = PDO_FetchOne($query); if ($FetchUid) { //$source=$dir_user_base.$FetchUid.$dir_mydocument.$filename; //$dest=$dir_user_base.$userid.$dir_mydocument.$filename; //复制数据 //打开逐词解析数据库 $dns = _FILE_DB_USER_WBW_; $dbhWBW = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true)); $dbhWBW->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); //打开译文数据库 $dns = _FILE_DB_SENTENCE_; $dbhSent = new PDO($dns, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true)); $dbhSent->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); //逐词解析新数据数组 $arrNewBlock = array(); $arrNewBlockData = array(); $arrBlockTransform = array(); $newDocBlockList = array(); $blocks = json_decode($Fetch[0]["doc_block"]); for ($i = 0; $i < count($blocks); $i++) { switch ($blocks[$i]->type) { case 1: break; case 2: //不复刻译文 break; case 3: break; case 4: break; case 5: break; case 6: #逐词解析 $blockid = $blocks[$i]->block_id; $query = "SELECT uid,book_id,paragraph,style,lang,status from "._TABLE_USER_WBW_BLOCK_." where uid= ? "; $stmt = $dbhWBW->prepare($query); $stmt->execute(array($blockid)); $fBlock = $stmt->fetchAll(PDO::FETCH_ASSOC); $newBlockId = UUID::V4(); $newDocBlockList[] = array('type' => 6, 'block_id' => $newBlockId); $arrBlockTransform[$fBlock[0]["id"]] = $newBlockId; if (count($fBlock) > 0) { array_push($arrNewBlock, array( $snowflake->id(), $newBlockId, $fBlock[0]["uid"], $_GET["channel"], $_COOKIE["userid"], $fBlock[0]["book_id"], $fBlock[0]["paragraph"], $fBlock[0]["style"], $fBlock[0]["lang"], $fBlock[0]["status"], mTime() )); } $query = "select * from "._TABLE_USER_WBW_." where block_id= ? "; $stmtWBW = $dbhWBW->prepare($query); $stmtWBW->execute(array($fBlock[0]["id"])); $fBlockData = $stmtWBW->fetchAll(PDO::FETCH_ASSOC); foreach ($fBlockData as $value) { array_push($arrNewBlockData, array( $snowflake->id(), UUID::V4(), $arrBlockTransform[$value["block_id"]], $value["book"], $value["paragraph"], $value["wid"], $value["word"], $value["data"], mTime(), mTime(), $value["status"], $_COOKIE["userid"], )); } break; case 2: break; } } //逐词解析block数据块 if (count($arrNewBlock) > 0) { $dbhWBW->beginTransaction(); $query = "INSERT INTO "._TABLE_USER_WBW_BLOCK_." ( id, uid , parent_id , channel_uid , creator_uid , book_id , paragraph , style , lang , status , modify_time , updated_at ) VALUES (?,?,?,?,?,?,?,?,?,?,?,now())"; $stmtNewBlock = $dbhWBW->prepare($query); foreach ($arrNewBlock as $oneParam) { $stmtNewBlock->execute($oneParam); } // 提交更改 $dbhWBW->commit(); if (!$stmtNewBlock || ($stmtNewBlock && $stmtNewBlock->errorCode() != 0)) { $error = $dbhWBW->errorInfo(); echo "error - $error[2]
"; } else { //逐词解析block块复刻成功 $count = count($arrNewBlock); echo "wbw block $count recorders.
"; } } if (count($arrNewBlockData) > 0) { // 开始一个事务,逐词解析数据 关闭自动提交 $dbhWBW->beginTransaction(); $query = "INSERT INTO "._TABLE_USER_WBW_." ( 'id', 'uid', 'block_id', 'book', 'paragraph', 'wid', 'word', 'data', 'create_time', 'update_time', 'status', 'owner' ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"; $stmtWbwData = $dbhWBW->prepare($query); foreach ($arrNewBlockData as $oneParam) { $stmtWbwData->execute($oneParam); } // 提交更改 $dbhWBW->commit(); if (!$stmtWbwData || ($stmtWbwData && $stmtWbwData->errorCode() != 0)) { $error = $dbhWBW->errorInfo(); echo "error - $error[2]
"; } else { //逐词解析 数据 复刻成功 $count = count($arrNewBlockData); echo "new wbw $count recorders."; } } //不复刻译文 //插入记录到文件索引 $filesize = 0; //服务器端文件列表 PDO_Connect(_FILE_DB_FILEINDEX_); $query = "INSERT INTO "._TABLE_FILEINDEX_." ( 'id', 'uid', 'parent_id', 'user_id', 'book', 'paragraph', 'file_name', 'title', 'tag', 'status', 'create_time', 'modify_time', 'accese_time', 'file_size', 'share', 'doc_info', 'doc_block' ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; $stmt = $PDO->prepare($query); $newDocId = UUID::v4(); $newDocInfo = $orgFileInfo; $newDocInfo["id"] = $newDocId; $newDocInfo["parent_id"] = $orgFileInfo["id"]; $newDocInfo["user_id"] = $_COOKIE["uid"]; $newDocInfo["doc_block"] = json_encode($newDocBlockList, JSON_UNESCAPED_UNICODE); $newData = array( $snowflake->id(), $newDocInfo["id"], $newDocInfo["parent_id"], $newDocInfo["user_id"], $newDocInfo["book"], $newDocInfo["paragraph"], $newDocInfo["file_name"], $newDocInfo["title"], $newDocInfo["tag"], $newDocInfo["status"], mTime(), mTime(), mTime(), $newDocInfo["file_size"], $newDocInfo["share"], $newDocInfo["doc_info"], $newDocInfo["doc_block"] ); $stmt->execute($newData); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); echo "error - $error[2]
"; } else { //文档列表插入成功 echo "doc list updata 1 recorders."; echo "
"; echo "

复刻成功

"; echo "正在打开文档"; echo ""; } } else { echo "无效的文档id"; } } } } } echo ""; ?>