]> git.mxchange.org Git - friendica.git/commitdiff
wall to wall detection: fallback using @ tags, and check if one is a forum.
authorDomovoy <domovoy@errlock.org>
Fri, 24 Aug 2012 03:21:08 +0000 (05:21 +0200)
committerDomovoy <domovoy@errlock.org>
Fri, 24 Aug 2012 03:21:08 +0000 (05:21 +0200)
object/Item.php

index a8676260c999ac30552f1c759794a1e5df483ce8..120497b365f7d1234f36e8df607f1fa7d8b4af9b 100644 (file)
@@ -590,7 +590,33 @@ class Item extends BaseObject {
                }
 
                if(!$this->wall_to_wall) {
-                       // Definitely not wall to wall
+                       // Fallback, check if can find a @ tag
+                       $tags = $this->get_data_value('tag');
+                       if(strpos($tags, '@[url') !== FALSE) {
+                               // We have at least one @ tag
+                               $matches = array();
+                               preg_match_all('/\@\[url=([^\]]+)\]([^\[]+)\[\/url\]/', $tags, $matches, PREG_SET_ORDER);
+
+                               $r = null;
+                               foreach($matches as $wall) {
+                                       $uri = $wall[1];
+                                       $r = q("SELECT `url`,`name`,`photo`,`forum` FROM `contact` WHERE `url`='%s' LIMIT 1",
+                                               dbesc($uri)
+                                       );
+
+                                       if(count($r) && (intval($r[0]['forum']) == 1)) {
+                                               $this->owner_url = zrl($r[0]['url']);
+                                               $this->owner_name = $r[0]['name'];
+                                               $this->owner_photo = $r[0]['photo'];
+                                               $this->wall_to_wall = true;
+                                               $this->set_template('wall2wall');
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               if(!$this->wall_to_wall) {
                        $this->set_template('wall');
                        $this->owner_url = '';
                        $this->owner_photo = '';