diff options
-rw-r--r-- | Zotlabs/Module/Network.php | 1 | ||||
-rw-r--r-- | include/text.php | 2 | ||||
-rw-r--r-- | include/widgets.php | 38 | ||||
-rw-r--r-- | view/pdl/mod_search.pdl | 2 | ||||
-rw-r--r-- | view/tpl/sitesearch.tpl | 5 |
5 files changed, 45 insertions, 3 deletions
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php index 50bb05075..70ba263bc 100644 --- a/Zotlabs/Module/Network.php +++ b/Zotlabs/Module/Network.php @@ -61,6 +61,7 @@ class Network extends \Zotlabs\Web\Controller { $search = (($_GET['search']) ? $_GET['search'] : ''); if($search) { + $_GET['netsearch'] = escape_tags($search); if(strpos($search,'@') === 0) { $r = q("select abook_id from abook left join xchan on abook_xchan = xchan_hash where xchan_name = '%s' and abook_channel = %d limit 1", dbesc(substr($search,1)), diff --git a/include/text.php b/include/text.php index 99ac59ca7..2c7716d11 100644 --- a/include/text.php +++ b/include/text.php @@ -936,7 +936,7 @@ function searchbox($s,$id='search-box',$url='/search',$save = false) { '$action_url' => z_root() . '/' . $url, '$search_label' => t('Search'), '$save_label' => t('Save'), - '$savedsearch' => feature_enabled(local_channel(),'savedsearch') + '$savedsearch' => ($save && feature_enabled(local_channel(),'savedsearch')) )); } diff --git a/include/widgets.php b/include/widgets.php index 16582d084..c57cbd749 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -209,7 +209,9 @@ function widget_savedsearch($arr) { if((! local_channel()) || (! feature_enabled(local_channel(),'savedsearch'))) return ''; - $search = ((x($_GET,'search')) ? $_GET['search'] : ''); + $search = ((x($_GET,'netsearch')) ? $_GET['netsearch'] : ''); + if(! $search) + $search = ((x($_GET,'search')) ? $_GET['search'] : ''); if(x($_GET,'searchsave') && $search) { $r = q("select * from `term` where `uid` = %d and `ttype` = %d and `term` = '%s' limit 1", @@ -287,6 +289,40 @@ function widget_savedsearch($arr) { return $o; } +function widget_sitesearch($arr) { + + $search = ((x($_GET,'search')) ? $_GET['search'] : ''); + + $srchurl = App::$query_string; + + $srchurl = rtrim(preg_replace('/search\=[^\&].*?(\&|$)/is','',$srchurl),'&'); + $srchurl = rtrim(preg_replace('/submit\=[^\&].*?(\&|$)/is','',$srchurl),'&'); + $srchurl = str_replace(array('?f=','&f='),array('',''),$srchurl); + + + $hasq = ((strpos($srchurl,'?') !== false) ? true : false); + $hasamp = ((strpos($srchurl,'&') !== false) ? true : false); + + if(($hasamp) && (! $hasq)) + $srchurl = substr($srchurl,0,strpos($srchurl,'&')) . '?f=&' . substr($srchurl,strpos($srchurl,'&')+1); + + $o = ''; + + $saved = array(); + + $tpl = get_markup_template("sitesearch.tpl"); + $o = replace_macros($tpl, array( + '$title' => t('Search'), + '$searchbox' => searchbox($search, 'netsearch-box', $srchurl . (($hasq) ? '' : '?f='), false), + '$saved' => $saved, + )); + + return $o; +} + + + + function widget_filer($arr) { if(! local_channel()) diff --git a/view/pdl/mod_search.pdl b/view/pdl/mod_search.pdl index 7de4a270f..cba0dc9d1 100644 --- a/view/pdl/mod_search.pdl +++ b/view/pdl/mod_search.pdl @@ -1,3 +1,3 @@ [region=aside] -[widget=savedsearch][/widget] +[widget=sitesearch][/widget] [/region] diff --git a/view/tpl/sitesearch.tpl b/view/tpl/sitesearch.tpl new file mode 100644 index 000000000..8dbf8cef5 --- /dev/null +++ b/view/tpl/sitesearch.tpl @@ -0,0 +1,5 @@ +<div class="widget saved-search-widget"> + <h3 id="search">{{$title}}</h3> + {{$searchbox}} + <div class="clear"></div> +</div> |