]> git.mxchange.org Git - friendica.git/commitdiff
don't link tags enclosed inside Diaspora links
authorfriendica <info@friendica.com>
Tue, 7 Feb 2012 10:16:28 +0000 (02:16 -0800)
committerfriendica <info@friendica.com>
Tue, 7 Feb 2012 10:16:28 +0000 (02:16 -0800)
include/diaspora.php

index cded389c38a82fcf03c0b0a1090e1ab032ed97c0..2a4c8b9da4b9c3f03204d07315ffc67d760aba02 100755 (executable)
@@ -673,6 +673,14 @@ function diaspora_post($importer,$xml) {
                        if(strpos($tag,'#') === 0) {
                                if(strpos($tag,'[url='))
                                        continue;
+
+                               // don't link tags that are already embedded in links
+
+                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                                       continue;
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                                       continue;
+
                                $basetag = str_replace('_',' ',substr($tag,1));
                                $body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body);
                                if(strlen($str_tags))
@@ -830,6 +838,15 @@ function diaspora_reshare($importer,$xml) {
                        if(strpos($tag,'#') === 0) {
                                if(strpos($tag,'[url='))
                                        continue;
+
+                               // don't link tags that are already embedded in links
+
+                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                                       continue;
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                                       continue;
+
+
                                $basetag = str_replace('_',' ',substr($tag,1));
                                $body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body);
                                if(strlen($str_tags))
@@ -1062,6 +1079,15 @@ function diaspora_comment($importer,$xml,$msg) {
                        if(strpos($tag,'#') === 0) {
                                if(strpos($tag,'[url='))
                                        continue;
+
+                               // don't link tags that are already embedded in links
+
+                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                                       continue;
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                                       continue;
+
+
                                $basetag = str_replace('_',' ',substr($tag,1));
                                $body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body);
                                if(strlen($str_tags))