diff --git a/classes/hypeJunction/Discovery/Discovery.php b/classes/hypeJunction/Discovery/Discovery.php index 2aae9cf..5bb0934 100644 --- a/classes/hypeJunction/Discovery/Discovery.php +++ b/classes/hypeJunction/Discovery/Discovery.php @@ -19,7 +19,9 @@ public static function prepareAlternateLinks($hook, $type, $return, $params) { $ia = elgg_set_ignore_access(true); - $entity = get_entity_from_url(current_page_url()); + $segments = _elgg_services()->request->getUrlSegments(); + $url = elgg_normalize_url(implode('/', $segments)); + $entity = get_entity_from_url($url); if (is_embeddable($entity)) { $return['links']['json+oembed'] = array( @@ -55,7 +57,9 @@ public static function prepareAlternateLinks($hook, $type, $return, $params) { */ public static function prepareMetas($hook, $type, $return, $params) { - $metatags = get_discovery_metatags(current_page_url()); + $segments = _elgg_services()->request->getUrlSegments(); + $url = elgg_normalize_url(implode('/', $segments)); + $metatags = get_discovery_metatags($url); if (empty($metatags)) { return; diff --git a/classes/hypeJunction/Discovery/Menus.php b/classes/hypeJunction/Discovery/Menus.php index 7b0c429..04dc6b6 100644 --- a/classes/hypeJunction/Discovery/Menus.php +++ b/classes/hypeJunction/Discovery/Menus.php @@ -79,7 +79,9 @@ public static function entityMenuSetup($hook, $type, $return, $params) { */ public static function extrasMenuSetup($hook, $type, $return, $params) { - $entity = get_entity_from_url(current_page_url()); + $segments = _elgg_services()->request->getUrlSegments(); + $url = elgg_normalize_url(implode('/', $segments)); + $entity = get_entity_from_url($url); if (!is_discoverable($entity)) { return; } diff --git a/classes/hypeJunction/Discovery/Router.php b/classes/hypeJunction/Discovery/Router.php index fdddcc8..d2059ce 100644 --- a/classes/hypeJunction/Discovery/Router.php +++ b/classes/hypeJunction/Discovery/Router.php @@ -271,7 +271,10 @@ public static function servicesRoute($hook, $type, $return, $params) { public static function redirectErrorToPermalink($hook, $type, $return, $params) { $ia = elgg_set_ignore_access(true); - $entity = get_entity_from_url(current_page_url()); + + $segments = _elgg_services()->request->getUrlSegments(); + $url = elgg_normalize_url(implode('/', $segments)); + $entity = get_entity_from_url($url); if (is_discoverable($entity)) { $return = get_entity_permalink($entity); diff --git a/lib/functions.php b/lib/functions.php index bad2047..1329ae1 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -141,7 +141,9 @@ function get_share_action_url($provider, $guid = 0, $referrer = '') { function get_provider_url($provider, $entity = null, $referrer = '') { if (!elgg_instanceof($entity)) { - $permalink = ($referrer) ? $referrer : current_page_url(); + $segments = _elgg_services()->request->getUrlSegments(); + $url = elgg_normalize_url(implode('/', $segments)); + $permalink = ($referrer) ? $referrer : $url; $guid = get_guid_from_url($permalink); if ($guid) { $entity = get_entity($guid);