allow spaces in @ tags
This commit is contained in:
parent
f73bc7f010
commit
ad5b976978
3 changed files with 31 additions and 9 deletions
16
boot.php
16
boot.php
|
@ -4,7 +4,7 @@ set_time_limit(0);
|
||||||
ini_set('pcre.backtrack_limit', 250000);
|
ini_set('pcre.backtrack_limit', 250000);
|
||||||
|
|
||||||
|
|
||||||
define ( 'FRIENDIKA_VERSION', '2.2.1025' );
|
define ( 'FRIENDIKA_VERSION', '2.2.1026' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1070 );
|
define ( 'DB_UPDATE_VERSION', 1070 );
|
||||||
|
|
||||||
|
@ -2017,7 +2017,7 @@ function get_tags($s) {
|
||||||
|
|
||||||
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
|
$s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s);
|
||||||
|
|
||||||
if(preg_match_all('/([@#][^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) {
|
if(preg_match_all('/([@#][^ \x0D\x0A,:?]+ [^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) {
|
||||||
foreach($match[1] as $mtch) {
|
foreach($match[1] as $mtch) {
|
||||||
if(strstr($mtch,"]")) {
|
if(strstr($mtch,"]")) {
|
||||||
// we might be inside a bbcode color tag - leave it alone
|
// we might be inside a bbcode color tag - leave it alone
|
||||||
|
@ -2030,6 +2030,18 @@ function get_tags($s) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(preg_match_all('/([@#][^ \x0D\x0A,:?]+)([ \x0D\x0A,:?]|$)/',$s,$match)) {
|
||||||
|
foreach($match[1] as $mtch) {
|
||||||
|
if(strstr($mtch,"]")) {
|
||||||
|
// we might be inside a bbcode color tag - leave it alone
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(substr($mtch,-1,1) === '.')
|
||||||
|
$ret[] = substr($mtch,0,-1);
|
||||||
|
else
|
||||||
|
$ret[] = $mtch;
|
||||||
|
}
|
||||||
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
20
mod/item.php
20
mod/item.php
|
@ -244,6 +244,10 @@ function item_post(&$a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Next link in any attachment references we find in the post.
|
||||||
|
*/
|
||||||
|
|
||||||
$match = false;
|
$match = false;
|
||||||
|
|
||||||
if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) {
|
if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) {
|
||||||
|
@ -265,10 +269,6 @@ function item_post(&$a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fold multi-line [code] sequences
|
* Fold multi-line [code] sequences
|
||||||
*/
|
*/
|
||||||
|
@ -285,13 +285,21 @@ function item_post(&$a) {
|
||||||
|
|
||||||
$tags = get_tags($body);
|
$tags = get_tags($body);
|
||||||
|
|
||||||
if(($parent_contact) && ($parent_contact['network'] === 'stat') && ($parent_contact['nick']) && (! in_array('@' . $parent_contact['nick'],$tags))) {
|
/**
|
||||||
|
* add a statusnet style reply tag if the original post was from there
|
||||||
|
* and we are replying, and there isn't one already
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(($parent_contact) && ($parent_contact['network'] === 'stat')
|
||||||
|
&& ($parent_contact['nick']) && (! in_array('@' . $parent_contact['nick'],$tags))) {
|
||||||
$body = '@' . $parent_contact['nick'] . ' ' . $body;
|
$body = '@' . $parent_contact['nick'] . ' ' . $body;
|
||||||
$tags[] = '@' . $parent_contact['nick'];
|
$tags[] = '@' . $parent_contact['nick'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if(count($tags)) {
|
if(count($tags)) {
|
||||||
foreach($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
|
if(isset($profile))
|
||||||
|
unset($profile);
|
||||||
if(strpos($tag,'#') === 0) {
|
if(strpos($tag,'#') === 0) {
|
||||||
if(strpos($tag,'[url='))
|
if(strpos($tag,'[url='))
|
||||||
continue;
|
continue;
|
||||||
|
@ -325,7 +333,7 @@ function item_post(&$a) {
|
||||||
else {
|
else {
|
||||||
$newname = $name;
|
$newname = $name;
|
||||||
$alias = '';
|
$alias = '';
|
||||||
if(strstr($name,'_')) {
|
if(strstr($name,'_') || strstr($name,' ')) {
|
||||||
$newname = str_replace('_',' ',$name);
|
$newname = str_replace('_',' ',$name);
|
||||||
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($newname),
|
dbesc($newname),
|
||||||
|
|
|
@ -380,6 +380,8 @@ function photos_post(&$a) {
|
||||||
|
|
||||||
if(count($tags)) {
|
if(count($tags)) {
|
||||||
foreach($tags as $tag) {
|
foreach($tags as $tag) {
|
||||||
|
if(isset($profile))
|
||||||
|
unset($profile);
|
||||||
if(strpos($tag,'@') === 0) {
|
if(strpos($tag,'@') === 0) {
|
||||||
$name = substr($tag,1);
|
$name = substr($tag,1);
|
||||||
if((strpos($name,'@')) || (strpos($name,'http://'))) {
|
if((strpos($name,'@')) || (strpos($name,'http://'))) {
|
||||||
|
@ -401,7 +403,7 @@ function photos_post(&$a) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$newname = $name;
|
$newname = $name;
|
||||||
if(strstr($name,'_')) {
|
if(strstr($name,'_') || strstr($name,' ')) {
|
||||||
$newname = str_replace('_',' ',$name);
|
$newname = str_replace('_',' ',$name);
|
||||||
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
dbesc($newname),
|
dbesc($newname),
|
||||||
|
|
Loading…
Reference in a new issue