From 11d1c1ae8eaf9b91fd2478abc7b089f9c0877845 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Sat, 3 Aug 2013 15:12:50 -0400 Subject: [PATCH] add tag to term table. fix "#xNNNN" tag filter. --- include/tags.php | 4 ++-- mod/tagger.php | 43 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/include/tags.php b/include/tags.php index a06504fbe3..c4aba400f3 100644 --- a/include/tags.php +++ b/include/tags.php @@ -83,7 +83,7 @@ function create_tags_from_item($itemid) { if(ctype_digit(substr(trim($tag),1))) continue; // try to ignore html hex escapes, e.g. #x2317 - if((substr(trim($tag),1,1) == 'x' || substr(trim($tag),1,1) == 'X') && ctype_digit(substr(trim($tag,2)))) + if((substr(trim($tag),1,1) == 'x' || substr(trim($tag),1,1) == 'X') && ctype_digit(substr(trim($tag),2,1))) continue; $type = TERM_HASHTAG; $term = substr($tag, 1); @@ -92,7 +92,7 @@ function create_tags_from_item($itemid) { $term = substr($tag, 1); } else { // This shouldn't happen $type = TERM_HASHTAG; - $term = $tag; + $term = $tag."-oh"; } $r = q("INSERT INTO `term` (`uid`, `oid`, `otype`, `type`, `term`, `url`) VALUES (%d, %d, %d, %d, '%s', '%s')", diff --git a/mod/tagger.php b/mod/tagger.php index 6ae0cebf71..3f470a1797 100644 --- a/mod/tagger.php +++ b/mod/tagger.php @@ -151,13 +151,27 @@ EOT; ); } - if((! $blocktags) && (! stristr($item['tag'], ']' . $term . '[' ))) { - q("update item set tag = '%s' where id = %d limit 1", + $term_objtype = (($item['resource-id']) ? TERM_OBJ_PHOTO : TERM_OBJ_POST ); + $t = q("SELECT count(tid) as tcount FROM term WHERE oid=%d AND term='%s'", + intval($item['id']), + dbesc($term) + ); + if((! $blocktags) && $t[0]['tcount']==0 ) { + /*q("update item set tag = '%s' where id = %d limit 1", dbesc($item['tag'] . (strlen($item['tag']) ? ',' : '') . '#[url=' . $a->get_baseurl() . '/search?tag=' . $term . ']'. $term . '[/url]'), intval($item['id']) + );*/ + + q("INSERT INTO term (oid, otype, type, term, url, uid) VALUE (%d, %d, %d, '%s', '%s', %d)", + intval($item['id']), + $term_objtype, + TERM_HASHTAG, + dbesc($term), + dbesc($a->get_baseurl() . '/search?tag=' . $term), + intval($owner_uid) ); } - + // 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", @@ -167,12 +181,29 @@ EOT; $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 . '['))) { + $t = q("SELECT count(tid) as tcount FROM term WHERE oid=%d AND term='%s'", + intval($r[0]['id']), + dbesc($term) + ); + echo "
"; var_dump($t); killme();
+		// not really sure about this...
+		if(count($x) && !$x[0]['blocktags'] && $t[0]['tcount']==0){
+			q("INSERT INTO term (oid, otype, type, term, url, uid) VALUE (%d, %d, %d, '%s', '%s', %d)",
+	                   intval($r[0]['id']),
+	                   $term_objtype,
+	                   TERM_HASHTAG,
+	                   dbesc($term),
+	                   dbesc($a->get_baseurl() . '/search?tag=' . $term),
+	                   intval($owner_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?tag=' . $term . ']'. $term . '[/url]'),
 				intval($r[0]['id'])
 			);
-		}
+		}*/
 
 	}
 		
@@ -188,4 +219,4 @@ EOT;
 	return; // NOTREACHED
 
 
-}
\ No newline at end of file
+}