From 2ffe0d0b1d9589b6b37d8ade0114caef31339001 Mon Sep 17 00:00:00 2001 From: Friendika Date: Wed, 19 Jan 2011 19:51:34 -0800 Subject: [PATCH] do a better job of comparing same URLs. --- boot.php | 19 +++++++++++++++++++ mod/display.php | 4 ++-- mod/network.php | 6 +++--- mod/profile.php | 4 ++-- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/boot.php b/boot.php index d458b864..05b33abd 100644 --- a/boot.php +++ b/boot.php @@ -2191,3 +2191,22 @@ function get_birthdays() { }} +/** + * + * Compare two URLs to see if they are the same, but ignore + * slight but hopefully insignificant differences such as if one + * is https and the other isn't, or if one is www.something and + * the other isn't - and also ignore case differences. + * + * Return true if the URLs match, otherwise false. + * + */ + +if(! function_exists('link_compare')) { +function link_compare($a,$b) { + $a1 = str_replace(array('https:','//www.'), array('http:','//'), $a); + $b1 = str_replace(array('https:','//www.'), array('http:','//'), $b); + if(strcasecmp($a1,$b1) === 0) + return true; + return false; +}} diff --git a/mod/display.php b/mod/display.php index 0e576883..de11ec35 100644 --- a/mod/display.php +++ b/mod/display.php @@ -202,7 +202,7 @@ function display_content(&$a) { $template = $wallwall; $commentww = 'ww'; // If it is our contact, use a friendly redirect link - if(($item['owner-link'] == $item['url']) && ($item['network'] === 'dfrn')) { + if((link_compare($item['owner-link'],$item['url'])) && ($item['network'] === 'dfrn')) { $owner_url = $redirect_url; $osparkle = ' sparkle'; } @@ -211,7 +211,7 @@ function display_content(&$a) { } } - $diff_author = (($item['url'] !== $item['author-link']) ? true : false); + $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $item['thumb']); diff --git a/mod/network.php b/mod/network.php index d094febc..aa42e2f5 100644 --- a/mod/network.php +++ b/mod/network.php @@ -303,7 +303,7 @@ function network_content(&$a, $update = 0) { $template = $wallwall; $commentww = 'ww'; // If it is our contact, use a friendly redirect link - if(($item['owner-link'] == $item['url']) + if((link_compare($item['owner-link'],$item['url'])) && ($item['network'] === 'dfrn')) { $owner_url = $redirect_url; $osparkle = ' sparkle'; @@ -350,7 +350,7 @@ function network_content(&$a, $update = 0) { // Post was remotely authored. - $diff_author = (($item['url'] !== $item['author-link']) ? true : false); + $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $thumb); @@ -361,7 +361,7 @@ function network_content(&$a, $update = 0) { // Can we use our special contact URL for this author? if(strlen($item['author-link'])) { - if($item['author-link'] == $item['url'] && ($item['network'] === 'dfrn') && (! $item['self'])) { + if((link_compare($item['author-link'],$item['url'])) && ($item['network'] === 'dfrn') && (! $item['self'])) { $profile_link = $redirect_url; $sparkle = ' sparkle'; } diff --git a/mod/profile.php b/mod/profile.php index bcd2b64e..93637936 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -297,7 +297,7 @@ function profile_content(&$a, $update = 0) { $profile_url = $item['url']; - // This is my profile but I'm not the author of this post/comment. If it's somebody that's a fan or mutual friend, + // This is my profile page but I'm not the author of this post/comment. If it's somebody that's a fan or mutual friend, // I can go directly to their profile as an authenticated guest. if(local_user() && ($item['contact-uid'] == $_SESSION['uid']) @@ -314,7 +314,7 @@ function profile_content(&$a, $update = 0) { // local contact info at all. In this module you should never encounter a third-party author, but we still will do // the right thing if you ever do. - $diff_author = (($item['url'] !== $item['author-link']) ? true : false); + $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $item['thumb']);