0byt3m1n1
Path:
/
home
/
kassiope
/
OLD
/
00-OLD
/
plugins
/
editors
/
xstandard
/
[
Home
]
File: attachmentlibrary.php
<?php /************************************************************************************* ** - Copyright (c) 2006 Belus Technology Inc. ** - ** - By using the software and documentation, the user expressly agrees that ** - the use of the software documentation is at its sole risk. The software ** - and documentation is made available on an "as is" basis. Copyright owner ** - does not warrant that the software and documentation will meet the user's ** - requirements, or that the operation of the software will be uninterrupted ** - or error-free and does not make any warranty whatsoever regarding the ** - software and documentation, any information, services or products provided ** - through or in connection with the software and documentation, or any ** - results to be obtained through the use thereof, and hereby expressly ** - disclaims on behalf of itself and all suppliers any and all warranties, ** - including without limitation: any express or implied warranties of: ** - 1) merchantability; 2) fitness for a particular purpose; 3) effort to ** - achieve purpose; 4) quality; 5) accuracy; 6) non-infringement. Copyright ** - owner shall not be liable to the user, or to any third party, for any loss ** - of data, profits, loss of use, interruption of business, error, omission, ** - deletion, defect, delay in operation or transmission, computer virus, ** - communications line failure, theft or destruction or unauthorized access to, ** - alteration of, or use of records, whether for breach of contract, tortious ** - behavior, negligence, or under any other cause of action. ** - ** - All right, title and interest including, but not limited to, copyright and ** - other intellectual property rights in and to the software and documentation ** - are owned by Copyright owner and the use of or modification to the software ** - and documentation does not pass to the user any title to or any proprietary ** - rights in the software and documentation. ** - ** - Permission is granted to copy, modify and distribute the software and ** - documentation for any purpose and royalty-free, subject to the following: ** - copyright and other intellectual property rights in and to the software and ** - documentation must not be misrepresented and this notice may not be removed ** - from any source distribution of the software or documentation. *************************************************************************************/ /**************************************************************************************** ** - Purpose: Attachment/Link Library ** - Version: 1.00 ** - Date: 2006-01-30 ** - Documentation: http://xstandard.com/xstandard-lite-for-partner-cms/ ****************************************************************************************/ // Do not allow direct access defined( '_JEXEC' ) or die( 'Restricted access' ); $base_path = "../../../"; require_once( $base_path . 'configuration.php' ); /*************************** OPTIONAL - CHANGE THESE SETTINGS **************************/ define("XS_LIBRARY_FOLDER", $base_path . 'images/stories/'); // Root library folder define("XS_BASE_URL", 'images/stories/'); // Base URL to create for files. Relative URLs are okay, for example: "docs/". define("XS_ACCEPTED_FILE_TYPES", "txt zip pdf doc rtf tar ppt xls xml xsl xslt swf gif jpeg jpg png bmp"); // A list of accepted file extensions. define("XS_GET_DATE_LAST_MODIFIED", true); //Provide the last modified date for files. For large libraries, turning this off can improve performance. define("XS_GET_FILE_SIZE", true); //Provide file size. For large libraries, turning this off can improve performance. define("XS_HIDDEN_FOLDERS", "CVS,_vti_cnf"); //Comma delimited list of hidden folders define("XS_HIDDEN_FILES", ""); //Comma delimited list of hidden files /*************************** OPTIONAL - CHANGE THESE SETTINGS ***************************/ function xs_build_path($path, $name) { $p = str_replace("\\", "/", trim($path)); $n = trim($name); $return = ''; if (strlen($p) > 0 and strlen($n) > 0) { if (substr($p, strlen($p) - 1, 1) == "/") { $return = $p . $n; } else { $return = $p . "/" . $n; } } else { $return = $p . $n; } //make sure return is above $path $realreturn = realpath($return); $realpath = realpath($path); if(strpos($realreturn, $realpath) !== 0) { //the returned path does not start with the given path. Default to path return $realpath; } else { return $realreturn; } } function xs_is_accepted_file_type($file_name) { $pos = strrpos($file_name, "."); $ext = ""; if ($pos !== false) { $ext = strtolower(substr($file_name, $pos + 1)); } $accepted_file_types = explode(" ", strtolower(XS_ACCEPTED_FILE_TYPES)); foreach ($accepted_file_types as $accepted_file_type) { if ($accepted_file_type == $ext or $accepted_file_type == "*") { return true; } } return false; } function xs_xhtml_escape($text) { return str_replace(array("&", "<", ">", "\""), array("&", "<", ">", """), $text); } function xs_urlencode($text) { $parts = explode("/", $text); $count = count($parts); for($i = 0; $i < $count; $i++) { $parts[$i] = str_replace("+", "%20", urlencode($parts[$i])); } return implode("/", $parts); } //Process request $rootFolderPath = ""; $rootFilePath = ""; //Get sub-folder to browse if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { $rootFolderPath = XS_LIBRARY_FOLDER; $rootFilePath = XS_LIBRARY_FOLDER; } else { $rootFolderPath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); $rootFilePath = xs_build_path(XS_LIBRARY_FOLDER, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); } } else { $rootFolderPath = XS_LIBRARY_FOLDER; $rootFilePath = XS_LIBRARY_FOLDER; } $hidden_folders = explode(",", XS_HIDDEN_FOLDERS); $hidden_files = explode(",", XS_HIDDEN_FILES); // Respond if (get_magic_quotes_runtime() != 0) { set_magic_quotes_runtime(0); } header("Content-Type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"; echo "<library>"; echo "<containers>"; // Process folders $folder_list = array(); if (file_exists($rootFolderPath)) { if (false !== ($handle = @opendir($rootFolderPath))) { while (false !== ($fs_object = readdir($handle))) { if ($fs_object != "." && $fs_object != "..") { $found = false; foreach($hidden_folders as $hidden_folder) { if(strtolower($fs_object) == strtolower(trim($hidden_folder))) { $found = true; } } if (is_dir(xs_build_path($rootFolderPath, $fs_object))) { if ($found === false) { $folder_list[] = $fs_object; } } } } closedir($handle); } } natcasesort($folder_list); reset($folder_list); foreach ($folder_list as $key => $fs_object) { echo "<container>"; //Folder name echo "<objectName>" . xs_xhtml_escape($fs_object) . "</objectName>"; //Path to parent folder echo "<path>"; if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); } } echo "</path>"; //Display label echo "<label>" . xs_xhtml_escape($fs_object) . "</label>"; //Base URL to this folder echo "<baseURL>"; $temp = $fs_object; if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { $temp = $_SERVER["HTTP_X_CMS_LIBRARY_PATH"] . "/" . $fs_object; } } $url = xs_build_path(XS_BASE_URL, xs_urlencode($temp)) . "/"; echo $url; echo "</baseURL>"; //Is folder empty (not implemented yet) echo "<empty>false</empty>"; //Icon ID defined in icons.xml echo "<icon>folder</icon>"; //Reserved for future use echo "<metadata></metadata>"; //Reserved for future use echo "<options>0</options>"; echo "</container>"; } echo "</containers>"; echo "<objects>"; // Process files $file_list = array(); if (file_exists($rootFilePath)) { if (false !== ($handle = @opendir($rootFilePath))) { while (false !== ($fs_object = readdir($handle))) { if ($fs_object != "." && $fs_object != "..") { $found = false; foreach($hidden_files as $hidden_file) { if(strtolower($fs_object) == strtolower(trim($hidden_file))) { $found = true; } } if (is_file(xs_build_path($rootFilePath, $fs_object))) { if (xs_is_accepted_file_type($fs_object)) { if ($found === false) { $file_list[] = $fs_object; } } } } } closedir($handle); } } natcasesort($file_list); reset($file_list); foreach ($file_list as $key => $fs_object) { echo "<object>"; //Folder name echo "<objectName>" . xs_xhtml_escape($fs_object) . "</objectName>"; //Path to parent folder echo "<path>"; if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] != "") { echo xs_xhtml_escape($_SERVER["HTTP_X_CMS_LIBRARY_PATH"]); } } echo "</path>"; //Display label echo "<label>" . xs_xhtml_escape($fs_object) . "</label>"; //Icon ID defined in icons.xml echo "<icon>document</icon>"; //Reserved for future use echo "<metadata></metadata>"; //Reserved for future use echo "<options>0</options>"; //Attributes echo "<attrs>"; //src attribute echo "<attr>"; echo "<name>href</name>"; echo "<value>"; if (isset($_SERVER["HTTP_X_CMS_LIBRARY_PATH"])) { if ($_SERVER["HTTP_X_CMS_LIBRARY_PATH"] == "") { echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); } else { echo xs_build_path(xs_build_path(XS_BASE_URL, $_SERVER["HTTP_X_CMS_LIBRARY_PATH"]), xs_urlencode($fs_object)); } } else { echo xs_build_path(XS_BASE_URL, xs_urlencode($fs_object)); } echo "</value>"; echo "</attr>"; echo "</attrs>"; //Properties echo "<props>"; //File size if (XS_GET_FILE_SIZE) { echo "<prop>"; echo "<name>size</name>"; echo "<value>" . filesize(xs_build_path($rootFilePath, $fs_object)) . "</value>"; echo "</prop>"; } //Last modified date if (XS_GET_DATE_LAST_MODIFIED) { echo "<prop>"; echo "<name>date</name>"; echo "<value>" . date("Y-m-d H:i:s", filemtime(xs_build_path($rootFilePath, $fs_object))) . "</value>"; echo "</prop>"; } echo "</props>"; echo "</object>"; } echo "</objects>"; echo "</library>"; ?>