mirror of
https://github.com/Piwigo/Piwigo.git
synced 2025-04-25 10:49:58 +03:00
fixes #1937 quick search redirects to normal search
This commit is contained in:
parent
6c6c297b2a
commit
c469f5142c
4 changed files with 40 additions and 66 deletions
|
@ -1568,4 +1568,29 @@ function get_search_results($search_id, $super_order_by, $images_where='')
|
|||
}
|
||||
}
|
||||
|
||||
function split_allwords($raw_allwords)
|
||||
{
|
||||
$words = null;
|
||||
|
||||
if (!preg_match('/^\s*$/', $raw_allwords))
|
||||
{
|
||||
$drop_char_match = array('-','^','$',';','#','&','(',')','<','>','`','\'','"','|',',','@','_','?','%','~','.','[',']','{','}',':','\\','/','=','\'','!','*');
|
||||
$drop_char_replace = array(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','', '', ' ',' ',' ',' ','', ' ',' ',' ',' ',' ',' ',' ',' ',' ','' , ' ',' ',' ', ' ',' ');
|
||||
|
||||
// Split words
|
||||
$words = array_unique(
|
||||
preg_split(
|
||||
'/\s+/',
|
||||
str_replace(
|
||||
$drop_char_match,
|
||||
$drop_char_replace,
|
||||
$raw_allwords
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return $words;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -700,6 +700,7 @@ SELECT *
|
|||
function ws_images_filteredSearch_update($params, $service)
|
||||
{
|
||||
// echo json_encode($params); exit();
|
||||
include_once(PHPWG_ROOT_PATH.'include/functions_search.inc.php');
|
||||
|
||||
// * check the search exists
|
||||
$query = '
|
||||
|
@ -746,30 +747,7 @@ SELECT id
|
|||
}
|
||||
$search['fields']['allwords']['fields'] = $params['allwords_fields'];
|
||||
|
||||
$search['fields']['allwords']['words'] = null;
|
||||
if (!preg_match('/^\s*$/', $params['allwords']))
|
||||
{
|
||||
$drop_char_match = array(
|
||||
'-','^','$',';','#','&','(',')','<','>','`','\'','"','|',',','@','_',
|
||||
'?','%','~','.','[',']','{','}',':','\\','/','=','\'','!','*'
|
||||
);
|
||||
$drop_char_replace = array(
|
||||
' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','','',' ',' ',' ',' ','',' ',
|
||||
' ',' ',' ',' ',' ',' ',' ',' ','' ,' ',' ',' ',' ',' '
|
||||
);
|
||||
|
||||
// Split words
|
||||
$search['fields']['allwords']['words'] = array_unique(
|
||||
preg_split(
|
||||
'/\s+/',
|
||||
str_replace(
|
||||
$drop_char_match,
|
||||
$drop_char_replace,
|
||||
$params['allwords']
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
$search['fields']['allwords']['words'] = split_allwords($params['allwords']);
|
||||
}
|
||||
|
||||
if (isset($params['tags']))
|
||||
|
|
46
qsearch.php
46
qsearch.php
|
@ -14,46 +14,10 @@ include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
|
|||
// +-----------------------------------------------------------------------+
|
||||
check_status(ACCESS_GUEST);
|
||||
|
||||
if (empty($_GET['q']))
|
||||
{
|
||||
redirect( make_index_url() );
|
||||
}
|
||||
// if (empty($_GET['q']))
|
||||
// {
|
||||
// redirect( make_index_url() );
|
||||
// }
|
||||
|
||||
$search = array();
|
||||
$search['q']=$_GET['q'];
|
||||
|
||||
$query = '
|
||||
SElECT id FROM '.SEARCH_TABLE.'
|
||||
WHERE rules = \''.addslashes(serialize($search)).'\'
|
||||
;';
|
||||
$search_id = array_from_query( $query, 'id');
|
||||
if ( !empty($search_id) )
|
||||
{
|
||||
$search_id = $search_id[0];
|
||||
$query = '
|
||||
UPDATE '.SEARCH_TABLE.'
|
||||
SET last_seen=NOW()
|
||||
WHERE id='.$search_id;
|
||||
pwg_query($query);
|
||||
}
|
||||
else
|
||||
{
|
||||
$query ='
|
||||
INSERT INTO '.SEARCH_TABLE.'
|
||||
(rules, last_seen)
|
||||
VALUES
|
||||
(\''.addslashes(serialize($search)).'\', NOW() )
|
||||
;';
|
||||
pwg_query($query);
|
||||
$search_id = pwg_db_insert_id(SEARCH_TABLE);
|
||||
}
|
||||
|
||||
redirect(
|
||||
make_index_url(
|
||||
array(
|
||||
'section' => 'search',
|
||||
'search' => $search_id,
|
||||
)
|
||||
)
|
||||
);
|
||||
redirect(get_root_url().'search.php?q='.$_GET['q']);
|
||||
?>
|
|
@ -21,11 +21,18 @@ trigger_notify('loc_begin_search');
|
|||
// | Create a default search |
|
||||
// +-----------------------------------------------------------------------+
|
||||
|
||||
$words = array();
|
||||
if (!empty($_GET['q']))
|
||||
{
|
||||
include_once(PHPWG_ROOT_PATH.'include/functions_search.inc.php');
|
||||
$words = split_allwords($_GET['q']);
|
||||
}
|
||||
|
||||
$search = array(
|
||||
'mode' => 'AND',
|
||||
'fields' => array(
|
||||
'allwords' => array(
|
||||
'words' => array(),
|
||||
'words' => $words,
|
||||
'mode' => 'AND',
|
||||
'fields' => array('file', 'name', 'comment', 'tags', 'cat-title', 'cat-desc'),
|
||||
),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue