]> git.mxchange.org Git - friendica.git/blobdiff - mod/tagger.php
mod/match.php - Friendika -> Friendica
[friendica.git] / mod / tagger.php
old mode 100644 (file)
new mode 100755 (executable)
index c64184d..76ec336
@@ -11,7 +11,9 @@ function tagger_content(&$a) {
                return;
        }
 
-       $term= notags(trim($_GET['term']));
+       $term = notags(trim($_GET['term']));
+       // no commas allowed
+       $term = str_replace(array(',',' '),array('','_'),$term);
 
        if(! $term)
                return;
@@ -21,8 +23,7 @@ function tagger_content(&$a) {
        logger('tagger: tag ' . $term . ' item ' . $item_id);
 
 
-       $r = q("SELECT * FROM `item` WHERE ( `id` = '%s' OR `uri` = '%s') LIMIT 1",
-               dbesc($item_id),
+       $r = q("SELECT * FROM `item` WHERE `id` = '%s' LIMIT 1",
                dbesc($item_id)
        );
 
@@ -35,15 +36,16 @@ function tagger_content(&$a) {
 
        $owner_uid = $item['uid'];
 
-       $r = q("select `nickname` from user where uid = %d limit 1",
+       $r = q("select `nickname`,`blocktags` from user where uid = %d limit 1",
                intval($owner_uid)
        );
-       if(count($r))
+       if(count($r)) {
                $owner_nick = $r[0]['nickname'];
+               $blocktags = $r[0]['blocktags'];
+       }
 
-
-//     if(local_user() != $owner_uid)
-//             return;
+       if(local_user() != $owner_uid)
+               return;
 
        if(remote_user()) {
                $r = q("select * from contact where id = %d AND `uid` = %d limit 1",
@@ -103,7 +105,7 @@ EOT;
        if(! isset($bodyverb))
                        return; 
 
-       $termlink = '#[url=' . $a->get_baseurl() . '/search?search=' . urlencode($term) . ']'. $term . '[/url]';
+       $termlink = html_entity_decode('⌗') . '[url=' . $a->get_baseurl() . '/search?search=' . urlencode($term) . ']'. $term . '[/url]';
 
        $arr = array();
 
@@ -156,13 +158,39 @@ EOT;
                );
        }                       
 
+       if((! $blocktags) && (! stristr($item['tag'], ']' . $term . '[' ))) {
+               q("update item set tag = '%s' where id = %d limit 1",
+                       dbesc($item['tag'] . (strlen($item['tag']) ? ',' : '') . '#[url=' . $a->get_baseurl() . '/search?search=' . $term . ']'. $term . '[/url]'),
+                       intval($item['id'])
+               );
+       }
 
+       // if the original post is on this site, update it.
+
+       $r = q("select `tag`,`id`,`uid` from item where `origin` = 1 AND `uri` = '%s' LIMIT 1",
+               dbesc($item['uri'])
+       );
+       if(count($r)) {
+               $x = q("SELECT `blocktags` FROM `user` WHERE `uid` = %d limit 1",
+                       intval($r[0]['uid'])
+               );
+               if(count($x) && !$x[0]['blocktags'] && (! stristr($r[0]['tag'], ']' . $term . '['))) {
+                       q("update item set tag = '%s' where id = %d limit 1",
+                               dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $a->get_baseurl() . '/search?search=' . $term . ']'. $term . '[/url]'),
+                               intval($r[0]['id'])
+                       );
+               }
+
+       }
+               
 
        $arr['id'] = $post_id;
 
        call_hooks('post_local_end', $arr);
 
-       proc_run('php',"include/notifier.php","like","$post_id");
+       proc_run('php',"include/notifier.php","tag","$post_id");
+
+       killme();
 
        return; // NOTREACHED