empty($_GET["type"]) ? "desktop" : $_GET["type"], "documentType" => getDocumentType($filename), "document" => [ "title" => $filename, "url" => $fileuri, "fileType" => $filetype, "key" => $docKey, "info" => [ "author" => "Me", "created" => date('d.m.y') ], "permissions" => [ "comment" => $editorsMode != "view" && $editorsMode != "fillForms" && $editorsMode != "embedded" && $editorsMode != "blockcontent", "download" => true, "edit" => $canEdit && ($editorsMode == "edit" || $editorsMode == "filter" || $editorsMode == "blockcontent"), "fillForms" => $editorsMode != "view" && $editorsMode != "comment" && $editorsMode != "embedded" && $editorsMode != "blockcontent", "modifyFilter" => $editorsMode != "filter", "modifyContentControl" => $editorsMode != "blockcontent", "review" => $editorsMode == "edit" || $editorsMode == "review" ] ], "editorConfig" => [ "mode" => $mode, "lang" => empty($_COOKIE["ulang"]) ? "en" : $_COOKIE["ulang"], "callbackUrl" => getCallbackUrl($filename), "user" => [ "id" => $uid, "name" => $uname ], "embedded" => [ "saveUrl" => $fileuriUser, "embedUrl" => $fileuriUser, "shareUrl" => $fileuriUser, "toolbarDocked" => "top", ], "customization" => [ "about" => true, "feedback" => true, "goback" => [ "url" => serverPath(), ] ] ] ]; if (isJwtEnabled()) { $config["token"] = jwtEncode($config); } function tryGetDefaultByType($createExt) { $demoName = ($_GET["sample"] ? "demo." : "new.") . $createExt; $demoFilename = GetCorrectName($demoName); if(!@copy(dirname(__FILE__) . DIRECTORY_SEPARATOR . "app_data" . DIRECTORY_SEPARATOR . $demoName, getStoragePath($demoFilename))) { sendlog("Copy file error to ". getStoragePath($demoFilename), "common.log"); //Copy error!!! } createMeta($demoFilename, $_GET["user"]); return $demoFilename; } function getCallbackUrl($fileName) { return serverPath(TRUE) . '/' . "webeditor-ajax.php" . "?type=track" . "&fileName=" . urlencode($fileName) . "&userAddress=" . getClientIp(); } function getHistory($filename, $filetype, $docKey, $fileuri) { $histDir = getHistoryDir(getStoragePath($filename)); if (getFileVersion($histDir) > 0) { $curVer = getFileVersion($histDir); $hist = []; $histData = []; for ($i = 0; $i <= $curVer; $i++) { $obj = []; $dataObj = []; $verDir = getVersionDir($histDir, $i + 1); $key = $i == $curVer ? $docKey : file_get_contents($verDir . DIRECTORY_SEPARATOR . "key.txt"); $obj["key"] = $key; $obj["version"] = $i; if ($i == 0) { $createdInfo = file_get_contents($histDir . DIRECTORY_SEPARATOR . "createdInfo.json"); $json = json_decode($createdInfo, true); $obj["created"] = $json["created"]; $obj["user"] = [ "id" => $json["uid"], "name" => $json["name"] ]; } $prevFileName = $verDir . DIRECTORY_SEPARATOR . "prev." . $filetype; $prevFileName = substr($prevFileName, strlen(getStoragePath(""))); $dataObj["key"] = $key; $dataObj["url"] = $i == $curVer ? $fileuri : getVirtualPath(true) . str_replace("%5C", "/", rawurlencode($prevFileName)); $dataObj["version"] = $i; if ($i > 0) { $changes = json_decode(file_get_contents(getVersionDir($histDir, $i) . DIRECTORY_SEPARATOR . "changes.json"), true); $change = $changes["changes"][0]; $obj["changes"] = $changes["changes"]; $obj["serverVersion"] = $changes["serverVersion"]; $obj["created"] = $change["created"]; $obj["user"] = $change["user"]; $prev = $histData[$i -1]; $dataObj["previous"] = [ "key" => $prev["key"], "url" => $prev["url"] ]; $changesUrl = getVersionDir($histDir, $i) . DIRECTORY_SEPARATOR . "diff.zip"; $changesUrl = substr($changesUrl, strlen(getStoragePath(""))); $dataObj["changesUrl"] = getVirtualPath(true) . str_replace("%5C", "/", rawurlencode($changesUrl)); } array_push($hist, $obj); $histData[$i] = $dataObj; } $out = []; array_push($out, [ "currentVersion" => $curVer, "history" => $hist ], $histData); return $out; } } ?>