diff options
-rw-r--r-- | include/functions_search.inc.php | 8 | ||||
-rw-r--r-- | language/en_UK/common.lang.php | 3 | ||||
-rw-r--r-- | language/fr_FR/common.lang.php | 5 | ||||
-rw-r--r-- | search.php | 3 | ||||
-rw-r--r-- | themes/default/template/search.tpl | 54 | ||||
-rw-r--r-- | themes/default/theme.css | 32 |
6 files changed, 73 insertions, 32 deletions
diff --git a/include/functions_search.inc.php b/include/functions_search.inc.php index 928673b3b..bc74867a1 100644 --- a/include/functions_search.inc.php +++ b/include/functions_search.inc.php @@ -85,7 +85,13 @@ function get_sql_search_clause($search) if (isset($search['fields']['allwords'])) { - $fields = array('file', 'name', 'comment', 'author'); + $fields = array('file', 'name', 'comment'); + + if (isset($search['fields']['allwords']['fields']) and count($search['fields']['allwords']['fields']) > 0) + { + $fields = array_intersect($fields, $search['fields']['allwords']['fields']); + } + // in the OR mode, request bust be : // ((field1 LIKE '%word1%' OR field2 LIKE '%word1%') // OR (field1 LIKE '%word2%' OR field2 LIKE '%word2%')) diff --git a/language/en_UK/common.lang.php b/language/en_UK/common.lang.php index c9e448a73..024eeb7ec 100644 --- a/language/en_UK/common.lang.php +++ b/language/en_UK/common.lang.php @@ -419,4 +419,7 @@ $lang['Password confirmation is missing. Please confirm the chosen password.'] = $lang['%d photos per page'] = '%d photos per page'; $lang['Theme'] = 'Theme'; $lang['No results for'] = 'No results for'; +$lang['Apply on properties'] = 'Apply on properties'; +$lang['Photo title'] = 'Photo title'; +$lang['Photo description'] = 'Photo description'; ?>
\ No newline at end of file diff --git a/language/fr_FR/common.lang.php b/language/fr_FR/common.lang.php index 208c50b83..4f2b48e35 100644 --- a/language/fr_FR/common.lang.php +++ b/language/fr_FR/common.lang.php @@ -418,4 +418,7 @@ $lang['Password is missing. Please enter the password.'] = "Le mot de passe manq $lang['Password confirmation is missing. Please confirm the chosen password.'] = "La confirmation du mot de passe manque. Veuillez confirmer le mot de passe choisi."; $lang['%d photos per page'] = '%d photos par page'; $lang['Theme'] = 'Thème'; -$lang['No results for'] = 'Aucun résultat pour';
\ No newline at end of file +$lang['No results for'] = 'Aucun résultat pour'; +$lang['Apply on properties'] = 'Appliquer sur les propriétés'; +$lang['Photo title'] = 'Titre de la photo'; +$lang['Photo description'] = 'Description de la photo'; diff --git a/search.php b/search.php index 247430fde..544eb9083 100644 --- a/search.php +++ b/search.php @@ -48,6 +48,8 @@ if (isset($_POST['submit'])) and !preg_match('/^\s*$/', $_POST['search_allwords'])) { check_input_parameter('mode', $_POST, false, '/^(OR|AND)$/'); + + $fields = array_intersect($_POST['fields'], array('name', 'comment', 'file')); $drop_char_match = array( '-','^','$',';','#','&','(',')','<','>','`','\'','"','|',',','@','_', @@ -69,6 +71,7 @@ if (isset($_POST['submit'])) ) ), 'mode' => $_POST['mode'], + 'fields' => $fields, ); } diff --git a/themes/default/template/search.tpl b/themes/default/template/search.tpl index 34b8f3625..21c61e8f7 100644 --- a/themes/default/template/search.tpl +++ b/themes/default/template/search.tpl @@ -31,39 +31,46 @@ jQuery(document).ready(function() { <form class="filter" method="post" name="search" action="{$F_SEARCH_ACTION}"> <fieldset> - <legend>{'Filter'|@translate}</legend> - <label>{'Search for words'|@translate} - <input type="text" name="search_allwords" size="35"> - </label> - <ul> - <li><label> - <input type="radio" name="mode" value="AND" checked="checked">{'Search for all terms'|@translate} - </label></li> - <li><label> - <input type="radio" name="mode" value="OR">{'Search for any term'|@translate} - </label></li> - </ul> - <label>{'Search for Author'|@translate} + <legend>{'Search for words'|@translate}</legend> + <p> + <input type="text" name="search_allwords"> + <br> + <label><input type="radio" name="mode" value="AND" checked="checked">{'Search for all terms'|@translate}</label> + <label><input type="radio" name="mode" value="OR">{'Search for any term'|@translate}</label> + </p> + + <p> + <strong>{'Apply on properties'|translate}</strong><br> + <label><input type="checkbox" name="fields[]" value="name" checked="checked">{'Photo title'|translate}</label> + <label><input type="checkbox" name="fields[]" value="comment" checked="checked">{'Photo description'|translate}</label> + <label><input type="checkbox" name="fields[]" value="file" checked="checked">{'File name'|translate}</label> + </p> + +</fieldset> + +<fieldset> + <legend>{'Search for Author'|@translate}</legend> + <p> <select id="authors" placeholder="{'Type in a search term'|translate}" name="authors[]" multiple style="width:500px;"> {foreach from=$AUTHORS item=author} <option value="{$author.author|strip_tags:false|escape:html}">{$author.author|strip_tags:false} ({$author.counter|translate_dec:'%d photo':'%d photos'})</option> {/foreach} </select> - </label> + </p> </fieldset> {if isset($TAGS)} <fieldset> <legend>{'Search tags'|@translate}</legend> - + <p> <select id="tags" placeholder="{'Type in a search term'|translate}" name="tags[]" multiple style="width:500px;"> {foreach from=$TAGS item=tag} <option value="{$tag.id}">{$tag.name} ({$tag.counter|translate_dec:'%d photo':'%d photos'})</option> {/foreach} </select> - <label><span><input type="radio" name="tag_mode" value="AND" checked="checked"> {'All tags'|@translate}</span></label> <label><span><input type="radio" name="tag_mode" value="OR"> {'Any tag'|@translate}</span></label> + </p> </fieldset> {/if} @@ -120,20 +127,13 @@ jQuery(document).ready(function() { <fieldset> <legend>{'Search in albums'|@translate}</legend> - <label>{'Albums'|@translate} + <p> <select class="categoryList" name="cat[]" multiple="multiple" size="15"> {html_options options=$category_options selected=$category_options_selected} </select> - </label> - <ul> - <li><label>{'Search in sub-albums'|@translate}</label></li> - <li><label> - <input type="radio" name="subcats-included" value="1" checked="checked">{'Yes'|@translate} - </label></li> - <li><label> - <input type="radio" name="subcats-included" value="0">{'No'|@translate} - </label></li> - </ul> + <br> + <label><input type="checkbox" name="subcats-included" value="1" checked="checked">{'Search in sub-albums'|@translate}</label> + </p> </fieldset> <p> <input class="submit" type="submit" name="submit" value="{'Submit'|@translate}"> diff --git a/themes/default/theme.css b/themes/default/theme.css index bbf5e4091..ab298ecb3 100644 --- a/themes/default/theme.css +++ b/themes/default/theme.css @@ -509,8 +509,7 @@ FIELDSET { margin: 1em; } -.filter UL, -.filter LABEL { +.filter UL { display: block; float: left; margin-right: 1em; @@ -522,15 +521,42 @@ FIELDSET { margin-bottom: 0.5em; } +.filter FIELDSET { + padding-bottom:0; +} + .filter LI LABEL { display: inline; float: none; } +.filter P { + text-align:left; + margin:0 0 15px 0; + line-height:20px; +} + +.filter input[name="search_allwords"] { + width:500px; +} + +.filter P input[type="checkbox"], .filter P input[type="radio"] { + vertical-align:middle; + margin-top:-4px; +} + +.filter input[type="submit"] { + margin-left:1em; +} + +.filter P LABEL { + margin-right:1em; +} + /*IE6 needs override because of > selector*/ .filter LABEL>INPUT, .filter LABEL>SELECT { - display: block; + /* display: block; */ margin: 0.5em 0; } |