diff --git a/include/items.php b/include/items.php index ec4c986a18..f2ee2311b7 100644 --- a/include/items.php +++ b/include/items.php @@ -534,6 +534,7 @@ function item_store($arr, $force_parent = false, $notify = false, $dontcache = f } // Converting the plink + /// @todo Check if this is really still needed if ($arr['network'] == NETWORK_OSTATUS) { if (isset($arr['plink'])) { $arr['plink'] = ostatus::convert_href($arr['plink']); diff --git a/include/ostatus.php b/include/ostatus.php index c13a466ed4..02bd2f4475 100644 --- a/include/ostatus.php +++ b/include/ostatus.php @@ -796,6 +796,36 @@ class ostatus { return $link_data; } +/** + * @brief Create an url out of an uri + * + * @param string $href URI in the format "parameter1:parameter1:..." + * + * @return string URL in the format http(s)://.... + */ + public static function convert_href($href) { + $elements = explode(":",$href); + + if ((count($elements) <= 2) || ($elements[0] != "tag")) + return $href; + + $server = explode(",", $elements[1]); + $conversation = explode("=", $elements[2]); + + if ((count($elements) == 4) && ($elements[2] == "post")) + return "http://".$server[0]."/notice/".$elements[3]; + + if ((count($conversation) != 2) || ($conversation[1] =="")) { + return $href; + } + if ($elements[3] == "objectType=thread") { + return "http://".$server[0]."/conversation/".$conversation[1]; + } else { + return "http://".$server[0]."/notice/".$conversation[1]; + } + return $href; + } + /** * @brief Checks if the current post is a reshare *