mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-19 21:55:15 +00:00
issue #378, failure to correctly link tags where one tag contains a substring of the other (depends on the order they are discovered).
This commit is contained in:
parent
3791cee52b
commit
653d7df86d
2 changed files with 18 additions and 1 deletions
|
@ -2294,6 +2294,7 @@ function tag_deliver($uid,$item_id) {
|
|||
logger('tag_deliver: community tag activity received');
|
||||
|
||||
if(($item['owner_xchan'] === $u[0]['channel_hash']) && (! get_pconfig($u[0]['channel_id'],'system','blocktags'))) {
|
||||
logger('tag_deliver: community tag recipient: ' . $u[0]['channel_name']);
|
||||
$j_tgt = json_decode_plus($item['target']);
|
||||
if($j_tgt && $j_tgt['id']) {
|
||||
$p = q("select * from item where mid = '%s' and uid = %d limit 1",
|
||||
|
|
|
@ -619,12 +619,28 @@ function get_tags($s) {
|
|||
}
|
||||
}
|
||||
|
||||
// make sure the longer tags are returned first so that if two or more have common substrings
|
||||
// we'll replace the longest ones first. Otherwise the common substring would be found in
|
||||
// both strings and the string replacement would link both to the shorter strings and
|
||||
// fail to link the longer string. RedMatrix github issue #378
|
||||
|
||||
usort($ret,'tag_sort_length');
|
||||
|
||||
// logger('get_tags: ' . print_r($ret,true));
|
||||
|
||||
//logger('get_tags: ' . print_r($ret,true));
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function tag_sort_length($a,$b) {
|
||||
if(mb_strlen($a) == mb_strlen($b))
|
||||
return 0;
|
||||
return((mb_strlen($b) < mb_strlen($a)) ? (-1) : 1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function strip_zids($s) {
|
||||
return preg_replace('/[\?&]zid=(.*?)(&|$)/ism','$2',$s);
|
||||
|
|
Loading…
Reference in a new issue