Now you can set search options so that searching for contacts or forums isn't occult science anymore.

This commit is contained in:
Michael Vogel 2015-08-24 11:55:29 +02:00
parent 109620ae99
commit 3ff196f00d
6 changed files with 46 additions and 8 deletions

View file

@ -118,6 +118,12 @@ function nav_info(&$a) {
$nav['search'] = array('search', t('Search'), "", t('Search site content')); $nav['search'] = array('search', t('Search'), "", t('Search site content'));
$nav['searchoption'] = array(
t("Full Text"),
t("Tags"),
t("Contacts"),
t("Forums"));
$gdirpath = 'directory'; $gdirpath = 'directory';
if(strlen(get_config('system','singleuser'))) { if(strlen(get_config('system','singleuser'))) {

View file

@ -995,6 +995,11 @@ function search($s,$id='search-box',$url='/search',$save = false) {
'$search_label' => t('Search'), '$search_label' => t('Search'),
'$save_label' => t('Save'), '$save_label' => t('Save'),
'$savedsearch' => feature_enabled(local_user(),'savedsearch'), '$savedsearch' => feature_enabled(local_user(),'savedsearch'),
'$searchoption' => array(
t("Full Text"),
t("Tags"),
t("Contacts"),
t("Forums"))
)); ));
}} }}

View file

@ -14,13 +14,13 @@ function dirfind_init(&$a) {
function dirfind_content(&$a) { function dirfind_content(&$a, $prefix = "") {
$community = false; $community = false;
$local = get_config('system','poco_local_search'); $local = get_config('system','poco_local_search');
$search = notags(trim($_REQUEST['search'])); $search = $prefix.notags(trim($_REQUEST['search']));
if(strpos($search,'@') === 0) if(strpos($search,'@') === 0)
$search = substr($search,1); $search = substr($search,1);

View file

@ -1,4 +1,8 @@
<?php <?php
require_once("include/bbcode.php");
require_once('include/security.php');
require_once('include/conversation.php');
require_once('mod/dirfind.php');
function search_saved_searches() { function search_saved_searches() {
@ -92,9 +96,6 @@ function search_content(&$a) {
nav_set_selected('search'); nav_set_selected('search');
require_once("include/bbcode.php");
require_once('include/security.php');
require_once('include/conversation.php');
$o = '<h3>' . t('Search') . '</h3>'; $o = '<h3>' . t('Search') . '</h3>';
@ -117,14 +118,27 @@ function search_content(&$a) {
$search = substr($search,1); $search = substr($search,1);
} }
if(strpos($search,'@') === 0) { if(strpos($search,'@') === 0) {
require_once('mod/dirfind.php');
return dirfind_content($a); return dirfind_content($a);
} }
if(strpos($search,'!') === 0) { if(strpos($search,'!') === 0) {
require_once('mod/dirfind.php');
return dirfind_content($a); return dirfind_content($a);
} }
if(x($_GET,'search-option'))
switch($_GET['search-option']) {
case 'fulltext':
break;
case 'tags':
$tag = true;
break;
case 'contacts':
return dirfind_content($a, "@");
break;
case 'forums':
return dirfind_content($a, "!");
break;
}
if(! $search) if(! $search)
return $o; return $o;

View file

@ -2,6 +2,13 @@
<form action="{{$action_url}}" method="get" > <form action="{{$action_url}}" method="get" >
{{strip}} {{strip}}
<input type="text" name="search" id="search-text" placeholder="{{$search_label}}" value="{{$s}}" /> <input type="text" name="search" id="search-text" placeholder="{{$search_label}}" value="{{$s}}" />
<select name="search-option">
<option value="fulltext">{{$searchoption.0}}</option>
<option value="tags">{{$searchoption.1}}</option>
<option value="contacts">{{$searchoption.2}}</option>
<option value="forums">{{$searchoption.3}}</option>
</select>
<input type="submit" name="submit" id="search-submit" value="{{$search_label}}" /> <input type="submit" name="submit" id="search-submit" value="{{$search_label}}" />
{{if $savedsearch}} {{if $savedsearch}}
<input type="submit" name="save" id="search-save" value="{{$save_label}}" /> <input type="submit" name="save" id="search-save" value="{{$save_label}}" />

View file

@ -72,6 +72,12 @@
<li role="search" id="search-box"> <li role="search" id="search-box">
<form method="get" action="{{$nav.search.0}}"> <form method="get" action="{{$nav.search.0}}">
<input accesskey="s" id="search-text" class="nav-menu-search" type="text" value="" name="search"> <input accesskey="s" id="search-text" class="nav-menu-search" type="text" value="" name="search">
<select name="search-option">
<option value="fulltext">{{$nav.searchoption.0}}</option>
<option value="tags">{{$nav.searchoption.1}}</option>
<option value="contacts">{{$nav.searchoption.2}}</option>
<option value="forums">{{$nav.searchoption.3}}</option>
</select>
</form> </form>
</li> </li>
{{/if}} {{/if}}