mirror of
https://github.com/friendica/friendica
synced 2024-11-10 07:02:54 +00:00
Better wall to wall detection (fallback to finding @ tags)
This commit is contained in:
parent
5dd3e8a990
commit
c3ce4e153d
1 changed files with 38 additions and 0 deletions
|
@ -590,6 +590,44 @@ class Item extends BaseObject {
|
|||
}
|
||||
|
||||
if(!$this->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` FROM `contact` WHERE `url`='%s' LIMIT 1",
|
||||
dbesc($uri)
|
||||
);
|
||||
|
||||
if(count($r)) {
|
||||
$this->owner_url = zrl($r[0]['url']);
|
||||
$this->owner_name = $r[0]['name'];
|
||||
$this->owner_photo = $r[0]['photo'];
|
||||
$this->set_template('wall2wall');
|
||||
$this->wall_to_wall = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$this->wall_to_wall) {
|
||||
// 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';
|
||||
$this->set_template('wall2wall');
|
||||
$this->wall_to_wall = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$this->wall_to_wall) {
|
||||
// Definitely not wall to wall
|
||||
$this->set_template('wall');
|
||||
$this->owner_url = '';
|
||||
$this->owner_photo = '';
|
||||
|
|
Loading…
Reference in a new issue