From 942539d2865be193f93dd44c9c0ee44f25fbc70b Mon Sep 17 00:00:00 2001 From: marcus Date: Wed, 30 Jul 2008 11:45:12 +0000 Subject: Extender getURL() support (no overide as of yet) git-svn-id: https://code.elgg.org/elgg/trunk@1591 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/annotations.php | 61 +++++++++++++++++++++++++++++++++++++++++++++- engine/lib/extender.php | 7 ++++++ engine/lib/metadata.php | 59 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+), 1 deletion(-) (limited to 'engine/lib') diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index b79a94273..255e8a9b0 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -98,7 +98,14 @@ function delete() { return delete_annotation($this->id); - } + } + + /** + * Get a url for this annotation. + * + * @return string + */ + public function getURL() { return get_annotation_url($this->guid); } // SYSTEM LOG INTERFACE //////////////////////////////////////////////////////////// @@ -665,6 +672,58 @@ } return $returnvalue; + } + + /** + * 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_annotation_url($id) + { + $id = (int)$id; + + global $CONFIG; + + if ($extender = get_annotation($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 */ diff --git a/engine/lib/extender.php b/engine/lib/extender.php index 85908d62a..8af18c38c 100644 --- a/engine/lib/extender.php +++ b/engine/lib/extender.php @@ -113,6 +113,13 @@ return can_edit_extender($this->id,$this->type,$user_guid); } + /** + * Return a url for this extender. + * + * @return string + */ + public abstract function getURL(); + // EXPORTABLE INTERFACE //////////////////////////////////////////////////////////// /** 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 */ -- cgit v1.2.3