aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2014-06-16 13:53:16 +0000
committerplegall <plg@piwigo.org>2014-06-16 13:53:16 +0000
commit0511ed2236b1fab9bc9c23b6c3bbee82ee4efdb5 (patch)
tree39d968320efbfd7f6ff79843a47cbac3cf49a21b
parentaacdb5a8bd5ed9936bc6d44a60b8b86a4e12283c (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.php37
-rw-r--r--themes/default/template/search.tpl17
-rw-r--r--themes/default/theme.css1
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,