diff options
Diffstat (limited to 'engine/lib/metadata.php')
| -rw-r--r-- | engine/lib/metadata.php | 59 | 
1 files changed, 59 insertions, 0 deletions
diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index efa82db01..14e141ec4 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -108,6 +108,13 @@  		{   			return delete_metadata($this->id);   		} +		 +		/** +		 * Get a url for this item of metadata. +		 * +		 * @return string +		 */ +		public function getURL() { return get_metadata_url($this->id); }  		// SYSTEM LOG INTERFACE //////////////////////////////////////////////////////////// @@ -726,6 +733,58 @@  		return $valuearray;
 +	} +	 +	/** +	 * Get the URL for this item of metadata, by default this links to the export handler in the current view. +	 * +	 * @param int $id +	 */ +	function get_metadata_url($id) +	{ +		$id = (int)$id; +		 +		global $CONFIG; +		 +		if ($extender = get_metadata($id)) { + +			$view = elgg_get_viewtype();  +			 +			$guid = $extender->entity_guid; +			$type = $extender->type; +			 +			$url = ""; +			 +			/*if (isset($CONFIG->entity_url_handler[$entity->getType()][$entity->getSubType()])) { +				$function =  $CONFIG->entity_url_handler[$entity->getType()][$entity->getSubType()]; +				if (is_callable($function)) { +					$url = $function($entity); +				} +			} +			if (isset($CONFIG->entity_url_handler[$entity->getType()]['all'])) { +				$function =  $CONFIG->entity_url_handler[$entity->getType()]['all']; +				if (is_callable($function)) { +					$url = $function($entity); +				} +			} +			if (isset($CONFIG->entity_url_handler['all']['all'])) { +				$function =  $CONFIG->entity_url_handler['all']['all']; +				if (is_callable($function)) { +					$url = $function($entity); +				} +			}*/ +			 + +			if ($url == "") { +				$nameid = $extender->id; +				if ($type == 'volatile') +					$nameid== $extender->name; +				$url = $CONFIG->wwwroot  . "$view/$guid/$type/$nameid/"; +			}  +			return $url; +			 +		}  +		return false;  	}
  	/** Register the hook */  | 
