wall to wall detection: fallback using @ tags, and check if one is a forum.

This commit is contained in:
Domovoy 2012-08-24 05:21:08 +02:00
parent 9390eda5e6
commit f746e06a37

View File

@ -590,7 +590,33 @@ class Item extends BaseObject {
} }
if(!$this->wall_to_wall) { 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->set_template('wall');
$this->owner_url = ''; $this->owner_url = '';
$this->owner_photo = ''; $this->owner_photo = '';