mirror of
https://github.com/Piwigo/Piwigo.git
synced 2025-04-26 19:29: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)
|
function ws_images_filteredSearch_update($params, $service)
|
||||||
{
|
{
|
||||||
// echo json_encode($params); exit();
|
// echo json_encode($params); exit();
|
||||||
|
include_once(PHPWG_ROOT_PATH.'include/functions_search.inc.php');
|
||||||
|
|
||||||
// * check the search exists
|
// * check the search exists
|
||||||
$query = '
|
$query = '
|
||||||
|
@ -746,30 +747,7 @@ SELECT id
|
||||||
}
|
}
|
||||||
$search['fields']['allwords']['fields'] = $params['allwords_fields'];
|
$search['fields']['allwords']['fields'] = $params['allwords_fields'];
|
||||||
|
|
||||||
$search['fields']['allwords']['words'] = null;
|
$search['fields']['allwords']['words'] = split_allwords($params['allwords']);
|
||||||
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']
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($params['tags']))
|
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);
|
check_status(ACCESS_GUEST);
|
||||||
|
|
||||||
if (empty($_GET['q']))
|
// if (empty($_GET['q']))
|
||||||
{
|
// {
|
||||||
redirect( make_index_url() );
|
// redirect( make_index_url() );
|
||||||
}
|
// }
|
||||||
|
|
||||||
$search = array();
|
redirect(get_root_url().'search.php?q='.$_GET['q']);
|
||||||
$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,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
?>
|
?>
|
|
@ -21,11 +21,18 @@ trigger_notify('loc_begin_search');
|
||||||
// | Create a default 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(
|
$search = array(
|
||||||
'mode' => 'AND',
|
'mode' => 'AND',
|
||||||
'fields' => array(
|
'fields' => array(
|
||||||
'allwords' => array(
|
'allwords' => array(
|
||||||
'words' => array(),
|
'words' => $words,
|
||||||
'mode' => 'AND',
|
'mode' => 'AND',
|
||||||
'fields' => array('file', 'name', 'comment', 'tags', 'cat-title', 'cat-desc'),
|
'fields' => array('file', 'name', 'comment', 'tags', 'cat-title', 'cat-desc'),
|
||||||
),
|
),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue