public static function loadMinisite($data, $hash = '', $error = null) { if (isset($data["SECURITY_MODIFIED"]) && $data["SECURITY_MODIFIED"] === true) { $mess = ConfService::getMessages(); $error = $mess['share_center.164']; } $repository = $data["REPOSITORY"]; AJXP_PluginsService::getInstance()->initActivePlugins(); $shareCenter = AJXP_PluginsService::findPlugin("action", "share"); $confs = $shareCenter->getConfigs(); $minisiteLogo = "plugins/gui.ajax/PydioLogo250.png"; if (!empty($confs["CUSTOM_MINISITE_LOGO"])) { $logoPath = $confs["CUSTOM_MINISITE_LOGO"]; if (strpos($logoPath, "plugins/") === 0 && is_file(AJXP_INSTALL_PATH . "/" . $logoPath)) { $minisiteLogo = $logoPath; } else { $minisiteLogo = "index_shared.php?get_action=get_global_binary_param&binary_id=" . $logoPath; } } // Default value if (isset($data["AJXP_TEMPLATE_NAME"])) { $templateName = $data["AJXP_TEMPLATE_NAME"]; if ($templateName == "ajxp_film_strip" && AJXP_Utils::userAgentIsMobile()) { $templateName = "ajxp_shared_folder"; } } if (!isset($templateName)) { $repoObject = ConfService::getRepositoryById($repository); if (!is_object($repoObject)) { $mess = ConfService::getMessages(); $error = $mess["share_center.166"]; $templateName = "ajxp_unique_strip"; } else { $filter = $repoObject->getContentFilter(); if (!empty($filter) && count($filter->virtualPaths) == 1) { $templateName = "ajxp_unique_strip"; } else { $templateName = "ajxp_shared_folder"; } } } // UPDATE TEMPLATE $html = file_get_contents(AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/action.share/res/minisite.php"); AJXP_Controller::applyHook("tpl.filter_html", array(&$html)); $html = AJXP_XMLWriter::replaceAjxpXmlKeywords($html); $html = str_replace("AJXP_MINISITE_LOGO", $minisiteLogo, $html); $html = str_replace("AJXP_APPLICATION_TITLE", ConfService::getCoreConf("APPLICATION_TITLE"), $html); $html = str_replace("PYDIO_APP_TITLE", ConfService::getCoreConf("APPLICATION_TITLE"), $html); if (isset($repository)) { $html = str_replace("AJXP_START_REPOSITORY", $repository, $html); $html = str_replace("AJXP_REPOSITORY_LABEL", ConfService::getRepositoryById($repository)->getDisplay(), $html); } $html = str_replace('AJXP_HASH_LOAD_ERROR', isset($error) ? $error : '', $html); $html = str_replace("AJXP_TEMPLATE_NAME", $templateName, $html); $html = str_replace("AJXP_LINK_HASH", $hash, $html); $guiConfigs = AJXP_PluginsService::findPluginById("gui.ajax")->getConfigs(); $html = str_replace("AJXP_THEME", $guiConfigs["GUI_THEME"], $html); if (isset($_GET["dl"]) && isset($_GET["file"])) { AuthService::$useSession = false; } else { session_name("AjaXplorer_Shared" . str_replace(".", "_", $hash)); session_start(); AuthService::disconnect(); } if (!empty($data["PRELOG_USER"])) { AuthService::logUser($data["PRELOG_USER"], "", true); $html = str_replace("AJXP_PRELOGED_USER", "ajxp_preloged_user", $html); } else { if (isset($data["PRESET_LOGIN"])) { $_SESSION["PENDING_REPOSITORY_ID"] = $repository; $_SESSION["PENDING_FOLDER"] = "/"; $html = str_replace("AJXP_PRELOGED_USER", $data["PRESET_LOGIN"], $html); } else { $html = str_replace("AJXP_PRELOGED_USER", "ajxp_legacy_minisite", $html); } } if (isset($hash)) { $_SESSION["CURRENT_MINISITE"] = $hash; } if (isset($_GET["dl"]) && isset($_GET["file"]) && (!isset($data["DOWNLOAD_DISABLED"]) || $data["DOWNLOAD_DISABLED"] === false)) { ConfService::switchRootDir($repository); ConfService::loadRepositoryDriver(); AJXP_PluginsService::deferBuildingRegistry(); AJXP_PluginsService::getInstance()->initActivePlugins(); AJXP_PluginsService::flushDeferredRegistryBuilding(); $errMessage = null; try { $params = $_GET; $ACTION = "download"; if (isset($_GET["ct"])) { $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) { $ACTION = $callbacks->item(0)->getAttribute("name"); if ($ACTION == "audio_proxy") { $params["file"] = "base64encoded:" . base64_encode($params["file"]); } break; } } } } AJXP_Controller::registryReset(); AJXP_Controller::findActionAndApply($ACTION, $params, null); } catch (Exception $e) { $errMessage = $e->getMessage(); } if ($errMessage == null) { return; } $html = str_replace('AJXP_HASH_LOAD_ERROR', $errMessage, $html); } if (isset($_GET["lang"])) { $loggedUser =& AuthService::getLoggedUser(); if ($loggedUser != null) { $loggedUser->setPref("lang", $_GET["lang"]); } else { setcookie("AJXP_lang", $_GET["lang"]); } } if (!empty($data["AJXP_APPLICATION_BASE"])) { $tPath = $data["AJXP_APPLICATION_BASE"]; } else { $tPath = !empty($data["TRAVEL_PATH_TO_ROOT"]) ? $data["TRAVEL_PATH_TO_ROOT"] : "../.."; } // Update Host dynamically if it differ from registered one. $registeredHost = parse_url($tPath, PHP_URL_HOST); $currentHost = parse_url(AJXP_Utils::detectServerURL("SERVER_URL"), PHP_URL_HOST); if ($registeredHost != $currentHost) { $tPath = str_replace($registeredHost, $currentHost, $tPath); } $html = str_replace("AJXP_PATH_TO_ROOT", rtrim($tPath, "/") . "/", $html); HTMLWriter::internetExplorerMainDocumentHeader(); HTMLWriter::charsetHeader(); echo $html; }
public function performChecks() { if (!AJXP_Utils::userAgentIsMobile()) { throw new Exception("no"); } }
/* PLUGINS DEFINITIONS /* Drivers will define how the application will work. For /* each type of operation, there are multiple implementation /* possible. Check the content of the plugins folder. /* CONF = users and repositories definition, /* AUTH = users authentification mechanism, /* LOG = logs of the application. /* /* By default, the three are all based on files. /* /* ACTIVE_PLUGINS adds other type of plugins to the application. /* If you are developping your own plugin, do not forget to declare /* it here. /*********************************************************/ $PLUGINS = array("CONF_DRIVER" => array("NAME" => "serial", "OPTIONS" => array("REPOSITORIES_FILEPATH" => "AJXP_INSTALL_PATH/server/conf/repo.ser", "ROLES_FILEPATH" => "AJXP_INSTALL_PATH/server/users/roles.ser", "USERS_DIRPATH" => "AJXP_INSTALL_PATH/server/users")), "AUTH_DRIVER" => array("NAME" => "serial", "OPTIONS" => array("LOGIN_REDIRECT" => false, "USERS_FILEPATH" => "AJXP_INSTALL_PATH/server/users/users.ser", "AUTOCREATE_AJXPUSER" => false, "TRANSMIT_CLEAR_PASS" => false)), "LOG_DRIVER" => array("NAME" => "text", "OPTIONS" => array("LOG_PATH" => "AJXP_INSTALL_PATH/server/logs/", "LOG_FILE_NAME" => 'log_' . date('m-d-y') . '.txt', "LOG_CHMOD" => 0770)), "ACTIVE_PLUGINS" => array("editor.*", "uploader.flex", "uploader.html", "gui.ajax", "hook.*")); if (AJXP_Utils::userAgentIsMobile()) { $PLUGINS["ACTIVE_PLUGINS"][] = "gui.mobile"; } /*********************************************************/ /* BASIC REPOSITORY CONFIGURATION. /* Use the GUI to add new repositories to explore! /* + Log in as "admin" and open the "Settings" Repository /*********************************************************/ $REPOSITORIES[0] = array("DISPLAY" => "Default Files", "DRIVER" => "fs", "DRIVER_OPTIONS" => array("PATH" => realpath(dirname(__FILE__) . "/../../../../../public"), "CREATE" => true, "RECYCLE_BIN" => 'recycle_bin', "CHMOD_VALUE" => '0755', "DEFAULT_RIGHTS" => "", "PAGINATION_THRESHOLD" => 500, "PAGINATION_NUMBER" => 200, "META_SOURCES" => array())); // DO NOT REMOVE THIS! // SHARE ELEMENTS $REPOSITORIES["ajxp_shared"] = array("DISPLAY" => "Shared Elements", "DISPLAY_ID" => "363", "DRIVER" => "ajxp_shared", "DRIVER_OPTIONS" => array("DEFAULT_RIGHTS" => "rw")); // ADMIN REPOSITORY $REPOSITORIES[1] = array("DISPLAY" => "Settings", "DISPLAY_ID" => "165", "DRIVER" => "ajxp_conf", "DRIVER_OPTIONS" => array()); /*********************************************/ /* DEFAULT LANGUAGE