aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-07-20 18:11:47 -0700
committerzotlabs <mike@macgirvin.com>2017-07-20 18:11:47 -0700
commita346399fe6d35f9f2b3c854f515a7f302cda421b (patch)
tree35186d402f92b59606857b8ce7b0c465852506d7 /include
parent8e5c56dcc2e38884f897acaf9d2b39e5b5dd8c29 (diff)
downloadvolse-hubzilla-a346399fe6d35f9f2b3c854f515a7f302cda421b.tar.gz
volse-hubzilla-a346399fe6d35f9f2b3c854f515a7f302cda421b.tar.bz2
volse-hubzilla-a346399fe6d35f9f2b3c854f515a7f302cda421b.zip
allow wildcard tag and category searches
Diffstat (limited to 'include')
-rw-r--r--include/taxonomy.php13
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) {