diff options
| -rw-r--r-- | engine/lib/calendar.php | 135 | 
1 files changed, 135 insertions, 0 deletions
| diff --git a/engine/lib/calendar.php b/engine/lib/calendar.php new file mode 100644 index 000000000..a14d10dc3 --- /dev/null +++ b/engine/lib/calendar.php @@ -0,0 +1,135 @@ +<?php + +	/** +	 * Elgg calendar / entity / event functions. +	 *  +	 * @package Elgg +	 * @subpackage Core +	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 +	 * @author Curverider Ltd +	 * @copyright Curverider Ltd 2008 +	 * @link http://elgg.org/ +	 */ + +	/** +	 * Calendar interface for events. +	 * +	 */ +	interface Noteable { +	 +		/** +		 * Calendar functionality. +		 * This function sets the time of an object on a calendar listing. +		 * +		 * @param int $hour If ommitted, now is assumed. +		 * @param int $minute If ommitted, now is assumed. +		 * @param int $second If ommitted, now is assumed. +		 * @param int $day If ommitted, now is assumed. +		 * @param int $month If ommitted, now is assumed. +		 * @param int $year If ommitted, now is assumed. +		 * @param int $duration Duration of event, remainder of the day is assumed. +		 */ +		public function setCalendarTimeAndDuration($hour = NULL, $minute = NULL, $second = NULL, $day = NULL, $month = NULL, $year = NULL, $duration = NULL); +		 +		/** +		 * Return the start timestamp. +		 */ +		public function getCalendarStartTime(); +		 +		/** +		 * Return the end timestamp. +		 */ +		public function getCalendarEndTime(); +	} +	 +	 +	 +	// All of these should either implemented in existing functions (with extra params) or new funcs +		// get entities by time  +		// get entities by metadata +		// get entities by relationship +		 +	// Implement get/set via metadata +	 +	 +	/** +	 * Return a timestamp for the start of a given day (defaults today). +	 * +	 */ +	function get_day_start($day = null, $month = null, $year = null) { return mktime(0,0,0,$month,$day,$year); } +	 +	/** +	 * Return a timestamp for the end of a given day (defaults today). +	 * +	 */ +	function get_day_end($day = null, $month = null, $year = null) { return mktime(23,59,59,$month,$day,$year); } +	 +	/** +	 * Get all entities for today. +	 * +	 * @param string $type The type of entity (eg "user", "object" etc) +	 * @param string $subtype The arbitrary subtype of the entity +	 * @param int $owner_guid The GUID of the owning user +	 * @param string $order_by The field to order by; by default, time_created desc +	 * @param int $limit The number of entities to return; 10 by default +	 * @param int $offset The indexing offset, 0 by default +	 * @param boolean $count Set to true to get a count rather than the entities themselves (limits and offsets don't apply in this context). Defaults to false. +	 * @param int $site_guid The site to get entities for. Leave as 0 (default) for the current site; -1 for all sites. +	 * @param int|array $container_guid The container or containers to get entities from (default: all containers). +	 */ +	function get_todays_entities($type = "", $subtype = "", $owner_guid = 0, $order_by = "", $limit = 10, $offset = 0, $count = false, $site_guid = 0, $container_guid = null) +	{ +		$day_start = get_day_start(); +		$day_end = get_day_end(); +		 +		 +		/// TODO +	} +	 +	/** +	 * Get entities for today from metadata. +	 * +	 * @param mixed $meta_name  +	 * @param mixed $meta_value +	 * @param string $entity_type The type of entity to look for, eg 'site' or 'object' +	 * @param string $entity_subtype The subtype of the entity. +	 * @param int $limit  +	 * @param int $offset +	 * @param string $order_by Optional ordering. +	 * @param int $site_guid The site to get entities for. Leave as 0 (default) for the current site; -1 for all sites. +	 * @param true|false $count If set to true, returns the total number of entities rather than a list. (Default: false) +	 *  +	 * @return int|array A list of entities, or a count if $count is set to true +	 */ +	function get_todays_entities_from_metadata($meta_name, $meta_value = "", $entity_type = "", $entity_subtype = "", $owner_guid = 0, $limit = 10, $offset = 0, $order_by = "", $site_guid = 0, $count = false) +	{ +		$day_start = get_day_start(); +		$day_end = get_day_end(); +		 +		// TODO +	} +	 +	/** +	 * Get entities for today from a relationship +	 * +	 * @param string $relationship The relationship eg "friends_of" +	 * @param int $relationship_guid The guid of the entity to use query +	 * @param bool $inverse_relationship Reverse the normal function of the query to instead say "give me all entities for whome $relationship_guid is a $relationship of" +	 * @param string $type  +	 * @param string $subtype +	 * @param int $owner_guid +	 * @param string $order_by +	 * @param int $limit +	 * @param int $offset +	 * @param boolean $count Set to true if you want to count the number of entities instead (default false) +	 * @param int $site_guid The site to get entities for. Leave as 0 (default) for the current site; -1 for all sites. +	 * @return array|int|false An array of entities, or the number of entities, or false on failure +	 */ +	function get_todays_entities_from_relationship($relationship, $relationship_guid, $inverse_relationship = false, $type = "", $subtype = "", $owner_guid = 0, $order_by = "", $limit = 10, $offset = 0, $count = false, $site_guid = 0) +	{ +		$day_start = get_day_start(); +		$day_end = get_day_end(); +		 +		// TODO +	} +?>
\ No newline at end of file | 
