⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 document.class

📁 GForge 3.0 协作开发平台 支持CVS, mailing lists, bug tracking, message boards/forums, task management, perman
💻 CLASS
字号:
<?php/** * GForge Doc Mgr Facility * * Copyright 2002 GForge, LLC * http://gforge.org/ * * @version   $Id: Document.class,v 1.9 2003/02/12 17:23:46 bigdisk Exp $ * * This file is part of GForge. * * GForge is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. *  * GForge is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GForge; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//*	Document Manager	by Quentin Cregan, SourceForge 06/2000	Complete OO rewrite by Tim Perdue 1/2003*/require_once('common/include/Error.class');class Document extends Error {	/**	 * Associative array of data from db.	 *	 * @var	 array   $data_array.	 */	var $data_array;	/**	 * The Group object.	 *	 * @var	 object  $Group.	 */	var $Group; //group object	/**	 *  Constructor.	 *	 *	@param	object	The Group object to which this document is associated.	 *  @param  int	 The docid.	 *  @param  array	The associative array of data.	 *	@return	boolean	success.	 */	function Document(&$Group, $docid=false, $arr=false) {		$this->Error();		if (!$Group || !is_object($Group)) {			$this->setNotValidGroupObjectError();			return false;		}		if ($Group->isError()) {			$this->setError('Document:: '.$Group->getErrorMessage());			return false;		}		$this->Group =& $Group;		if ($docid) {			if (!$arr || !is_array($arr)) {				if (!$this->fetchData($docid)) {					return false;				}			} else {				$this->data_array =& $arr;				if ($this->data_array['group_id'] != $this->Group->getID()) {					$this->setError('Group_id in db result does not match Group Object');					$this->data_array = null;					return false;				}			}			if (!$this->isPublic()) {				$perm =& $this->Group->getPermission( session_get_user() );				if (!$perm || !is_object($perm) || !$perm->isMember()) {					$this->setPermissionDeniedError();					$this->data_array = null;					return false;				}			}		}		return true;	}	/**	 *	create - use this function to create a new entry in the database.	 *	 *	@param	string	The filename of this document.	 *	@param	string	The filetype of this document.	 *	@param	string	The contents of this document (should be addslashes()'d before entry).	 *	@param	int	The doc_group id of the doc_groups table.	 *	@param	string	The title of this document.	 *	@param	int	The language id of the supported_languages table.	 *	@param	string	The description of this document.	 *	@return	boolean	success.	 */	function create($filename,$filetype,$data,$doc_group,$title,$language_id,$description) {		global $Language;		if (strlen($title) < 5) {			$this->setError($Language->getText('docman_common','error_min_title_length'));			return false;		}		if (strlen($description) < 10) {			$this->setError($Language->getText('docman_common','error_min_desc_length'));			return false;		}/*		$perm =& $this->Group->getPermission( session_get_user() );		if (!$perm || !is_object($perm) || !$perm->isDocEditor()) {			$this->setPermissionDeniedError();			return false;		}*/		$user_id = ((session_loggedin()) ? user_getid() : 100);		$sql="INSERT INTO doc_data (group_id,title,description,createdate,doc_group,			stateid,language_id,filename,filetype,data,created_by)			VALUES ('".$this->Group->getId()."',			'". htmlspecialchars($title) ."',			'". htmlspecialchars($description) ."',			'". time() ."',			'$doc_group',			'3',			'$language_id',			'$filename',			'$filetype',			'". base64_encode(stripslashes($data)) ."',			'$user_id')";		db_begin();		$result=db_query($sql);		if (!$result) {			$this->setError('Error Adding Document: '.db_error());			db_rollback();			return false;		}		$docid=db_insertid($result,'doc_data','docid');		if (!$this->fetchData($docid)) {			db_rollback();			return false;		}		$this->sendNotice(true);		db_commit();		return true;	}	/**	 *  fetchData() - re-fetch the data for this document from the database.	 *	 *  @param  int	 The document id.	 *	@return	boolean	success	 */	function fetchData($docid) {		global $Language;		$res=db_query("SELECT * FROM docdata_vw			WHERE docid='$docid'			AND group_id='". $this->Group->getID() ."'");		if (!$res || db_numrows($res) < 1) {			$this->setError($Language->getText('docman_common_doc','invalid_docid'));			return false;		}		$this->data_array =& db_fetch_array($res);		db_free_result($res);		return true;	}	/**	 *	getGroup - get the Group object this Document is associated with.	 *	 *	@return	Object	The Group object.	 */	function &getGroup() {		return $this->Group;	}	/**	 *	getID - get this docid.	 *	 *	@return	int	The docid.	 */	function getID() {		return $this->data_array['docid'];	}	/**	 *	getName - get the name of this document.	 *	 *	@return string	The name of this document.	 */	function getName() {		return $this->data_array['title'];	}	/**	 *	getDescription - the description of this document.	 *	 *	@return string	The description.	 */	function getDescription() {		return $this->data_array['description'];	}	/**	 *	isPublic - whether this document is available to the general public.	 *	 *	@return	boolean	is_public.	 */	function isPublic() {		return (($this->data_array['stateid'] == 1) ? true  : false);	}	/**	 *	getStateID - get this stateid.	 *	 *	@return	int	The stateid.	 */	function getStateID() {		return $this->data_array['stateid'];	}	/**	 *	getStateName - the statename of this document.	 *	 *	@return string	The statename.	 */	function getStateName() {		return $this->data_array['state_name'];	}	/**	 *	getLanguageID - get this language_id.	 *	 *	@return	int	The language_id.	 */	function getLanguageID() {		return $this->data_array['language_id'];	}	/**	 *	getLanguageName - the language_name of this document.	 *	 *	@return string	The language_name.	 */	function getLanguageName() {		return $this->data_array['language_name'];	}	/**	 *	getDocGroupID - get this doc_group_id.	 *	 *	@return	int	The doc_group_id.	 */	function getDocGroupID() {		return $this->data_array['doc_group'];	}	/**	 *	getDocGroupName - the doc_group_name of this document.	 *	 *	@return string	The docgroupname.	 */	function getDocGroupName() {		return $this->data_array['group_name'];	}	/**	 *	getCreatorID - get this creator's user_id.	 *	 *	@return	int	The user_id.	 */	function getCreatorID() {		return $this->data_array['created_by'];	}	/**	 *	getCreatorUserName - the unix name of the person who created this document.	 *	 *	@return string	The unix name of the creator.	 */	function getCreatorUserName() {		return $this->data_array['user_name'];	}	/**	 *	getCreatorRealName - the real name of the person who created this document.	 *	 *	@return string	The real name of the creator.	 */	function getCreatorRealName() {		return $this->data_array['realname'];	}	/**	 *	getCreatorEmail - the email of the person who created this document.	 *	 *	@return string	The email of the creator.	 */	function getCreatorEmail() {		return $this->data_array['email'];	}	/**	 *	getFileName - the filename of this document.	 *	 *	@return string	The filename.	 */	function getFileName() {		return $this->data_array['filename'];	}	/**	 *	getFileType - the filetype of this document.	 *	 *	@return string	The filetype.	 */	function getFileType() {		return $this->data_array['filetype'];	}	/**	 *	getFileData - the filedata of this document.	 *	 *	@return string	The filedata.	 */	function getFileData() {		//		//	Because this could be a large string, we only fetch if we actually need it		//		$res=db_query("SELECT data FROM doc_data WHERE docid='".$this->getID()."'");		return base64_decode(db_result($res,0,'data'));	}	/**	 *	update - use this function to update an existing entry in the database.	 *	 *	@param	string	The filename of this document.	 *	@param	string	The filetype of this document.	 *	@param	string	The contents of this document (should be addslashes()'d before entry).	 *	@param	int	The doc_group id of the doc_groups table.	 *	@param	string	The title of this document.	 *	@param	int	The language id of the supported_languages table.	 *	@param	string	The description of this document.	 *	@param	int	The state id of the doc_states table.	 *	@return	boolean	success.	 */	function update($filename,$filetype,$data,$doc_group,$title,$language_id,$description,$stateid) {		global $Language;		if (strlen($title) < 5) {			$this->setError($Language->getText('docman_common','error_min_title_length'));			return false;		}		if (strlen($description) < 10) {			$this->setError($Language->getText('docman_common','error_min_desc_length'));			return false;		}		$perm =& $this->Group->getPermission( session_get_user() );		if (!$perm || !is_object($perm) || !$perm->isDocEditor()) {			$this->setPermissionDeniedError();			return false;		}		if ($data) {			$datastr="data='". base64_encode(stripslashes($data)) ."',";		}		$res=db_query("UPDATE doc_data SET			title='". htmlspecialchars($title) ."',			description='". htmlspecialchars($description) ."',			stateid='$stateid',			doc_group='$doc_group',			filetype='$filetype',			filename='$filename',			$datastr			language_id='$language_id',			updatedate='". time() ."'			WHERE group_id='".$this->Group->getID()."'			AND docid='".$this->getID()."'");		if (!$res || db_affected_rows($res) < 1) {			$this->setOnUpdateError(db_error());			return false;		}		$this->sendNotice(false);		return true;	}	function sendNotice ($true=true) {		return true;	}}?>

⌨️ 快捷键说明

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