function listing($nom_rep, $dir_only = false, $offset = 0, $limit = 0)
 {
     $mess = ConfService::getMessages();
     $size_unit = $mess["byte_unit_symbol"];
     $orderDir = 0;
     $orderBy = "filename";
     $handle = opendir($nom_rep);
     $recycle = $this->repository->getOption("RECYCLE_BIN");
     $cursor = 0;
     while (strlen($file = readdir($handle)) > 0) {
         if ($file != "." && $file != ".." && !(Utils::isHidden($file) && !$this->driverConf["SHOW_HIDDEN_FILES"])) {
             if ($offset > 0 && $cursor < $offset) {
                 $cursor++;
                 continue;
             }
             if ($limit > 0 && $cursor - $offset >= $limit) {
                 break;
             }
             $cursor++;
             if ($recycle != "" && $nom_rep == $this->repository->getOption("PATH") . "/" . $recycle && $file == RecycleBinManager::getCacheFileName()) {
                 continue;
             }
             $poidsfic = @filesize("{$nom_rep}/{$file}") or 0;
             if (is_dir("{$nom_rep}/{$file}")) {
                 if ($this->filterFolder($file)) {
                     continue;
                 }
                 if ($recycle != "" && $this->getPath() . "/" . $recycle == "{$nom_rep}/{$file}") {
                     continue;
                 }
                 if ($orderBy == "mod") {
                     $liste_rep[$file] = filemtime("{$nom_rep}/{$file}");
                 } else {
                     $liste_rep[$file] = $file;
                 }
             } else {
                 if ($this->filterFile($file)) {
                     continue;
                 }
                 if (!$dir_only) {
                     if ($orderBy == "filename") {
                         $liste_fic[$file] = Utils::mimetype("{$nom_rep}/{$file}", "image", is_dir("{$nom_rep}/{$file}"));
                     } else {
                         if ($orderBy == "filesize") {
                             $liste_fic[$file] = $poidsfic;
                         } else {
                             if ($orderBy == "mod") {
                                 $liste_fic[$file] = filemtime("{$nom_rep}/{$file}");
                             } else {
                                 if ($orderBy == "filetype") {
                                     $liste_fic[$file] = Utils::mimetype("{$nom_rep}/{$file}", "type", is_dir("{$nom_rep}/{$file}"));
                                 } else {
                                     $liste_fic[$file] = Utils::mimetype("{$nom_rep}/{$file}", "image", is_dir("{$nom_rep}/{$file}"));
                                 }
                             }
                         }
                     }
                 } else {
                     if (preg_match("/\\.zip\$/", $file) && ConfService::zipEnabled()) {
                         if (!isset($liste_zip)) {
                             $liste_zip = array();
                         }
                         $liste_zip[$file] = $file;
                     }
                 }
             }
         }
     }
     closedir($handle);
     if (isset($liste_fic) && is_array($liste_fic)) {
         if ($orderBy == "filename") {
             if ($orderDir == 0) {
                 Utils::natksort($liste_fic);
             } else {
                 Utils::natkrsort($liste_fic);
             }
         } else {
             if ($orderBy == "mod") {
                 if ($orderDir == 0) {
                     arsort($liste_fic);
                 } else {
                     asort($liste_fic);
                 }
             } else {
                 if ($orderBy == "filesize" || $orderBy == "filetype") {
                     if ($orderDir == 0) {
                         asort($liste_fic);
                     } else {
                         arsort($liste_fic);
                     }
                 } else {
                     if ($orderDir == 0) {
                         Utils::natksort($liste_fic);
                     } else {
                         Utils::natkrsort($liste_fic);
                     }
                 }
             }
         }
         if ($orderBy != "filename") {
             foreach ($liste_fic as $index => $value) {
                 $liste_fic[$index] = Utils::mimetype($index, "image", false);
             }
         }
     } else {
         $liste_fic = array();
     }
     if (isset($liste_rep) && is_array($liste_rep)) {
         if ($orderBy == "mod") {
             if ($orderDir == 0) {
                 arsort($liste_rep);
             } else {
                 asort($liste_rep);
             }
         } else {
             if ($orderDir == 0) {
                 Utils::natksort($liste_rep);
             } else {
                 Utils::natkrsort($liste_rep);
             }
         }
         if ($orderBy != "filename") {
             foreach ($liste_rep as $index => $value) {
                 $liste_rep[$index] = $index;
             }
         }
     } else {
         $liste_rep = array();
     }
     $liste = Utils::mergeArrays($liste_rep, $liste_fic);
     if (isset($liste_zip)) {
         $liste = Utils::mergeArrays($liste, $liste_zip);
     }
     return $liste;
 }
 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;
 }
Esempio n. 3
0
 static function getAjxpMimes($keyword)
 {
     if ($keyword == "editable") {
         // Gather editors!
         $pServ = AJXP_PluginsService::getInstance();
         $plugs = $pServ->getPluginsByType("editor");
         //$plugin = new AJXP_Plugin();
         $mimes = array();
         foreach ($plugs as $plugin) {
             $node = $plugin->getManifestRawContent("/editor/@mimes", "node");
             $openable = $plugin->getManifestRawContent("/editor/@openable", "node");
             if ($openable->item(0) && $openable->item(0)->value == "true" && $node->item(0)) {
                 $mimestring = $node->item(0)->value;
                 $mimesplit = explode(",", $mimestring);
                 foreach ($mimesplit as $value) {
                     $mimes[$value] = $value;
                 }
             }
         }
         return implode(",", array_values($mimes));
     } else {
         if ($keyword == "image") {
             return "png,bmp,jpg,jpeg,gif";
         } else {
             if ($keyword == "audio") {
                 return "mp3";
             } else {
                 if ($keyword == "zip") {
                     if (ConfService::zipEnabled()) {
                         return "zip";
                     } else {
                         return "none_allowed";
                     }
                 }
             }
         }
     }
     return "";
 }
Esempio n. 4
0
 function getAjxpMimes($keyword)
 {
     if ($keyword == "editable") {
         return "txt,sql,php,php3,phtml,htm,html,cgi,pl,js,css,inc,xml,xsl,java";
     } else {
         if ($keyword == "image") {
             return "png,bmp,jpg,jpeg,gif";
         } else {
             if ($keyword == "audio") {
                 return "mp3";
             } else {
                 if ($keyword == "zip") {
                     if (ConfService::zipEnabled()) {
                         return "zip";
                     } else {
                         return "none_allowed";
                     }
                 }
             }
         }
     }
     return "";
 }
Esempio n. 5
0
    $ROOT_DIR_ID = "null";
    $ROOT_DIR_XML = "";
} else {
    $ROOT_DIR_NAME = ConfService::getCurrentRootDirDisplay();
    $ROOT_DIR_ID = ConfService::getCurrentRootDirIndex();
    $ROOT_DIR_XML = HTMLWriter::repositoryDataAsJS();
}
$EXT_REP = "/";
if (isset($_GET["folder"])) {
    $EXT_REP = urldecode($_GET["folder"]);
}
$CRT_USER = "******";
if (isset($_GET["user"])) {
    $CRT_USER = $_GET["user"];
}
$ZIP_ENABLED = ConfService::zipEnabled() ? "true" : "false";
$loggedUser = AuthService::getLoggedUser();
$DEFAULT_DISPLAY = "list";
if ($loggedUser != null && $loggedUser->getId() != "guest") {
    if ($loggedUser->getPref("lang") != "") {
        ConfService::setLanguage($loggedUser->getPref("lang"));
    }
    if ($loggedUser->getPref("display") != "") {
        $DEFAULT_DISPLAY = $loggedUser->getPref("display");
    }
} else {
    if (isset($_COOKIE["AJXP_lang"])) {
        ConfService::setLanguage($_COOKIE["AJXP_lang"]);
    }
    if (isset($_COOKIE["AJXP_display"]) && ($_COOKIE["AJXP_display"] == "list" || $_COOKIE["AJXP_display"] == "thumb")) {
        $DEFAULT_DISPLAY = $_COOKIE["AJXP_display"];
 function listing($nom_rep, $dir_only = false)
 {
     $mess = ConfService::getMessages();
     $size_unit = $mess["byte_unit_symbol"];
     $sens = 0;
     $ordre = "nom";
     $poidstotal = 0;
     $contents = @ftp_rawlist($this->connect, $nom_rep);
     if (!is_array($contents)) {
         // We might have timed out, so let's go passive if not done yet
         global $_SESSION;
         if ($_SESSION["ftpPasv"] == "true") {
             return array();
         }
         @ftp_pasv($this->connect, TRUE);
         $_SESSION["ftpPasv"] = "true";
         $contents = @ftp_rawlist($this->connect, $nom_rep);
         if (!is_array($contents)) {
             return array();
         }
     }
     foreach ($contents as $entry) {
         $info = array();
         $vinfo = preg_split("/[\\s]+/", $entry, 9);
         if ($vinfo[0] !== "total") {
             $info['chmod'] = $vinfo[0];
             $info['num'] = $vinfo[1];
             $info['owner'] = $vinfo[2];
             $info['group'] = $vinfo[3];
             $info['size'] = $vinfo[4];
             $info['month'] = $vinfo[5];
             $info['day'] = $vinfo[6];
             $info['timeOrYear'] = $vinfo[7];
             $info['name'] = $vinfo[8];
         }
         $file = trim($info['name']);
         $filetaille = trim($info['size']);
         if (strstr($info["timeOrYear"], ":")) {
             $info["time"] = $info["timeOrYear"];
             $info["year"] = date("Y");
         } else {
             $info["time"] = '09:00';
             $info["year"] = $info["timeOrYear"];
         }
         $filedate = trim($info['day']) . " " . trim($info['month']) . " " . trim($info['year']) . " " . trim($info['time']);
         $filedate = strtotime($filedate);
         $fileperms = trim($info['chmod']);
         $info['chmod1'] = $this->convertingChmod(trim($info['chmod']));
         $isDir = false;
         $info['modifTime'] = $filedate;
         $info['isDir'] = false;
         //gestion des Simbolic Link pour la navigation
         if (strpos($fileperms, "d") !== FALSE || strpos($fileperms, "l") !== FALSE) {
             if (strpos($fileperms, "l") !== FALSE) {
                 $test = explode(" ->", $file);
                 $file = $test[0];
                 $info['name'] = $file;
             }
             $isDir = true;
             $info['isDir'] = true;
         }
         if ($file != "." && $file != "..") {
             if (RecycleBinManager::recycleEnabled() && $nom_rep == $this->repository->getOption("PATH") . "/" . $this->repository->getOption("RECYCLE_BIN") && $file == RecycleBinManager::getCacheFileName()) {
                 continue;
             }
             $poidstotal += $filetaille;
             if ($isDir) {
                 if (RecycleBinManager::recycleEnabled() && $this->repository->getOption("PATH") . "/" . $this->repository->getOption("RECYCLE_BIN") == "{$nom_rep}/{$file}") {
                     continue;
                 }
                 $liste_rep[$file] = $info;
                 $liste_rep[$file]['icon'] = Utils::mimetype("{$nom_rep}/{$file}", "image", $isDir);
                 $liste_rep[$file]['type'] = Utils::mimetype("{$nom_rep}/{$file}", "type", $isDir);
             } else {
                 if (!$dir_only) {
                     $liste_fic[$file] = $info;
                     $liste_fic[$file]['icon'] = Utils::mimetype("{$nom_rep}/{$file}", "image", $isDir);
                     $liste_fic[$file]['type'] = Utils::mimetype("{$nom_rep}/{$file}", "type", $isDir);
                 } else {
                     if (preg_match("/\\.zip\$/", $file) && ConfService::zipEnabled()) {
                         if (!isset($liste_zip)) {
                             $liste_zip = array();
                         }
                         $liste_zip[$file] = $file;
                     }
                 }
             }
         }
     }
     if (isset($liste_fic) && is_array($liste_fic)) {
         if ($ordre == "nom") {
             if ($sens == 0) {
                 ksort($liste_fic);
             } else {
                 krsort($liste_fic);
             }
         } else {
             if ($ordre == "mod") {
                 if ($sens == 0) {
                     arsort($liste_fic);
                 } else {
                     asort($liste_fic);
                 }
             } else {
                 if ($ordre == "taille" || $ordre == "type") {
                     if ($sens == 0) {
                         asort($liste_fic);
                     } else {
                         arsort($liste_fic);
                     }
                 } else {
                     if ($sens == 0) {
                         ksort($liste_fic);
                     } else {
                         krsort($liste_fic);
                     }
                 }
             }
         }
         if ($ordre != "nom") {
             foreach ($liste_fic as $index => $value) {
                 $liste_fic[$index] = Utils::mimetype($index, "image", false);
             }
         }
     } else {
         $liste_fic = array();
     }
     if (isset($liste_rep) && is_array($liste_rep)) {
         if ($ordre == "mod") {
             if ($sens == 0) {
                 arsort($liste_rep);
             } else {
                 asort($liste_rep);
             }
         } else {
             if ($sens == 0) {
                 ksort($liste_rep);
             } else {
                 krsort($liste_rep);
             }
         }
         if ($ordre != "nom") {
             foreach ($liste_rep as $index => $value) {
                 $liste_rep[$index] = $index;
             }
         }
     } else {
         $liste_rep = array();
     }
     $liste = Utils::mergeArrays($liste_rep, $liste_fic);
     if (isset($liste_zip)) {
         $liste = Utils::mergeArrays($liste, $liste_zip);
     }
     if ($poidstotal >= 1073741824) {
         $poidstotal = round($poidstotal / 1073741824 * 100) / 100 . " G" . $size_unit;
     } elseif ($poidstotal >= 1048576) {
         $poidstotal = round($poidstotal / 1048576 * 100) / 100 . " M" . $size_unit;
     } elseif ($poidstotal >= 1024) {
         $poidstotal = round($poidstotal / 1024 * 100) / 100 . " K" . $size_unit;
     } else {
         $poidstotal = $poidstotal . " " . $size_unit;
     }
     return array($liste, $poidstotal);
 }
 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::zipEnabled();
     $config["multipleFilesDownloadEnabled"] = ConfService::getCoreConf("ZIP_CREATION");
     $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;
 }
 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;
 }
 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;
 }