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

📄 customfields.class.php

📁 一个用PHP编写的
💻 PHP
字号:
<?php	lt_include( PLOG_CLASS_PATH."class/dao/model.class.php" );	lt_include( PLOG_CLASS_PATH."class/dao/customfields/customfield.class.php" );	lt_include( PLOG_CLASS_PATH."class/dao/customfields/customfieldsvalues.class.php" );	lt_include( PLOG_CLASS_PATH."class/dao/daocacheconstants.properties.php" );			/**	 * different custom field types available	 *	 * \ingroup DAO	 */	define( "CUSTOM_FIELD_TEXTBOX", 1 );	define( "CUSTOM_FIELD_TEXTAREA", 2 );	define( "CUSTOM_FIELD_CHECKBOX", 3 );	define( "CUSTOM_FIELD_DATE", 4 );	define( "CUSTOM_FIELD_LIST", 5 );	define( "CUSTOM_FIELD_MULTILIST", 6 );		/**     * Model for the custom fields     */	class CustomFields extends Model 	{			function CustomFields()		{			$this->Model();			$this->table = $this->getPrefix()."custom_fields_definition";		}				/**		 * returns a custom field given its id		 *		 * @param id The id of the custom field		 * @return A CustomField object with information about the custom field		 */		function getCustomField( $id )		{			return( $this->get( "id", $id, CACHE_CUSTOMFIELDS ));		}		/**		 * returns a custom field given its name and the blog where it belongs		 *		 * @param blogId The id of the blog where this field belongs		 * @param fieldName The name of the custom field		 * @return A CustomField object with information about the custom field		 */				function getCustomFieldByName( $blogId, $fieldName )		{			$blogFields = $this->getMany( "blog_id", 			                              $blogId, 			                              CACHE_CUSTOMFIELDS_BLOG,			                              Array( CACHE_CUSTOMFIELDS => "getId" ),										  Array( "field_name" => "ASC" ));			if( !$blogFields )				return false;			foreach( $blogFields as $field ) {				if( $field->getName() == $fieldName ) {					// we can return right away, no need to bother...					return( $field );				}			}		}				/**		 * returns all the custom fields defined in a blog		 *		 * @param blogId The id of the blog		 * @param includeHidden Whether to return the fields that have been marked as		 * hidden or not.		 * @param page		 * @param itemsPerPage		 * @return An array of CustomField objects with information about the different		 * custom fields defined.		 */		function getBlogCustomFields( $blogId, $includeHidden = true, $page = -1, $itemsPerPage = 15 )		{			$blogFields = $this->getMany( "blog_id",			                              $blogId,			                              CACHE_CUSTOMFIELDS_BLOG,			                              Array( CACHE_CUSTOMFIELDS => "getId" ),										  Array( "field_name" => "ASC" ),										  "",			                              $page, 			                              $itemsPerPage );			                              			if( !$blogFields )				return( Array());			                          			// if we have to include the hidden fields, we can return the whole array as 			// those are already there			if( $includeHidden )				return( $blogFields );			                          			// if not, filter out the non-hidden			$result = Array();			foreach( $blogFields as $field ) {				if( !$field->isHidden())					$result[] = $field;			}						return( $result );		}		/** 		 * returns the number of custom fields defined for the blog		 *		 * @param blogId		 * @param includeHidden		 */		function getNumBlogCustomFields( $blogId, $includeHidden = true )		{			return( count( $this->getBlogCustomFields( $blogId, $includeHidden )));		}				/**		 * adds a custom field to the database		 *		 * @param field A CustomField object		 * @return True if successful or false otherwise.		 */		function addCustomField( &$field )		{					// does the field already exist?			$existingField = $this->getCustomFieldByName( $field->getBlogId(), $field->getName());			if( $existingField ) // it already exists, we cannot add it!				return false;							if( $result = $this->add( $field )) {				// clean the caches				$this->_cache->removeData( $field->getId(), CACHE_CUSTOMFIELDS );				$this->_cache->removeData( $field->getBlogId(), CACHE_CUSTOMFIELDS_BLOG );			}			return( $result );		}				/**		 * removes a custom field, but also all the values that have been created		 * based on this field and that have been assigned to different articles.		 * Otherwise, we would have data which is not linked to any article... but if still		 * needed, set the second parameter to false		 *		 * @param id		 * @param deleteValues		 * @return Returns true if successful or false otherwise		 */		function removeCustomField( $id, $deleteValues = true )		{			$field = $this->getCustomField( $id );						if( !$field )				return false;						if( !$this->delete( "id", $id ))				return false;							// clean the caches			$this->_cache->removeData( $field->getId(), CACHE_CUSTOMFIELDS );			$this->_cache->removeData( $field->getBlogId(), CACHE_CUSTOMFIELDS_BLOG );							if( !$deleteValues )				return true;						// remove the values that were associated to this field			$fieldValues = new CustomFieldsValues();			return( $fieldValues->removeCustomFieldValues( $id ));		}				/**		 * update a field in the database		 *		 * @param field		 * @return True if successful or false otherwise		 */		function updateCustomField( $field )		{			if( ($result = $this->update( $field ))) {				// clean the caches				$this->_cache->removeData( $field->getId(), CACHE_CUSTOMFIELDS );				$this->_cache->removeData( $field->getBlogId(), CACHE_CUSTOMFIELDS_BLOG );			}			return( $result );		}				/**		 * @private		 */		function mapRow( $row )		{			$field = new CustomField( $row["field_name"],			                          $row["field_description"],					 				  $row["field_type"],					   				  $row["blog_id"],									  $row["hidden"],									  $row["searchable"],									  $row["id"] );			// set the field with the possible values, but check first if it can be unserialized before we get an error			!isset( $row["field_values"] ) ? $values = Array() : $values = unserialize( $row["field_values"] );									$field->setFieldValues( $values );									  			return $field;		}	}?>

⌨️ 快捷键说明

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