diff options
author | friendica <info@friendica.com> | 2014-04-15 18:35:22 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-04-15 18:35:22 -0700 |
commit | 1eb8e570bf3ac3e2fd8e84ba4ebdffd1c864a3e0 (patch) | |
tree | ab3e719aaa06d698801f2168a16ca029b1011f1a /mod/item.php | |
parent | 9026ea649a92b8f3e48a4940dd02c316c0a87c02 (diff) | |
download | volse-hubzilla-1eb8e570bf3ac3e2fd8e84ba4ebdffd1c864a3e0.tar.gz volse-hubzilla-1eb8e570bf3ac3e2fd8e84ba4ebdffd1c864a3e0.tar.bz2 volse-hubzilla-1eb8e570bf3ac3e2fd8e84ba4ebdffd1c864a3e0.zip |
tag anyone
Diffstat (limited to 'mod/item.php')
-rw-r--r-- | mod/item.php | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/mod/item.php b/mod/item.php index e88f9a2a3..be59bd4c7 100644 --- a/mod/item.php +++ b/mod/item.php @@ -981,24 +981,37 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag) { } // Here we're looking for an address book entry as provided by the auto-completer - // of the form something+nnn where nnn is an abook_id + // of the form something+nnn where nnn is an abook_id or the first chars of xchan_hash if(strrpos($newname,'+')) { //get the id - $tagcid = intval(substr($newname,strrpos($newname,'+') + 1)); + + if(strrpos($tagcid,' ')) + $tagcid = substr($tagcid,0,strrpos($tagcid,' ')); + + $tagcid = substr($newname,strrpos($newname,'+') + 1); + + if(strlen($tagcid) < 16) + $abook_id = intval($tagcid); //remove the next word from tag's name if(strpos($name,' ')) { $name = substr($name,0,strpos($name,' ')); } - if($tagcid) { // if there was an id + if($abook_id) { // if there was an id // select channel with that id from the logged in user's address book $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_id = %d AND abook_channel = %d LIMIT 1", - intval($tagcid), + intval($abook_id), intval($profile_uid) ); } + else { + $r = q("SELECT * FROM xchan + WHERE xchan_hash like '%s%%' LIMIT 1", + dbesc($tagcid) + ); + } } if(! $r) { |