Viewing file: FolderHandler.php (6.85 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /* * CKFinder * ======== * http://ckfinder.com * Copyright (C) 2007-2010, CKSource - Frederico Knabben. All rights reserved. * * The software, this file and its contents are subject to the CKFinder * License. Please read the license.txt file before using, installing, copying, * modifying or distribute this file or part of its contents. The contents of * this file is part of the Source Code of CKFinder. */ if (!defined('IN_CKFINDER')) exit;
/** * @package CKFinder * @subpackage Core * @copyright CKSource - Frederico Knabben */
/** * Include file system utils class */ require_once CKFINDER_CONNECTOR_LIB_DIR . "/Utils/FileSystem.php";
/** * @package CKFinder * @subpackage Core * @copyright CKSource - Frederico Knabben */ class CKFinder_Connector_Core_FolderHandler { /** * CKFinder_Connector_Core_ResourceTypeConfig object * * @var CKFinder_Connector_Core_ResourceTypeConfig * @access private */ var $_resourceTypeConfig; /** * ResourceType name * * @var string * @access private */ var $_resourceTypeName = ""; /** * Client path * * @var string * @access private */ var $_clientPath = "/"; /** * Url * * @var string * @access private */ var $_url; /** * Server path * * @var string * @access private */ var $_serverPath; /** * Thumbnails server path * * @var string * @access private */ var $_thumbsServerPath; /** * ACL mask * * @var int * @access private */ var $_aclMask; /** * Folder info * * @var mixed * @access private */ var $_folderInfo; /** * Thumbnails folder info * * @var mized * @access private */ var $_thumbsFolderInfo;
function CKFinder_Connector_Core_FolderHandler() { if (isset($_GET["type"])) { $this->_resourceTypeName = (string)$_GET["type"]; }
if (isset($_GET["currentFolder"])) { $this->_clientPath = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding((string)$_GET["currentFolder"]); }
if (!strlen($this->_clientPath)) { $this->_clientPath = "/"; } else { if (substr($this->_clientPath, -1, 1) != "/") { $this->_clientPath .= "/"; } if (substr($this->_clientPath, 0, 1) != "/") { $this->_clientPath = "/" . $this->_clientPath; } }
$this->_aclMask = -1; }
/** * Get resource type config * * @return CKFinder_Connector_Core_ResourceTypeConfig * @access public */ function &getResourceTypeConfig() { if (!isset($this->_resourceTypeConfig)) { $_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config"); $this->_resourceTypeConfig = $_config->getResourceTypeConfig($this->_resourceTypeName); }
if (is_null($this->_resourceTypeConfig)) { $connector =& CKFinder_Connector_Core_Factory::getInstance("Core_Connector"); $oErrorHandler =& $connector->getErrorHandler(); $oErrorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_TYPE); }
return $this->_resourceTypeConfig; }
/** * Get resource type name * * @return string * @access public */ function getResourceTypeName() { return $this->_resourceTypeName; }
/** * Get Client path * * @return string * @access public */ function getClientPath() { return $this->_clientPath; }
/** * Get Url * * @return string * @access public */ function getUrl() { if (is_null($this->_url)) { $this->_resourceTypeConfig = $this->getResourceTypeConfig(); if (is_null($this->_resourceTypeConfig)) { $connector =& CKFinder_Connector_Core_Factory::getInstance("Core_Connector"); $oErrorHandler =& $connector->getErrorHandler(); $oErrorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_TYPE); $this->_url = ""; } else { $this->_url = $this->_resourceTypeConfig->getUrl() . ltrim($this->getClientPath(), "/"); } }
return $this->_url; }
/** * Get server path * * @return string * @access public */ function getServerPath() { if (is_null($this->_serverPath)) { $this->_resourceTypeConfig = $this->getResourceTypeConfig(); $this->_serverPath = CKFinder_Connector_Utils_FileSystem::combinePaths($this->_resourceTypeConfig->getDirectory(), ltrim($this->_clientPath, "/")); }
return $this->_serverPath; }
/** * Get server path to thumbnails directory * * @access public * @return string */ function getThumbsServerPath() { if (is_null($this->_thumbsServerPath)) { $this->_resourceTypeConfig = $this->getResourceTypeConfig();
$_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config"); $_thumbnailsConfig = $_config->getThumbnailsConfig();
// Get the resource type directory. $this->_thumbsServerPath = CKFinder_Connector_Utils_FileSystem::combinePaths($_thumbnailsConfig->getDirectory(), $this->_resourceTypeConfig->getName());
// Return the resource type directory combined with the required path. $this->_thumbsServerPath = CKFinder_Connector_Utils_FileSystem::combinePaths($this->_thumbsServerPath, ltrim($this->_clientPath, '/'));
if (!is_dir($this->_thumbsServerPath)) { if(!CKFinder_Connector_Utils_FileSystem::createDirectoryRecursively($this->_thumbsServerPath)) { /** * @todo Ckfinder_Connector_Utils_Xml::raiseError(); perhaps we should return error * */ } } }
return $this->_thumbsServerPath; }
/** * Get ACL Mask * * @return int * @access public */ function getAclMask() { $_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config"); $_aclConfig = $_config->getAccessControlConfig();
if ($this->_aclMask == -1) { $this->_aclMask = $_aclConfig->getComputedMask($this->_resourceTypeName, $this->_clientPath); }
return $this->_aclMask; }
/** * Check ACL * * @access public * @param int $aclToCkeck * @return boolean */ function checkAcl($aclToCkeck) { $aclToCkeck = intval($aclToCkeck);
$maska = $this->getAclMask(); return (($maska & $aclToCkeck) == $aclToCkeck); } }
|