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 /search.php | |
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 'search.php')
-rw-r--r-- | search.php | 37 |
1 files changed, 32 insertions, 5 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 |