aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-11-23 18:22:19 -0800
committerfriendica <info@friendica.com>2014-11-23 18:22:19 -0800
commit5bb794cc2852f3a53526b15dcd610a002ce86563 (patch)
tree9988b1d33132d566c529f00663c3abdc9be8f740 /mod
parent746e4860faae897ef1a5a2bc6c4378454dac33ab (diff)
downloadvolse-hubzilla-5bb794cc2852f3a53526b15dcd610a002ce86563.tar.gz
volse-hubzilla-5bb794cc2852f3a53526b15dcd610a002ce86563.tar.bz2
volse-hubzilla-5bb794cc2852f3a53526b15dcd610a002ce86563.zip
allow directory searches to be filtered by (public forums) and/or (! public forums)
Diffstat (limited to 'mod')
-rw-r--r--mod/directory.php7
-rw-r--r--mod/dirsearch.php13
2 files changed, 17 insertions, 3 deletions
diff --git a/mod/directory.php b/mod/directory.php
index d4a4c383a..921c8ece7 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -31,8 +31,9 @@ function directory_content(&$a) {
if(x($_REQUEST,'safe'))
$safe_mode = (intval($_REQUEST['safe']));
-
-
+ $pubforums = null;
+ if(array_key_exists('pubforums',$_REQUEST))
+ $pubforums = intval($_REQUEST['pubforums']);
$o = '';
nav_set_selected('directory');
@@ -92,6 +93,8 @@ function directory_content(&$a) {
$query .= '&keywords=' . urlencode($keywords);
if($advanced)
$query .= '&query=' . urlencode($advanced);
+ if(! is_null($pubforums))
+ $query .= '&pubforums=' . intval($pubforums);
$sort_order = ((x($_REQUEST,'order')) ? $_REQUEST['order'] : '');
if($sort_order)
diff --git a/mod/dirsearch.php b/mod/dirsearch.php
index 56e2378a8..1ecf33393 100644
--- a/mod/dirsearch.php
+++ b/mod/dirsearch.php
@@ -64,6 +64,9 @@ function dirsearch_content(&$a) {
$agege = ((x($_REQUEST,'agege')) ? intval($_REQUEST['agege']) : 0 );
$agele = ((x($_REQUEST,'agele')) ? intval($_REQUEST['agele']) : 0 );
$kw = ((x($_REQUEST,'kw')) ? intval($_REQUEST['kw']) : 0 );
+ $forums = ((array_key_exists('pubforums',$_REQUEST)) ? intval($_REQUEST['pubforums']) : null);
+
+
// by default use a safe search
$safe = ((x($_REQUEST,'safe'))); // ? intval($_REQUEST['safe']) : 1 );
@@ -108,6 +111,10 @@ function dirsearch_content(&$a) {
if($keywords)
$sql_extra .= dir_query_build($joiner,'xprof_keywords',$keywords);
+ if(! is_null($forums))
+ $sql_extra .= dir_flag_build($joiner,'xprof_flags',XCHAN_FLAGS_PUBFORUM, $forums);
+
+
// we only support an age range currently. You must set both agege
// (greater than or equal) and agele (less than or equal)
@@ -179,7 +186,6 @@ function dirsearch_content(&$a) {
else
$order = " order by xchan_name_date desc ";
-
if($sync) {
$spkt = array('transactions' => array());
$r = q("select * from updates where ud_date >= '%s' and ud_guid != '' order by ud_date desc",
@@ -273,6 +279,11 @@ function dir_query_build($joiner,$field,$s) {
return $ret;
}
+function dir_flag_build($joiner,$field,$bit,$s) {
+ return dbesc($joiner) . " ( " . dbesc('xchan_flags') . " & " . intval($bit) . " ) " . ((intval($s)) ? '>' : '=' ) . " 0 ";
+}
+
+
function dir_parse_query($s) {
$ret = array();