if(! function_exists('get_tags')) {
function get_tags($s) {
- if(preg_match_all('/([@#][^ ,.:?\-]*)[ ,.:?\-]/',$s,$match))
- return $match[1];
+ $ret = array();
+ if(preg_match_all('/([@#][^ ,:?]*)[ ,:?]/',$s,$match)) {
+ foreach($match[1] as $match) {
+ if(substr($match,-1,1) === '.')
+ $ret[] = substr($match,0,-1);
+ else
+ $ret[] = $match;
+ }
+ }
+
+ return $ret;
}}
}
}
+ $str_tags = '';
+ $tagged = array();
+
+ $tags = get_tags($body);
+
+
+ if($tags) {
+ foreach($tags as $tag) {
+ if(strpos($tag,'@') === 0) {
+ $name = substr($tag,1);
+ if(strpos($name,'@')) {
+
+ $links = @webfinger($name);
+ if(count($links)) {
+ foreach($links as $link) {
+ if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
+ $profile = $link['@attributes']['href'];
+ if($link['@attributes']['rel'] === 'salmon')
+ $salmon = $link['@attributes']['href'];
+ }
+ }
+ }
+ else {
+ $r = q("SELECT * FROM `contact` WHERE `nick` = '%s' AND `uid` = %d LIMIT 1",
+ dbesc($name),
+ intval($profile_uid)
+ );
+ if(count($r)) {
+ $profile = $r[0]['url'];
+ $salmon = $r[0]['notify'];
+ }
+ }
+ if($profile) {
+ $profile = str_replace(',','%2c',$profile);
+ $body = str_replace($name,'[url=' . $profile . ']' . $name . '[/url]', $body);
+ if(strlen($str_tags))
+ $str_tags .= ',';
+ $str_tags .= '[url=' . $profile . ']' . $name . '[/url]';
+ }
+ }
+ }
+ }
+
$wall = 0;
if($post_type === 'wall' || $post_type === 'wall-comment')
$wall = 1;
else {
notice( t('Permission denied.') . EOL);
goaway($a->get_baseurl() . '/' . $_SESSION['return_url']);
- return; //NOTREACHED
+ //NOTREACHED
}
}
}
\ No newline at end of file