diff options
author | plegall <plg@piwigo.org> | 2014-06-16 13:53:16 +0000 |
---|---|---|
committer | plegall <plg@piwigo.org> | 2014-06-16 13:53:16 +0000 |
commit | 0511ed2236b1fab9bc9c23b6c3bbee82ee4efdb5 (patch) | |
tree | 39d968320efbfd7f6ff79843a47cbac3cf49a21b | |
parent | aacdb5a8bd5ed9936bc6d44a60b8b86a4e12283c (diff) |
feature 3091: search.php (advanced search), display a list of known authors instead of a text field.
git-svn-id: http://piwigo.org/svn/trunk@28707 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | search.php | 37 | ||||
-rw-r--r-- | themes/default/template/search.tpl | 17 | ||||
-rw-r--r-- | themes/default/theme.css | 1 |
3 files changed, 48 insertions, 7 deletions
diff --git a/search.php b/search.php index 821412730..2846d52ed 100644 --- a/search.php +++ b/search.php @@ -83,13 +83,17 @@ if (isset($_POST['submit'])) ); } - if ($_POST['search_author']) + if (isset($_POST['authors']) and is_array($_POST['authors']) and count($_POST['authors']) > 0) { + $authors = array(); + + foreach ($_POST['authors'] as $author) + { + $authors[] = strip_tags($author); + } + $search['fields']['author'] = array( - 'words' => preg_split( - '/\s+/', - strip_tags($_POST['search_author']) - ), + 'words' => $authors, 'mode' => 'OR', ); } @@ -210,6 +214,29 @@ if (count($available_tags) > 0) ); } +// authors +$query = ' +SELECT + author, + COUNT(*) AS counter + FROM '.IMAGES_TABLE.' AS i + JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON ic.image_id = i.id + '.get_sql_condition_FandF( + array( + 'forbidden_categories' => 'category_id', + 'visible_categories' => 'category_id', + 'visible_images' => 'ic.image_id' + ), + ' WHERE ' + ).' + AND author IS NOT NULL + GROUP BY author + ORDER BY author +;'; +$authors = query2array($query); + +$template->assign('AUTHORS', $authors); + //------------------------------------------------------------- categories form $query = ' SELECT id,name,global_rank,uppercats diff --git a/themes/default/template/search.tpl b/themes/default/template/search.tpl index 56c142182..09257ef96 100644 --- a/themes/default/template/search.tpl +++ b/themes/default/template/search.tpl @@ -3,6 +3,17 @@ {include file='include/resize.inc.tpl'} *} +{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} +{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.dark.css"} + +{footer_script} +jQuery(document).ready(function() { + jQuery("#authors").selectize({ + plugins: ['remove_button'] + }); +}); +{/footer_script} + {if isset($MENUBAR)}{$MENUBAR}{/if} <div id="content" class="content{if isset($MENUBAR)} contentWithMenu{/if}"> @@ -33,7 +44,11 @@ </label></li> </ul> <label>{'Search for Author'|@translate} - <input type="text" name="search_author" size="35"> + <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} ({'%d photos'|translate:$author.counter})</option> +{/foreach} + </select> </label> </fieldset> diff --git a/themes/default/theme.css b/themes/default/theme.css index 08114a392..bbf5e4091 100644 --- a/themes/default/theme.css +++ b/themes/default/theme.css @@ -507,7 +507,6 @@ SELECT.categoryList { FIELDSET { padding: 1em; margin: 1em; - overflow: hidden; /* <- makes Opera happy */ } .filter UL, |