aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-06-06 17:38:34 -0700
committerMario Vavti <mario@mariovavti.com>2017-06-07 09:37:33 +0200
commit108b052e4eedc8d0002c34802d4a96faee4a7cd6 (patch)
treeee7bfb8267d7671fb8b26c020c848d8b5f8fd172
parentf5b593ff42af57bed4062e86a8b8c46d0eb36e30 (diff)
downloadvolse-hubzilla-108b052e4eedc8d0002c34802d4a96faee4a7cd6.tar.gz
volse-hubzilla-108b052e4eedc8d0002c34802d4a96faee4a7cd6.tar.bz2
volse-hubzilla-108b052e4eedc8d0002c34802d4a96faee4a7cd6.zip
hubzilla issue #810
-rw-r--r--Zotlabs/Module/Channel.php4
-rw-r--r--include/taxonomy.php30
2 files changed, 32 insertions, 2 deletions
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index 61df35a60..98a1e6c88 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -217,10 +217,10 @@ class Channel extends \Zotlabs\Web\Controller {
else {
if(x($category)) {
- $sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY));
+ $sql_extra2 .= protect_sprintf(term_item_parent_query(\App::$profile['profile_uid'],'item', $category, TERM_CATEGORY));
}
if(x($hashtags)) {
- $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
+ $sql_extra2 .= protect_sprintf(term_item_parent_query(\App::$profile['profile_uid'],'item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
}
if($datequery) {
diff --git a/include/taxonomy.php b/include/taxonomy.php
index 0b4b2aa9a..dc0e439e2 100644
--- a/include/taxonomy.php
+++ b/include/taxonomy.php
@@ -44,6 +44,36 @@ function term_query($table,$s,$type = TERM_UNKNOWN, $type2 = '') {
}
+function term_item_parent_query($uid,$table,$s,$type = TERM_UNKNOWN, $type2 = '') {
+
+ if($type2) {
+ $r = q("select parent from item left join term on term.oid = item.id where term.ttype in (%d, %d) and term.term = '%s' and term.uid = %d and term.otype = 1",
+ intval($type),
+ intval($type2),
+ dbesc($s),
+ intval($uid)
+ );
+ }
+ else {
+ $r = q("select parent from item left join term on term.oid = item.id where term.ttype = %d and term.term = '%s' and term.uid = %d and term.otype = 1",
+ intval($type),
+ dbesc($s),
+ intval($uid)
+ );
+ }
+ if($r) {
+ $str = '';
+ foreach($r as $rv) {
+ if($str)
+ $str .= ',';
+ $str .= intval($rv['parent']);
+ }
+ return " AND " . (($table) ? dbesc($table) . '.' : '') . "id in ( $str ) ";
+ }
+ return " AND false ";
+}
+
+
function store_item_tag($uid,$iid,$otype,$type,$term,$url = '') {
if(! $term)
return false;