folder.inc.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 606 行 · 第 1/2 页

SVN-BASE
606
字号
		$sTable = KTUtil::getTableName('documents');		$aQuery = array("SELECT id FROM {$sTable} WHERE folder_id = ? AND status_id = ?", array($iFolderID, LIVE));		$res = DBUtil::getResultArrayKey($aQuery,'id');		if (PEAR::isError($res)) {		    return $res;		}		return implode(',', $res);    }    function &get($iFolderID) {        return KTEntityUtil::get('Folder', $iFolderID);    }	/**	 * Checks if a folder with the same name and parent exists in the database already	 */	function exists() {        $sTable = KTUtil::getTableName('folders');        $sQuery = "SELECT count(*) as folder_count FROM $sTable WHERE name = ? AND parent_id = ?";/*ok*/        $aParams = array($this->sName, $this->iParentID);        $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'folder_count');        if (PEAR::isError($res)) {            return false; // return $res        }        return ($res != 0); // handle pre-existing duplicates gracefully.	}	/**	 * Checks if this folder is a symbolic link	 *	 * @return boolean	 */	function isSymbolicLink()    {        return !is_null($this->getLinkedFolderId());    }    /**     * Retrieves the folder this folder links to, if any.     *     * @return Folder     */    function getLinkedFolder(){    	if($this->isSymbolicLink()){    		return Folder::get($this->getLinkedFolderId());    	}    }    /**     * Returns the "Symbolic link" folder     *     * @return Folder the folder     */	function getRealFolder(){		if (is_null($this->getLinkedFolderId()))        {            return Folder::get($this->getId());        }        $oFolder = Folder::get($this->getLinkedFolderId());        return $oFolder->getRealFolder();	}	/**	 * Returns the ID of the "Symbolic link" folder	 *	 * @return int the ID	 */	function getRealFolderId(){    	$oRealFolder = $this->getRealFolder();    	return $oRealFolder->getId();    }    /**     * Returns the symbolic links linking to this folder     *     * @return Array array with folder IDs     */    function getSymbolicLinks(){    	$sQuery = 'SELECT * FROM folders ' .				'WHERE folders.linked_folder_id =  '.$this->getId();    	return DButil::getResultArray($sQuery);    }	/**    * Static function    * Get a list of Documents    *    * @param  String  Where clause (not required)    *    * @return Array array of Documents objects, false otherwise and set $_SESSION["errorMessage"]    */    function getList($sWhereClause = null, $aOptions = null) {        return KTEntityUtil::getList2('Folder', $sWhereClause, $aOptions);    }	/**	* Static function.	* Get the full path for a folder	*	* @param 	Primary key of folder to generate path for	*	* @return String full path of folder	*/	function getFolderPath($iFolderID) {		global $default;		$oFolder = Folder::get($iFolderID);		$sPath = $default->documentRoot . "/" . $oFolder->getFullPath() . "/" . $oFolder->getName() . "/";		return $sPath;	}	/**     * Static function.     * Get the full path for a folder as an array     *     * @param int primary key of folder to generate path for     *     * @return array full path of folder as an array of folderIDs     */    function getFolderPathNamesAsArray($iFolderID) {		global $default;		$oFolder = Folder::get($iFolderID);		$aPathArray = array();		if ($oFolder) {			if (strlen($oFolder->getFullPath()) > 0) {				if (strlen($oFolder->getFullPath()) > 1) {					$aPathArray = explode("/",$oFolder->getFullPath());				} else {					$aPathArray = array($oFolder->getFullPath());				}				//$aPathArray[count($aPathArray)] = $oFolder->getName();			} else {				$aPathArray = array($oFolder->getName());			}		}		return $aPathArray;    }    // {{{    function getPathArray() {        return Folder::getFolderPathNamesAsArray($this->getID());    }    // }}}	/**     * Static function.     * Get the full path for a folder as an array     *     * @param int primary key of folder to generate path for     *     * @return array full path of folder as an array of folderIDs     */    function getFolderPathAsArray($iFolderID) {		global $default;		$oFolder = Folder::get($iFolderID);        if ($oFolder === false) {            return false;        }		if (strlen($oFolder->getParentFolderIDs()) > 0) {            if ($oFolder->iParentID == 0) {                $aPathArray = array();            } else if (strlen($oFolder->getParentFolderIDs()) > 1) {				$aPathArray = explode(",",$oFolder->getParentFolderIDs());			} else {				$aPathArray = array($oFolder->getParentFolderIDs());			}			$aPathArray[count($aPathArray)] = $oFolder->getID();		} else {			$aPathArray = array($oFolder->getID());		}		return $aPathArray;    }	/**	* Static function.	* Get the path for a folder that will be displated to the user	*	* @param 	Primary key of folder to generate path for	*	* @return String full path of folder	*/	function getFolderDisplayPath($iFolderID) {		global $default;        $aPathNamesArray = Folder::getFolderPathNamesAsArray($iFolderID);        foreach($aPathNamesArray as $k=>$v)        {            $aPathNamesArray[$k] = sanitizeForHTML($v);        }        if (count($aPathNamesArray) > 0) {        	return implode(" » ", $aPathNamesArray);        } else {        	return "";        }	}	/**	* Static function	* Get the primary key of the parent folder	*	* @param $iFolderID		Primary key of folder to get parent for	*	* @return integer primary key of parent folder	*/	function getParentFolderID($iFolderID) {		if ($iFolderID != 0) {		    $oFolder = Folder::get($iFolderID);			return $oFolder->getParentFolderID();		}		return 0;	}	/**	* Static function	* Checks if a given folder already exists using the folder name	*	* @param $sName			Name of folder	* @param $iParentID		Primary key of parent folder	*	* @return	true if the folder exists, false otherwise and set $_SESSION["errorMessage"]	*/	function folderExistsName($sName, $iParentID) {        $sQuery = "SELECT id, name FROM " . KTUtil::getTableName('folders') . " WHERE name = ? AND parent_id = ?";/*ok*/        $aParams = array($sName, $iParentID);		$res = DBUtil::getResultArray(array($sQuery, $aParams));		//var_dump($res);		if (count($res) != 0) {		    // mysql is case-insensitive - check using php		    foreach ($res as $folder){    		    $name = isset($folder['name']) ? $folder['name'] : '';    		    if($name == $sName){    		        return true;    		    }		    }			return false;		}		return false;	}	/**	* Checks if a given folder already exists using the folder name	*	* @param $iFolderID			Primary key of folder	*	* @return	true if the folder exists, false otherwise and set $_SESSION["errorMessage"]	*/	function folderExistsID($iFolderID) {		$oFolder = Folder::get($iFolderID);		if (PEAR::isError($oFolder)) {		    return false; // no such folder, or bad ID		} else {		    return true;		}	}	/**	* Get the folder name using the primary key	*	* @param int primary key of folder to get name for	*	* @return String name on success, false otherwise and set $_SESSION["errorMessage"]	*/	function getFolderName($iFolderID) {		$oFolder = Folder::get($iFolderID);		if (PEAR::isError($oFolder)) {		    return false; // return $oFolder;		} else {		    return $oFolder->getName();		}	}    function getByParentIDAndLookupID($iParentID, $iLookupID) {        return KTEntityUtil::getByDict('Folder', array(            'parent_id' => $iParentID,            'permission_lookup_id' => $iLookupID,        ), array('multi' => true));    }	function getByParentId($iParentID) {	    return KTEntityUtil::getByDict('Folder', array(            'parent_id' => $iParentID,        ), array('multi' => true));	}    // STATIC    function &createFromArray($aOptions) {        return KTEntityUtil::createFromArray('Folder', $aOptions);    }    function clearAllCaches() {    	$GLOBALS["_OBJECTCACHE"]['Folder'] = array();        return KTEntityUtil::clearAllCaches('Folder');    }}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?