public function switchAction($action, $httpVars, $filesVars) { if (!isset($this->actions[$action])) { return false; } $repository = ConfService::getRepository(); if (!$repository->detectStreamWrapper(true)) { return false; } $streamData = $repository->streamData; $destStreamURL = $streamData["protocol"] . "://" . $repository->getId(); if ($action == "post_to_server") { $file = base64_decode(AJXP_Utils::decodeSecureMagic($httpVars["file"])); $target = base64_decode($httpVars["parent_url"]) . "/plugins/editor.pixlr"; $tmp = call_user_func(array($streamData["classname"], "getRealFSReference"), $destStreamURL . $file); $fData = array("tmp_name" => $tmp, "name" => urlencode(basename($file)), "type" => "image/jpg"); $httpClient = new HttpClient("pixlr.com"); //$httpClient->setDebug(true); $postData = array(); $httpClient->setHandleRedirects(false); $params = array("referrer" => "AjaXplorer", "method" => "get", "loc" => ConfService::getLanguage(), "target" => $target . "/fake_save_pixlr.php", "exit" => $target . "/fake_close_pixlr.php", "title" => urlencode(basename($file)), "locktarget" => "false", "locktitle" => "true", "locktype" => "source"); $httpClient->postFile("/editor/", $params, "image", $fData); $loc = $httpClient->getHeader("location"); header("Location:{$loc}"); } else { if ($action == "retrieve_pixlr_image") { $file = AJXP_Utils::decodeSecureMagic($httpVars["original_file"]); $url = $httpVars["new_url"]; $urlParts = parse_url($url); $query = $urlParts["query"]; $params = array(); $parameters = parse_str($query, $params); $image = $params['image']; /* $type = $params['type']; $state = $params['state']; $filename = $params['title']; */ if (strpos($image, "pixlr.com") == 0) { throw new AJXP_Exception("Invalid Referrer"); } $headers = get_headers($image, 1); $content_type = explode("/", $headers['Content-Type']); if ($content_type[0] != "image") { throw new AJXP_Exception("File Type"); } $orig = fopen($image, "r"); $target = fopen($destStreamURL . $file, "w"); while (!feof($orig)) { fwrite($target, fread($orig, 4096)); } fclose($orig); fclose($target); header("Content-Type:text/plain"); print $mess[115]; } } return; }
public function getDropBg($action, $httpVars, $fileVars) { $lang = ConfService::getLanguage(); $img = AJXP_INSTALL_PATH . "/plugins/uploader.html/i18n/{$lang}-dropzone.png"; if (!is_file($img)) { $img = AJXP_INSTALL_PATH . "/plugins/uploader.html/i18n/en-dropzone.png"; } header("Content-Type: image/png; name=\"dropzone.png\""); header("Content-Length: " . filesize($img)); header('Cache-Control: public'); readfile($img); }
public function sendMail($recipients, $subject, $body, $from = null, $imageLink = null) { $prepend = ConfService::getCoreConf("SUBJECT_PREPEND", "mailer"); $append = ConfService::getCoreConf("SUBJECT_APPEND", "mailer"); $layoutFolder = ConfService::getCoreConf("LAYOUT_FOLDER", "mailer"); $layout = ConfService::getCoreConf("BODY_LAYOUT", "mailer"); $forceFrom = ConfService::getCoreConf("FORCE_UNIQUE_FROM", "mailer"); $coreFrom = ConfService::getCoreConf("FROM", "mailer"); if ($forceFrom && $coreFrom != null) { $coreFromName = ConfService::getCoreConf("FROM_NAME", "mailer"); $from = array("adress" => $coreFrom, "name" => $coreFromName); } $rowBody = $body; $images = array(); if (!empty($prepend)) { $subject = $prepend . " " . $subject; } if (!empty($append)) { $subject .= " " . $append; } if (!empty($layoutFolder)) { $layoutFolder .= "/"; $lang = ConfService::getLanguage(); if (is_file(AJXP_INSTALL_PATH . "/" . $layoutFolder . $lang . ".html")) { $layout = implode("", file(AJXP_INSTALL_PATH . "/" . $layoutFolder . $lang . ".html")); } else { if (is_file(AJXP_INSTALL_PATH . "/" . $layoutFolder . "en.html")) { $layout = implode("", file(AJXP_INSTALL_PATH . "/" . $layoutFolder . "en.html")); } } } if (strpos($layout, "AJXP_MAIL_BODY") !== false) { $body = str_replace("AJXP_MAIL_BODY", nl2br($body), $layout); } if ($imageLink != null) { $body = str_replace(array("AJXP_IMAGE_LINK"), "<a href='" . $imageLink . "'>" . '<img alt="Download" width="100" style="width: 100px;" src="cid:download_id">' . "</a>", $body); $images[] = array("path" => AJXP_INSTALL_PATH . "/" . $layoutFolder . "/download.png", "cid" => "download_id"); } else { $body = str_replace(array("AJXP_IMAGE_LINK", "AJXP_IMAGE_END"), "", $body); } $body = str_replace("AJXP_MAIL_SUBJECT", $subject, $body); $this->sendMailImpl($recipients, $subject, $body, $from, $images); if (AJXP_SERVER_DEBUG) { $line = "------------------------------------------------------------------------\n"; file_put_contents($this->mailCache, $line . "Sending mail from " . print_r($from, true) . " to " . print_r($recipients, true) . "\nSubject: {$subject}\nBody:\n{$rowBody}\n", FILE_APPEND); } }
function switchAction($action, $httpVars, $fileVars) { if (!isset($this->actions[$action])) { return; } if (preg_match('/MSIE 7/', $_SERVER['HTTP_USER_AGENT']) || preg_match('/MSIE 8/', $_SERVER['HTTP_USER_AGENT'])) { // Force legacy theme for the moment $this->pluginConf["GUI_THEME"] = "oxygen"; } if (!defined("AJXP_THEME_FOLDER")) { define("CLIENT_RESOURCES_FOLDER", AJXP_PLUGINS_FOLDER . "/gui.ajax/res"); define("AJXP_THEME_FOLDER", CLIENT_RESOURCES_FOLDER . "/themes/" . $this->pluginConf["GUI_THEME"]); } foreach ($httpVars as $getName => $getValue) { ${$getName} = AJXP_Utils::securePath($getValue); } if (isset($dir) && $action != "upload") { $dir = SystemTextEncoding::fromUTF8($dir); } $mess = ConfService::getMessages(); switch ($action) { //------------------------------------ // GET AN HTML TEMPLATE //------------------------------------ case "get_template": HTMLWriter::charsetHeader(); $folder = CLIENT_RESOURCES_FOLDER . "/html"; if (isset($httpVars["pluginName"])) { $folder = AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/" . AJXP_Utils::securePath($httpVars["pluginName"]); if (isset($httpVars["pluginPath"])) { $folder .= "/" . AJXP_Utils::securePath($httpVars["pluginPath"]); } } $crtTheme = $this->pluginConf["GUI_THEME"]; $thFolder = AJXP_THEME_FOLDER . "/html"; if (isset($template_name)) { if (is_file($thFolder . "/" . $template_name)) { include $thFolder . "/" . $template_name; } else { if (is_file($folder . "/" . $template_name)) { include $folder . "/" . $template_name; } } } break; //------------------------------------ // GET I18N MESSAGES //------------------------------------ //------------------------------------ // GET I18N MESSAGES //------------------------------------ case "get_i18n_messages": $refresh = false; if (isset($httpVars["lang"])) { ConfService::setLanguage($httpVars["lang"]); $refresh = true; } HTMLWriter::charsetHeader('text/javascript'); HTMLWriter::writeI18nMessagesClass(ConfService::getMessages($refresh)); break; //------------------------------------ // SEND XML REGISTRY //------------------------------------ //------------------------------------ // SEND XML REGISTRY //------------------------------------ case "get_xml_registry": $regDoc = AJXP_PluginsService::getXmlRegistry(); $changes = AJXP_Controller::filterActionsRegistry($regDoc); if ($changes) { AJXP_PluginsService::updateXmlRegistry($regDoc); } if (isset($_GET["xPath"])) { $regPath = new DOMXPath($regDoc); $nodes = $regPath->query($_GET["xPath"]); AJXP_XMLWriter::header("ajxp_registry_part", array("xPath" => $_GET["xPath"])); if ($nodes->length) { print AJXP_XMLWriter::replaceAjxpXmlKeywords($regDoc->saveXML($nodes->item(0))); } AJXP_XMLWriter::close("ajxp_registry_part"); } else { AJXP_Utils::safeIniSet("zlib.output_compression", "4096"); header('Content-Type: application/xml; charset=UTF-8'); print AJXP_XMLWriter::replaceAjxpXmlKeywords($regDoc->saveXML()); } break; //------------------------------------ // DISPLAY DOC //------------------------------------ //------------------------------------ // DISPLAY DOC //------------------------------------ case "display_doc": HTMLWriter::charsetHeader(); echo HTMLWriter::getDocFile(AJXP_Utils::securePath(htmlentities($_GET["doc_file"]))); break; //------------------------------------ // GET BOOT GUI //------------------------------------ //------------------------------------ // GET BOOT GUI //------------------------------------ case "get_boot_gui": header("X-UA-Compatible: chrome=1"); HTMLWriter::charsetHeader(); if (!is_file(TESTS_RESULT_FILE)) { $outputArray = array(); $testedParams = array(); $passed = AJXP_Utils::runTests($outputArray, $testedParams); if (!$passed && !isset($_GET["ignore_tests"])) { die(AJXP_Utils::testResultsToTable($outputArray, $testedParams)); } else { AJXP_Utils::testResultsToFile($outputArray, $testedParams); } } $START_PARAMETERS = array("BOOTER_URL" => "index.php?get_action=get_boot_conf", "MAIN_ELEMENT" => "ajxp_desktop"); if (AuthService::usersEnabled()) { AuthService::preLogUser(isset($httpVars["remote_session"]) ? $httpVars["remote_session"] : ""); AuthService::bootSequence($START_PARAMETERS); if (AuthService::getLoggedUser() != null || AuthService::logUser(null, null) == 1) { if (AuthService::getDefaultRootId() == -1) { AuthService::disconnect(); } else { $loggedUser = AuthService::getLoggedUser(); if (!$loggedUser->canRead(ConfService::getCurrentRootDirIndex()) && AuthService::getDefaultRootId() != ConfService::getCurrentRootDirIndex()) { ConfService::switchRootDir(AuthService::getDefaultRootId()); } } } } AJXP_Utils::parseApplicationGetParameters($_GET, $START_PARAMETERS, $_SESSION); $confErrors = ConfService::getErrors(); if (count($confErrors)) { $START_PARAMETERS["ALERT"] = implode(", ", array_values($confErrors)); } $JSON_START_PARAMETERS = json_encode($START_PARAMETERS); $crtTheme = $this->pluginConf["GUI_THEME"]; if (ConfService::getConf("JS_DEBUG")) { if (!isset($mess)) { $mess = ConfService::getMessages(); } if (is_file(AJXP_INSTALL_PATH . "/plugins/gui.ajax/res/themes/{$crtTheme}/html/gui_debug.html")) { include AJXP_INSTALL_PATH . "/plugins/gui.ajax/res/themes/{$crtTheme}/html/gui_debug.html"; } else { include AJXP_INSTALL_PATH . "/plugins/gui.ajax/res/html/gui_debug.html"; } } else { if (is_file(AJXP_INSTALL_PATH . "/plugins/gui.ajax/res/themes/{$crtTheme}/html/gui.html")) { $content = file_get_contents(AJXP_INSTALL_PATH . "/plugins/gui.ajax/res/themes/{$crtTheme}/html/gui.html"); } else { $content = file_get_contents(AJXP_INSTALL_PATH . "/plugins/gui.ajax/res/html/gui.html"); } if (preg_match('/MSIE 7/', $_SERVER['HTTP_USER_AGENT']) || preg_match('/MSIE 8/', $_SERVER['HTTP_USER_AGENT'])) { $content = str_replace("ajaxplorer_boot.js", "ajaxplorer_boot_protolegacy.js", $content); } $content = AJXP_XMLWriter::replaceAjxpXmlKeywords($content, false); if ($JSON_START_PARAMETERS) { $content = str_replace("//AJXP_JSON_START_PARAMETERS", "startParameters = " . $JSON_START_PARAMETERS . ";", $content); } print $content; } break; //------------------------------------ // GET CONFIG FOR BOOT //------------------------------------ //------------------------------------ // GET CONFIG FOR BOOT //------------------------------------ case "get_boot_conf": if (isset($_GET["server_prefix_uri"])) { $_SESSION["AJXP_SERVER_PREFIX_URI"] = $_GET["server_prefix_uri"]; } $config = array(); $config["ajxpResourcesFolder"] = "plugins/gui.ajax/res"; $config["ajxpServerAccess"] = AJXP_SERVER_ACCESS; $config["zipEnabled"] = ConfService::zipEnabled(); $config["multipleFilesDownloadEnabled"] = ConfService::getCoreConf("ZIP_CREATION"); $config["customWording"] = array("welcomeMessage" => $this->pluginConf["CUSTOM_WELCOME_MESSAGE"], "title" => ConfService::getCoreConf("APPLICATION_TITLE"), "icon" => $this->pluginConf["CUSTOM_ICON"], "iconWidth" => $this->pluginConf["CUSTOM_ICON_WIDTH"], "iconHeight" => $this->pluginConf["CUSTOM_ICON_HEIGHT"], "iconOnly" => $this->pluginConf["CUSTOM_ICON_ONLY"], "titleFontSize" => $this->pluginConf["CUSTOM_FONT_SIZE"]); $config["usersEnabled"] = AuthService::usersEnabled(); $config["loggedUser"] = AuthService::getLoggedUser() != null; $config["currentLanguage"] = ConfService::getLanguage(); $config["session_timeout"] = intval(ini_get("session.gc_maxlifetime")); if (!isset($this->pluginConf["CLIENT_TIMEOUT_TIME"]) || $this->pluginConf["CLIENT_TIMEOUT_TIME"] == "") { $to = $config["session_timeout"]; } else { $to = $this->pluginConf["CLIENT_TIMEOUT_TIME"]; } $config["client_timeout"] = $to; $config["client_timeout_warning"] = $this->pluginConf["CLIENT_TIMEOUT_WARN"]; $config["availableLanguages"] = ConfService::getConf("AVAILABLE_LANG"); $config["usersEditable"] = ConfService::getAuthDriverImpl()->usersEditable(); $config["ajxpVersion"] = AJXP_VERSION; $config["ajxpVersionDate"] = AJXP_VERSION_DATE; if (stristr($_SERVER["HTTP_USER_AGENT"], "msie 6")) { $config["cssResources"] = array("css/pngHack/pngHack.css"); } if (!empty($this->pluginConf['GOOGLE_ANALYTICS_ID'])) { $config["googleAnalyticsData"] = array("id" => $this->pluginConf['GOOGLE_ANALYTICS_ID'], "domain" => $this->pluginConf['GOOGLE_ANALYTICS_DOMAIN'], "event" => $this->pluginConf['GOOGLE_ANALYTICS_EVENT']); } $config["i18nMessages"] = ConfService::getMessages(); $config["password_min_length"] = ConfService::getCoreConf("PASSWORD_MINLENGTH", "auth"); $config["SECURE_TOKEN"] = AuthService::generateSecureToken(); $config["streaming_supported"] = "true"; $config["theme"] = $this->pluginConf["GUI_THEME"]; header("Content-type:application/json;charset=UTF-8"); print json_encode($config); break; default: break; } return false; }
/** * @param array $data * @param array $options * @param ShareStore $shareStore */ public static function render($data, $options, $shareStore) { if (isset($data["SECURITY_MODIFIED"]) && $data["SECURITY_MODIFIED"] === true) { self::renderError($data, "false"); return; } // create driver from $data $className = $data["DRIVER"] . "AccessDriver"; $u = parse_url($_SERVER["REQUEST_URI"]); $shortHash = pathinfo(basename($u["path"]), PATHINFO_FILENAME); // Load language messages $language = ConfService::getLanguage(); if (isset($_GET["lang"])) { $language = basename($_GET["lang"]); } $messages = array(); if (is_file(dirname(__FILE__) . "/res/i18n/" . $language . ".php")) { include dirname(__FILE__) . "/res/i18n/" . $language . ".php"; } else { include dirname(__FILE__) . "/res/i18n/en.php"; } if (isset($mess)) { $messages = $mess; } $AJXP_LINK_HAS_PASSWORD = false; $AJXP_LINK_BASENAME = SystemTextEncoding::toUTF8(basename($data["FILE_PATH"])); AJXP_PluginsService::getInstance()->initActivePlugins(); ConfService::setLanguage($language); $mess = ConfService::getMessages(); if ($shareStore->isShareExpired($shortHash, $data)) { self::renderError(array(), $shortHash, $mess["share_center.165"]); return; } $customs = array("title", "legend", "legend_pass", "background_attributes_1", "text_color", "background_color", "textshadow_color"); $images = array("button", "background_1"); $confs = $options; $confs["CUSTOM_SHAREPAGE_BACKGROUND_ATTRIBUTES_1"] = "background-repeat:repeat;background-position:50% 50%;"; $confs["CUSTOM_SHAREPAGE_BACKGROUND_1"] = "plugins/action.share/res/hi-res/02.jpg"; $confs["CUSTOM_SHAREPAGE_TEXT_COLOR"] = "#ffffff"; $confs["CUSTOM_SHAREPAGE_TEXTSHADOW_COLOR"] = "rgba(0,0,0,5)"; foreach ($customs as $custom) { $varName = "CUSTOM_SHAREPAGE_" . strtoupper($custom); ${$varName} = $confs[$varName]; } $dlFolder = realpath(ConfService::getCoreConf("PUBLIC_DOWNLOAD_FOLDER")); foreach ($images as $custom) { $varName = "CUSTOM_SHAREPAGE_" . strtoupper($custom); if (!empty($confs[$varName])) { if (strpos($confs[$varName], "plugins/") === 0 && is_file(AJXP_INSTALL_PATH . "/" . $confs[$varName])) { $realFile = AJXP_INSTALL_PATH . "/" . $confs[$varName]; copy($realFile, $dlFolder . "/binary-" . basename($realFile)); ${$varName} = "binary-" . basename($realFile); } else { ${$varName} = "binary-" . $confs[$varName]; if (is_file($dlFolder . "/binary-" . $confs[$varName])) { continue; } $copiedImageName = $dlFolder . "/binary-" . $confs[$varName]; $imgFile = fopen($copiedImageName, "wb"); ConfService::getConfStorageImpl()->loadBinary(array(), $confs[$varName], $imgFile); fclose($imgFile); } } } HTMLWriter::charsetHeader(); // Check password if (strlen($data["PASSWORD"])) { if (!isset($_POST['password']) || $_POST['password'] != $data["PASSWORD"]) { $AJXP_LINK_HAS_PASSWORD = true; $AJXP_LINK_WRONG_PASSWORD = isset($_POST['password']) && $_POST['password'] != $data["PASSWORD"]; include AJXP_INSTALL_PATH . "/plugins/action.share/res/public_links.php"; $res = '<div style="position: absolute;z-index: 10000; bottom: 0; right: 0; color: #666;font-family: HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size: 13px;text-align: right;padding: 6px; line-height: 20px;text-shadow: 0px 1px 0px white;" class="no_select_bg"><br>Build your own box with Pydio : <a style="color: #000000;" target="_blank" href="http://pyd.io/">http://pyd.io/</a><br/>Community - Free non supported version © C. du Jeu 2008-2014 </div>'; AJXP_Controller::applyHook("tpl.filter_html", array(&$res)); echo $res; return; } } else { if (!isset($_GET["dl"])) { include AJXP_INSTALL_PATH . "/plugins/action.share/res/public_links.php"; $res = '<div style="position: absolute;z-index: 10000; bottom: 0; right: 0; color: #666;font-family: HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size: 13px;text-align: right;padding: 6px; line-height: 20px;text-shadow: 0px 1px 0px white;" class="no_select_bg"><br>Build your own box with Pydio : <a style="color: #000000;" target="_blank" href="http://pyd.io/">http://pyd.io/</a><br/>Community - Free non supported version © C. du Jeu 2008-2014 </div>'; AJXP_Controller::applyHook("tpl.filter_html", array(&$res)); echo $res; return; } } $filePath = AJXP_INSTALL_PATH . "/plugins/access." . $data["DRIVER"] . "/class." . $className . ".php"; if (!is_file($filePath)) { die("Warning, cannot find driver for conf storage! ({$className}, {$filePath})"); } require_once $filePath; $driver = new $className($data["PLUGIN_ID"], $data["BASE_DIR"]); $driver->loadManifest(); //$hash = md5(serialize($data)); $shareStore->incrementDownloadCounter($shortHash); //AuthService::logUser($data["OWNER_ID"], "", true); AuthService::logTemporaryUser($data["OWNER_ID"], $shortHash); if (isset($data["SAFE_USER"]) && isset($data["SAFE_PASS"])) { // FORCE SESSION MODE AJXP_Safe::getInstance()->forceSessionCredentialsUsage(); AJXP_Safe::storeCredentials($data["SAFE_USER"], $data["SAFE_PASS"]); } $repoObject = $data["REPOSITORY"]; ConfService::switchRootDir($repoObject->getId()); ConfService::loadRepositoryDriver(); AJXP_PluginsService::getInstance()->initActivePlugins(); try { $params = array("file" => SystemTextEncoding::toUTF8($data["FILE_PATH"])); if (isset($data["PLUGINS_DATA"])) { $params["PLUGINS_DATA"] = $data["PLUGINS_DATA"]; } if (isset($_GET["ct"]) && $_GET["ct"] == "true") { $mime = pathinfo($params["file"], PATHINFO_EXTENSION); $editors = AJXP_PluginsService::searchAllManifests("//editor[contains(@mimes,'{$mime}') and @previewProvider='true']", "node", true, true, false); if (count($editors)) { foreach ($editors as $editor) { $xPath = new DOMXPath($editor->ownerDocument); $callbacks = $xPath->query("//action[@contentTypedProvider]", $editor); if ($callbacks->length) { $data["ACTION"] = $callbacks->item(0)->getAttribute("name"); if ($data["ACTION"] == "audio_proxy") { $params["file"] = base64_encode($params["file"]); } break; } } } } AJXP_Controller::findActionAndApply($data["ACTION"], $params, null); register_shutdown_function(array("AuthService", "clearTemporaryUser"), $shortHash); } catch (Exception $e) { AuthService::clearTemporaryUser($shortHash); die($e->getMessage()); } }
public function switchAction($action, $httpVars, $filesVars) { $repository = ConfService::getRepository(); if (!$repository->detectStreamWrapper(true)) { return false; } $selection = new UserSelection($repository, $httpVars); $selectedNode = $selection->getUniqueNode(); $selectedNodeUrl = $selectedNode->getUrl(); if ($action == "post_to_server") { // Backward compat if (strpos($httpVars["file"], "base64encoded:") !== 0) { $legacyFilePath = AJXP_Utils::decodeSecureMagic(base64_decode($httpVars["file"])); $selectedNode = new AJXP_Node($selection->currentBaseUrl() . $legacyFilePath); $selectedNodeUrl = $selectedNode->getUrl(); } $target = rtrim(base64_decode($httpVars["parent_url"]), '/') . "/plugins/editor.pixlr"; $tmp = AJXP_MetaStreamWrapper::getRealFSReference($selectedNodeUrl); $tmp = SystemTextEncoding::fromUTF8($tmp); $this->logInfo('Preview', 'Sending content of ' . $selectedNodeUrl . ' to Pixlr server.', array("files" => $selectedNodeUrl)); AJXP_Controller::applyHook("node.read", array($selectedNode)); $saveTarget = $target . "/fake_save_pixlr.php"; if ($this->getFilteredOption("CHECK_SECURITY_TOKEN", $repository->getId())) { $saveTarget = $target . "/fake_save_pixlr_" . md5($httpVars["secure_token"]) . ".php"; } $params = array("referrer" => "Pydio", "method" => "get", "loc" => ConfService::getLanguage(), "target" => $saveTarget, "exit" => $target . "/fake_close_pixlr.php", "title" => urlencode(basename($selectedNodeUrl)), "locktarget" => "false", "locktitle" => "true", "locktype" => "source"); require_once AJXP_BIN_FOLDER . "/http_class/http_class.php"; $arguments = array(); $httpClient = new http_class(); $httpClient->request_method = "POST"; $httpClient->GetRequestArguments("https://pixlr.com/editor/", $arguments); $arguments["PostValues"] = $params; $arguments["PostFiles"] = array("image" => array("FileName" => $tmp, "Content-Type" => "automatic/name")); $err = $httpClient->Open($arguments); if (empty($err)) { $err = $httpClient->SendRequest($arguments); if (empty($err)) { $response = ""; while (true) { $header = array(); $error = $httpClient->ReadReplyHeaders($header, 1000); if ($error != "" || $header != null) { break; } $response .= $header; } } } header("Location: {$header['location']}"); //$response"); } else { if ($action == "retrieve_pixlr_image") { $file = AJXP_Utils::decodeSecureMagic($httpVars["original_file"]); $selectedNode = new AJXP_Node($selection->currentBaseUrl() . $file); $selectedNode->loadNodeInfo(); $this->logInfo('Edit', 'Retrieving content of ' . $file . ' from Pixlr server.', array("files" => $file)); AJXP_Controller::applyHook("node.before_change", array(&$selectedNode)); $url = $httpVars["new_url"]; $urlParts = parse_url($url); $query = $urlParts["query"]; if ($this->getFilteredOption("CHECK_SECURITY_TOKEN", $repository->getId())) { $scriptName = basename($urlParts["path"]); $token = str_replace(array("fake_save_pixlr_", ".php"), "", $scriptName); if ($token != md5($httpVars["secure_token"])) { throw new AJXP_Exception("Invalid Token, this could mean some security problem!"); } } $params = array(); parse_str($query, $params); $image = $params['image']; $headers = get_headers($image, 1); $content_type = explode("/", $headers['Content-Type']); if ($content_type[0] != "image") { throw new AJXP_Exception("Invalid File Type"); } $content_length = intval($headers["Content-Length"]); if ($content_length != 0) { AJXP_Controller::applyHook("node.before_change", array(&$selectedNode, $content_length)); } $orig = fopen($image, "r"); $target = fopen($selectedNode->getUrl(), "w"); if (is_resource($orig) && is_resource($target)) { while (!feof($orig)) { fwrite($target, fread($orig, 4096)); } fclose($orig); fclose($target); } clearstatcache(true, $selectedNode->getUrl()); $selectedNode->loadNodeInfo(true); AJXP_Controller::applyHook("node.change", array(&$selectedNode, &$selectedNode)); } } }
public function switchAction($action, $httpVars, $fileVars) { $loggedUser = AuthService::getLoggedUser(); if (AuthService::usersEnabled() && !$loggedUser->isAdmin()) { return; } require_once AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/action.updater/class.AjaXplorerUpgrader.php"; if (!empty($this->pluginConf["PROXY_HOST"]) || !empty($this->pluginConf["UPDATE_SITE_USER"])) { AjaXplorerUpgrader::configureProxy($this->pluginConf["PROXY_HOST"], $this->pluginConf["PROXY_USER"], $this->pluginConf["PROXY_PASS"], $this->pluginConf["UPDATE_SITE_USER"], $this->pluginConf["UPDATE_SITE_PASS"]); } switch ($action) { case "migrate_metaserial": $dryRun = !isset($httpVars["real_run"]); AjaXplorerUpgrader::migrateMetaSerialPlugin($httpVars["repository_id"], $dryRun); break; case "get_upgrade_path": header("Content-type: application/json"); print AjaXplorerUpgrader::getUpgradePath($this->pluginConf["UPDATE_SITE"], "json", $this->pluginConf["UPDATE_CHANNEL"]); break; case "display_upgrade_note": $url = $httpVars["url"]; $context = AjaXplorerUpgrader::getContext(); if ($context != null) { $content = file_get_contents($url, null, $context); } else { $content = file_get_contents($url); } echo $content; break; case "test_upgrade_scripts": if (!AJXP_SERVER_DEBUG || AuthService::getLoggedUser() == null || !AuthService::getLoggedUser()->isAdmin()) { break; } $upgrader = new AjaXplorerUpgrader("", "", ""); $upgrader->testUpgradeScripts(); break; case "perform_upgrade": AJXP_Utils::safeIniSet("output_buffering", "Off"); if (AJXP_PACKAGING != "zip") { $lang = ConfService::getLanguage(); $file = $this->getBaseDir() . "/howto/linux_en.html"; if ($lang != "en" && is_file($this->getBaseDir() . "/howto/linux_{$lang}.html")) { $file = $this->getBaseDir() . "/howto/linux_{$lang}.html"; } $content = file_get_contents($file); print $content; break; } $res = AjaXplorerUpgrader::getUpgradePath($this->pluginConf["UPDATE_SITE"], "php", $this->pluginConf["UPDATE_CHANNEL"]); if (!count($res["packages"])) { print "No update is necessary!"; break; } include dirname(__FILE__) . "/output_head.html"; foreach ($res["packages"] as $index => $zipPackage) { print "<div class='main_step'>Applying upgrade " . basename($zipPackage) . "</div>"; $u = new AjaXplorerUpgrader($zipPackage, $res["hashes"][$index], $res["hash_method"], explode(",", $this->pluginConf["PRESERVE_FILES"])); $errors = false; while ($u->hasNextStep()) { set_time_limit(180); print "<div class='upgrade_step'><div class='upgrade_title'>" . $u->currentStepTitle . "</div>"; $u->execute(); if ($u->error != null) { print "<div class='upgrade_result error'>- Error : " . $u->error . "</div>"; $errors = true; break; } else { print "<div class='upgrade_result success'>- " . $u->result . "</div>"; } print "</div>"; // FLUSH OUTPUT, SCROLL DOWN print str_repeat(' ', 300); print '<script type="text/javascript">doScroll();</script>'; flush(); sleep(0.5); } if ($errors) { break; } } print '<script type="text/javascript">replaceTop();</script>'; print str_repeat(' ', 300); flush(); break; } }
public function computeBootConf() { if (isset($_GET["server_prefix_uri"])) { $_SESSION["AJXP_SERVER_PREFIX_URI"] = str_replace("_UP_", "..", $_GET["server_prefix_uri"]); } $currentIsMinisite = strpos(session_name(), "AjaXplorer_Shared") === 0; $config = array(); $config["ajxpResourcesFolder"] = "plugins/gui.ajax/res"; if ($currentIsMinisite) { $config["ajxpServerAccess"] = "index_shared.php"; } else { $config["ajxpServerAccess"] = AJXP_SERVER_ACCESS; } $config["zipEnabled"] = ConfService::zipBrowsingEnabled(); $config["multipleFilesDownloadEnabled"] = ConfService::zipCreationEnabled(); $customIcon = $this->getFilteredOption("CUSTOM_ICON"); self::filterXml($customIcon); $config["customWording"] = array("welcomeMessage" => $this->getFilteredOption("CUSTOM_WELCOME_MESSAGE"), "title" => ConfService::getCoreConf("APPLICATION_TITLE"), "icon" => $customIcon, "iconWidth" => $this->getFilteredOption("CUSTOM_ICON_WIDTH"), "iconHeight" => $this->getFilteredOption("CUSTOM_ICON_HEIGHT"), "iconOnly" => $this->getFilteredOption("CUSTOM_ICON_ONLY"), "titleFontSize" => $this->getFilteredOption("CUSTOM_FONT_SIZE")); $cIcBin = $this->getFilteredOption("CUSTOM_ICON_BINARY"); if (!empty($cIcBin)) { $config["customWording"]["icon_binary_url"] = "get_action=get_global_binary_param&binary_id=" . $cIcBin; } $config["usersEnabled"] = AuthService::usersEnabled(); $config["loggedUser"] = AuthService::getLoggedUser() != null; $config["currentLanguage"] = ConfService::getLanguage(); $config["session_timeout"] = intval(ini_get("session.gc_maxlifetime")); $timeoutTime = $this->getFilteredOption("CLIENT_TIMEOUT_TIME"); if (empty($timeoutTime)) { $to = $config["session_timeout"]; } else { $to = $timeoutTime; } if ($currentIsMinisite) { $to = -1; } $config["client_timeout"] = intval($to); $config["client_timeout_warning"] = floatval($this->getFilteredOption("CLIENT_TIMEOUT_WARN")); $config["availableLanguages"] = ConfService::getConf("AVAILABLE_LANG"); $config["usersEditable"] = ConfService::getAuthDriverImpl()->usersEditable(); $config["ajxpVersion"] = AJXP_VERSION; $config["ajxpVersionDate"] = AJXP_VERSION_DATE; $analytic = $this->getFilteredOption('GOOGLE_ANALYTICS_ID'); if (!empty($analytic)) { $config["googleAnalyticsData"] = array("id" => $analytic, "domain" => $this->getFilteredOption('GOOGLE_ANALYTICS_DOMAIN'), "event" => $this->getFilteredOption('GOOGLE_ANALYTICS_EVENT')); } $config["i18nMessages"] = ConfService::getMessages(); $config["SECURE_TOKEN"] = AuthService::generateSecureToken(); $config["streaming_supported"] = "true"; $config["theme"] = $this->pluginConf["GUI_THEME"]; return $config; }
public function switchAction($action, $httpVars, $filesVars) { if (!isset($this->actions[$action])) { return false; } $repository = ConfService::getRepository(); if (!$repository->detectStreamWrapper(true)) { return false; } $streamData = $repository->streamData; $destStreamURL = $streamData["protocol"] . "://" . $repository->getId(); if ($action == "post_to_server") { $file = base64_decode($httpVars["file"]); $file = AJXP_Utils::securePath($file); $target = base64_decode($httpVars["parent_url"]) . "/plugins/editor.pixlr"; $tmp = call_user_func(array($streamData["classname"], "getRealFSReference"), $destStreamURL . $file); $tmp = SystemTextEncoding::fromUTF8($tmp); $fData = array("tmp_name" => $tmp, "name" => urlencode(basename($file)), "type" => "image/jpg"); //var_dump($fData); $node = new AJXP_Node($destStreamURL . $file); AJXP_Controller::applyHook("node.read", array($node)); $httpClient = new HttpClient("pixlr.com"); //$httpClient->setDebug(true); $postData = array(); $httpClient->setHandleRedirects(false); $saveTarget = $target . "/fake_save_pixlr.php"; if ($this->getFilteredOption("CHECK_SECURITY_TOKEN", $repository->getId())) { $saveTarget = $target . "/fake_save_pixlr_" . md5($httpVars["secure_token"]) . ".php"; } $params = array("referrer" => "AjaXplorer", "method" => "get", "loc" => ConfService::getLanguage(), "target" => $saveTarget, "exit" => $target . "/fake_close_pixlr.php", "title" => urlencode(basename($file)), "locktarget" => "false", "locktitle" => "true", "locktype" => "source"); $httpClient->postFile("/editor/", $params, "image", $fData); $loc = $httpClient->getHeader("location"); header("Location:{$loc}"); } else { if ($action == "retrieve_pixlr_image") { $file = AJXP_Utils::decodeSecureMagic($httpVars["original_file"]); $node = new AJXP_Node($destStreamURL . $file); $node->loadNodeInfo(); AJXP_Controller::applyHook("node.before_change", array(&$node)); $url = $httpVars["new_url"]; $urlParts = parse_url($url); $query = $urlParts["query"]; if ($this->getFilteredOption("CHECK_SECURITY_TOKEN", $repository->getId())) { $scriptName = basename($urlParts["path"]); $token = str_replace(array("fake_save_pixlr_", ".php"), "", $scriptName); if ($token != md5($httpVars["secure_token"])) { throw new AJXP_Exception("Invalid Token, this could mean some security problem!"); } } $params = array(); parse_str($query, $params); $image = $params['image']; $headers = get_headers($image, 1); $content_type = explode("/", $headers['Content-Type']); if ($content_type[0] != "image") { throw new AJXP_Exception("Invalid File Type"); } $content_length = intval($headers["Content-Length"]); if ($content_length != 0) { AJXP_Controller::applyHook("node.before_change", array(&$node, $content_length)); } $orig = fopen($image, "r"); $target = fopen($destStreamURL . $file, "w"); while (!feof($orig)) { fwrite($target, fread($orig, 4096)); } fclose($orig); fclose($target); AJXP_Controller::applyHook("node.change", array(&$node, &$node)); //header("Content-Type:text/plain"); //print($mess[115]); } } return; }
function switchAction($action, $httpVars, $fileVars) { if (!isset($this->actions[$action])) { return; } foreach ($httpVars as $getName => $getValue) { ${$getName} = AJXP_Utils::securePath($getValue); } if (isset($dir) && $action != "upload") { $dir = SystemTextEncoding::fromUTF8($dir); } $mess = ConfService::getMessages(); switch ($action) { //------------------------------------ // GET AN HTML TEMPLATE //------------------------------------ case "get_template": HTMLWriter::charsetHeader(); $folder = CLIENT_RESOURCES_FOLDER . "/html"; if (isset($httpVars["pluginName"])) { $folder = "plugins/" . $httpVars["pluginName"]; if (isset($httpVars["pluginPath"])) { $folder .= "/" . $httpVars["pluginPath"]; } } if (isset($template_name) && is_file($folder . "/" . $template_name)) { include $folder . "/" . $template_name; } break; //------------------------------------ // GET I18N MESSAGES //------------------------------------ //------------------------------------ // GET I18N MESSAGES //------------------------------------ case "get_i18n_messages": HTMLWriter::charsetHeader('text/javascript'); HTMLWriter::writeI18nMessagesClass(ConfService::getMessages()); break; //------------------------------------ // SEND XML REGISTRY //------------------------------------ //------------------------------------ // SEND XML REGISTRY //------------------------------------ case "get_xml_registry": $regDoc = AJXP_PluginsService::getXmlRegistry(); if (isset($_GET["xPath"])) { $regPath = new DOMXPath($regDoc); $nodes = $regPath->query($_GET["xPath"]); AJXP_XMLWriter::header("ajxp_registry_part", array("xPath" => $_GET["xPath"])); if ($nodes->length) { print AJXP_XMLWriter::replaceAjxpXmlKeywords($regDoc->saveXML($nodes->item(0))); } AJXP_XMLWriter::close("ajxp_registry_part"); } else { header('Content-Type: application/xml; charset=UTF-8'); print AJXP_XMLWriter::replaceAjxpXmlKeywords($regDoc->saveXML()); } break; //------------------------------------ // DISPLAY DOC //------------------------------------ //------------------------------------ // DISPLAY DOC //------------------------------------ case "display_doc": HTMLWriter::charsetHeader(); echo HTMLWriter::getDocFile(htmlentities($_GET["doc_file"])); break; //------------------------------------ // CHECK UPDATE //------------------------------------ //------------------------------------ // CHECK UPDATE //------------------------------------ case "check_software_update": $content = @file_get_contents(SOFTWARE_UPDATE_SITE . "ajxp.version"); $message = $mess["345"]; if (isset($content) && $content != "") { if (strstr($content, "::URL::") !== false) { list($version, $downloadUrl) = explode("::URL::", $content); } else { $version = $content; $downloadUrl = "http://www.ajaxplorer.info/"; } $compare = version_compare(AJXP_VERSION, $content); if ($compare >= 0) { $message = $mess["346"]; } else { $link = '<a target="_blank" href="' . $downloadUrl . '">' . $downloadUrl . '</a>'; $message = sprintf($mess["347"], $version, $link); } } HTMLWriter::charsetHeader("text/plain"); print $message; break; //------------------------------------ // GET CONFIG FOR BOOT //------------------------------------ //------------------------------------ // GET CONFIG FOR BOOT //------------------------------------ case "get_boot_conf": if (isset($_GET["server_prefix_uri"])) { $_SESSION["AJXP_SERVER_PREFIX_URI"] = $_GET["server_prefix_uri"]; } $config = array(); $config["ajxpResourcesFolder"] = AJXP_THEME_FOLDER; $config["ajxpServerAccess"] = SERVER_ACCESS; $config["zipEnabled"] = ConfService::zipEnabled(); $config["multipleFilesDownloadEnabled"] = !DISABLE_ZIP_CREATION; $config["flashUploaderEnabled"] = ConfService::getConf("UPLOAD_ENABLE_FLASH"); $welcomeCustom = ConfService::getConf("WELCOME_CUSTOM_MSG"); if ($welcomeCustom != "") { $config["customWelcomeMessage"] = $welcomeCustom; } if (!ConfService::getConf("UPLOAD_ENABLE_FLASH")) { $UploadMaxSize = AJXP_Utils::convertBytes(ini_get('upload_max_filesize')); $confMaxSize = ConfService::getConf("UPLOAD_MAX_FILE"); if ($confMaxSize != 0 && $confMaxSize < $UploadMaxSize) { $UploadMaxSize = $confMaxSize; } $confTotalNumber = ConfService::getConf("UPLOAD_MAX_NUMBER"); $config["htmlMultiUploaderOptions"] = array("282" => $UploadMaxSize, "284" => $confTotalNumber); } $config["usersEnabled"] = AuthService::usersEnabled(); $config["loggedUser"] = AuthService::getLoggedUser() != null; $config["currentLanguage"] = ConfService::getLanguage(); $config["session_timeout"] = intval(ini_get("session.gc_maxlifetime")); $config["client_timeout"] = ConfService::getConf("CLIENT_TIMEOUT_TIME"); $config["client_timeout_warning"] = ConfService::getConf("CLIENT_TIMEOUT_WARNING"); $config["availableLanguages"] = ConfService::getConf("AVAILABLE_LANG"); $config["ajxpVersion"] = AJXP_VERSION; $config["ajxpVersionDate"] = AJXP_VERSION_DATE; if (stristr($_SERVER["HTTP_USER_AGENT"], "msie 6")) { $config["cssResources"] = array("css/pngHack/pngHack.css"); } if (defined("GOOGLE_ANALYTICS_ID") && GOOGLE_ANALYTICS_ID != "") { $config["googleAnalyticsData"] = array("id" => GOOGLE_ANALYTICS_ID, "domain" => GOOGLE_ANALYTICS_DOMAIN, "event" => GOOGLE_ANALYTICS_EVENT); } $config["i18nMessages"] = ConfService::getMessages(); $config["password_min_length"] = defined('AJXP_PASSWORD_MINLENGTH') ? AJXP_PASSWORD_MINLENGTH : 8; $config["SECURE_TOKEN"] = AuthService::generateSecureToken(); header("Content-type:application/json;charset=UTF-8"); print json_encode($config); break; default: break; } return false; }
/** * Compute external link from the given hash * @param string $hash * @return string */ public function buildPublicLink($hash) { $addLang = ConfService::getLanguage() != ConfService::getCoreConf("DEFAULT_LANGUAGE"); if ($this->options["USE_REWRITE_RULE"]) { if ($addLang) { return $this->buildPublicDlURL() . "/" . $hash . "--" . ConfService::getLanguage(); } else { return $this->buildPublicDlURL() . "/" . $hash; } } else { if ($addLang) { return $this->buildPublicDlURL() . "/" . $hash . ".php?lang=" . ConfService::getLanguage(); } else { return $this->buildPublicDlURL() . "/" . $hash . ".php"; } } }
function initPublicFolder($downloadFolder) { if (is_file($downloadFolder . "/down.png")) { return; } $language = ConfService::getLanguage(); $pDir = dirname(__FILE__); $messages = array(); if (is_file($pDir . "/res/i18n/" . $language . ".php")) { include $pDir . "/res/i18n/" . $language . ".php"; $messages = $mess; } else { include $pDir . "/res/i18n/en.php"; } $sTitle = sprintf($messages[1], ConfService::getCoreConf("APPLICATION_TITLE")); $sLegend = $messages[20]; @copy($pDir . "/res/down.png", $downloadFolder . "/down.png"); @copy($pDir . "/res/button_cancel.png", $downloadFolder . "/button_cancel.png"); @copy($pDir . "/res/drive_harddisk.png", $downloadFolder . "/drive_harddisk.png"); @copy(AJXP_INSTALL_PATH . "/server/index.html", $downloadFolder . "/index.html"); file_put_contents($downloadFolder . "/.htaccess", "ErrorDocument 404 " . $this->buildPublicDlURL() . "/404.html\n<Files \".ajxp_*\">\ndeny from all\n</Files>"); $content404 = file_get_contents($pDir . "/res/404.html"); $content404 = str_replace(array("AJXP_MESSAGE_TITLE", "AJXP_MESSAGE_LEGEND"), array($sTitle, $sLegend), $content404); file_put_contents($downloadFolder . "/404.html", $content404); }
function switchAction($action, $httpVars, $fileVars) { if (!isset($this->actions[$action])) { return; } $xmlBuffer = ""; foreach ($httpVars as $getName => $getValue) { ${$getName} = AJXP_Utils::securePath($getValue); } if (isset($dir) && $action != "upload") { $dir = SystemTextEncoding::fromUTF8($dir); } $mess = ConfService::getMessages(); switch ($action) { //------------------------------------ // GET AN HTML TEMPLATE //------------------------------------ case "get_template": HTMLWriter::charsetHeader(); $folder = CLIENT_RESOURCES_FOLDER . "/html"; if (isset($httpVars["pluginName"])) { $folder = "plugins/" . $httpVars["pluginName"]; if (isset($httpVars["pluginPath"])) { $folder .= "/" . $httpVars["pluginPath"]; } } if (isset($template_name) && is_file($folder . "/" . $template_name)) { include $folder . "/" . $template_name; } exit(0); break; //------------------------------------ // GET I18N MESSAGES //------------------------------------ //------------------------------------ // GET I18N MESSAGES //------------------------------------ case "get_i18n_messages": HTMLWriter::charsetHeader('text/javascript'); HTMLWriter::writeI18nMessagesClass(ConfService::getMessages()); exit(0); break; //------------------------------------ // SEND XML REGISTRY //------------------------------------ //------------------------------------ // SEND XML REGISTRY //------------------------------------ case "get_xml_registry": $regDoc = AJXP_PluginsService::getXmlRegistry(); if (isset($_GET["xPath"])) { $regPath = new DOMXPath($regDoc); $nodes = $regPath->query($_GET["xPath"]); AJXP_XMLWriter::header("ajxp_registry_part", array("xPath" => $_GET["xPath"])); if ($nodes->length) { print AJXP_XMLWriter::replaceAjxpXmlKeywords($regDoc->saveXML($nodes->item(0))); } AJXP_XMLWriter::close("ajxp_registry_part"); } else { header('Content-Type: application/xml; charset=UTF-8'); print AJXP_XMLWriter::replaceAjxpXmlKeywords($regDoc->saveXML()); } exit(0); break; //------------------------------------ // DISPLAY DOC //------------------------------------ //------------------------------------ // DISPLAY DOC //------------------------------------ case "display_doc": HTMLWriter::charsetHeader(); echo HTMLWriter::getDocFile(htmlentities($_GET["doc_file"])); exit(1); break; //------------------------------------ // CHECK UPDATE //------------------------------------ //------------------------------------ // CHECK UPDATE //------------------------------------ case "check_software_update": $content = @file_get_contents(SOFTWARE_UPDATE_SITE . "last_version.txt"); $message = $mess["345"]; if (isset($content) && $content != "") { $last_version = floatval($content); $currrent_version = floatval(AJXP_VERSION); if ($last_version == $currrent_version) { $message = $mess["346"]; } else { if ($last_version > $currrent_version) { $message = sprintf($mess["347"], $content, '<a href="http://www.ajaxplorer.info/">http://www.ajaxplorer.info/</a>'); } } } HTMLWriter::charsetHeader("text/plain"); print $message; exit(1); break; //------------------------------------ // GET CONFIG FOR BOOT //------------------------------------ //------------------------------------ // GET CONFIG FOR BOOT //------------------------------------ case "get_boot_conf": if (isset($_GET["server_prefix_uri"])) { $_SESSION["AJXP_SERVER_PREFIX_URI"] = $_GET["server_prefix_uri"]; } $config = array(); $config["ajxpResourcesFolder"] = AJXP_THEME_FOLDER; $config["ajxpServerAccess"] = SERVER_ACCESS; $config["zipEnabled"] = ConfService::zipEnabled(); $config["multipleFilesDownloadEnabled"] = !DISABLE_ZIP_CREATION; $config["flashUploaderEnabled"] = ConfService::getConf("UPLOAD_ENABLE_FLASH"); $welcomeCustom = ConfService::getConf("WELCOME_CUSTOM_MSG"); if ($welcomeCustom != "") { $config["customWelcomeMessage"] = $welcomeCustom; } if (!ConfService::getConf("UPLOAD_ENABLE_FLASH")) { $UploadMaxSize = AJXP_Utils::convertBytes(ini_get('upload_max_filesize')); $confMaxSize = ConfService::getConf("UPLOAD_MAX_FILE"); if ($confMaxSize != 0 && $confMaxSize < $UploadMaxSize) { $UploadMaxSize = $confMaxSize; } $confTotalNumber = ConfService::getConf("UPLOAD_MAX_NUMBER"); $config["htmlMultiUploaderOptions"] = array("282" => $UploadMaxSize, "284" => $confTotalNumber); } $config["usersEnabled"] = AuthService::usersEnabled(); $config["loggedUser"] = AuthService::getLoggedUser() != null; $config["currentLanguage"] = ConfService::getLanguage(); $config["userChangePassword"] = AuthService::changePasswordEnabled(); $config["availableLanguages"] = ConfService::getConf("AVAILABLE_LANG"); $config["ajxpVersion"] = AJXP_VERSION; $config["ajxpVersionDate"] = AJXP_VERSION_DATE; if (stristr($_SERVER["HTTP_USER_AGENT"], "msie 6")) { $config["cssResources"] = array("css/pngHack/pngHack.css"); } if (defined("GOOGLE_ANALYTICS_ID") && GOOGLE_ANALYTICS_ID != "") { $config["googleAnalyticsData"] = array("id" => GOOGLE_ANALYTICS_ID, "domain" => GOOGLE_ANALYTICS_DOMAIN, "event" => GOOGLE_ANALYTICS_EVENT); } $config["i18nMessages"] = ConfService::getMessages(); header("Content-type:application/json;charset=UTF-8"); print json_encode($config); exit(1); break; default: break; } if (isset($logMessage) || isset($errorMessage)) { $xmlBuffer .= AJXP_XMLWriter::sendMessage(isset($logMessage) ? $logMessage : null, isset($errorMessage) ? $errorMessage : null, false); } if (isset($requireAuth)) { $xmlBuffer .= AJXP_XMLWriter::requireAuth(false); } if (isset($reload_current_node) && $reload_current_node == "true") { $xmlBuffer .= AJXP_XMLWriter::reloadCurrentNode(false); } if (isset($reload_dest_node) && $reload_dest_node != "") { $xmlBuffer .= AJXP_XMLWriter::reloadNode($reload_dest_node, false); } if (isset($reload_file_list)) { $xmlBuffer .= AJXP_XMLWriter::reloadFileList($reload_file_list, false); } return $xmlBuffer; }