diff options
author | zotlabs <mike@macgirvin.com> | 2017-07-20 18:11:47 -0700 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2017-07-20 18:11:47 -0700 |
commit | a346399fe6d35f9f2b3c854f515a7f302cda421b (patch) | |
tree | 35186d402f92b59606857b8ce7b0c465852506d7 /include/taxonomy.php | |
parent | 8e5c56dcc2e38884f897acaf9d2b39e5b5dd8c29 (diff) | |
download | volse-hubzilla-a346399fe6d35f9f2b3c854f515a7f302cda421b.tar.gz volse-hubzilla-a346399fe6d35f9f2b3c854f515a7f302cda421b.tar.bz2 volse-hubzilla-a346399fe6d35f9f2b3c854f515a7f302cda421b.zip |
allow wildcard tag and category searches
Diffstat (limited to 'include/taxonomy.php')
-rw-r--r-- | include/taxonomy.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/include/taxonomy.php b/include/taxonomy.php index dc0e439e2..46d661581 100644 --- a/include/taxonomy.php +++ b/include/taxonomy.php @@ -46,8 +46,16 @@ function term_query($table,$s,$type = TERM_UNKNOWN, $type2 = '') { function term_item_parent_query($uid,$table,$s,$type = TERM_UNKNOWN, $type2 = '') { + // Allow asterisks for wildcard search + // In theory this means '%' will also do a wildcard search, but there appear to be multiple escape + // issues with '%' in term names and trying to fix this with '\\%' here did not help. + // Ideally I think we want '*' to indicate wildcards and allow '%' literally in names, but that is being + // left for another developer on another day. + + $s = str_replace('*','%',$s); + 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", + $r = q("select parent from item left join term on term.oid = item.id where term.ttype in (%d, %d) and term.term like '%s' and term.uid = %d and term.otype = 1", intval($type), intval($type2), dbesc($s), @@ -55,12 +63,13 @@ function term_item_parent_query($uid,$table,$s,$type = TERM_UNKNOWN, $type2 = '' ); } 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", + $r = q("select parent from item left join term on term.oid = item.id where term.ttype = %d and term.term like '%s' and term.uid = %d and term.otype = 1", intval($type), dbesc($s), intval($uid) ); } + if($r) { $str = ''; foreach($r as $rv) { |