From 8a25c7876c3ae92137ff635fd3d4da3d9f73c2c0 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Fri, 24 Aug 2012 04:36:03 +0200 Subject: [PATCH] Better wall to wall detection (fallback on checking if we have a @ tag) --- include/conversation.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/include/conversation.php b/include/conversation.php index 0b091571f..56446d96d 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -490,6 +490,41 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $owner_url = zrl($owner_url); } } + if($commentww != 'ww') { + // Fallback, check if can find a @ tag + $tags = $item['tag']; + if(strpos($tags, '@[url') !== FALSE) { + // We have at least one @ tag + $template = $wallwall_template; + $commentww = 'ww'; + + $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` FROM `contact` WHERE `url`='%s' LIMIT 1", + dbesc($uri) + ); + + if(count($r)) { + $owner_url = zrl($r[0]['url']); + $owner_name = $r[0]['name']; + $owner_photo = $r[0]['photo']; + break; + } + } + + if($commentww != 'ww') { + // We found no matching contact in the database, just do the best we can (we'll only miss the photo) + $this->owner_url = zrl($matches[0][1]); + $this->owner_name = $matches[0][2]; + // Use the nosign + $this->owner_photo = $a->get_baseurl .'/images/nosign.jpg'; + } + } + } } if($profile_owner == local_user()) { $isstarred = (($item['starred']) ? "starred" : "unstarred");