- return $replaced;
- }
-
- //get the person's name
- $name = substr($tag, 1);
-
- // Sometimes the tag detection doesn't seem to work right
- // This is some workaround
- $nameparts = explode(" ", $name);
- $name = $nameparts[0];
-
- // Try to detect the contact in various ways
- if (strpos($name, 'http://')) {
- // At first we have to ensure that the contact exists
- Contact::getIdForURL($name);
-
- // Now we should have something
- $contact = Contact::getDetailsByURL($name);
- } elseif (strpos($name, '@')) {
- // This function automatically probes when no entry was found
- $contact = Contact::getDetailsByAddr($name);
- } else {
- $contact = false;
- $fields = ['id', 'url', 'nick', 'name', 'alias', 'network', 'forum', 'prv'];
-
- if (strrpos($name, '+')) {
- // Is it in format @nick+number?
- $tagcid = intval(substr($name, strrpos($name, '+') + 1));
- $contact = DBA::selectFirst('contact', $fields, ['id' => $tagcid, 'uid' => $profile_uid]);
- }