From 279f14eff94f44fd26687e4b1c6d43ded12230b7 Mon Sep 17 00:00:00 2001 From: rub Date: Thu, 1 Nov 2007 17:11:52 +0000 Subject: Resolved issue 0000774: Statistics & plugin triggers => multi history First part Merge branch-1_7 2155:2156 into BSF git-svn-id: http://piwigo.org/svn/trunk@2157 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/history.php | 139 ++++++------------------------------------------------ 1 file changed, 14 insertions(+), 125 deletions(-) (limited to 'admin/history.php') diff --git a/admin/history.php b/admin/history.php index a7056f838..0a5d64284 100644 --- a/admin/history.php +++ b/admin/history.php @@ -92,7 +92,14 @@ if (isset($_POST['submit'])) ); } - $search['fields']['types'] = $_POST['types']; + if (empty($_POST['types'])) + { + $search['fields']['types'] = $types; + } + else + { + $search['fields']['types'] = $_POST['types']; + } $search['fields']['user'] = $_POST['user']; @@ -195,7 +202,7 @@ SELECT rules } $page['search']['fields']['user'] = $_GET['user_id']; - + $query =' INSERT INTO '.SEARCH_TABLE.' (rules) @@ -211,137 +218,19 @@ INSERT INTO '.SEARCH_TABLE.' ); } - - if (isset($page['search']['fields']['filename'])) - { - $query = ' -SELECT - id - FROM '.IMAGES_TABLE.' - WHERE file LIKE \''.$page['search']['fields']['filename'].'\' -;'; - $page['search']['image_ids'] = array_from_query($query, 'id'); - } - - // echo '
'; print_r($page['search']); echo '
'; - - $clauses = array(); - - if (isset($page['search']['fields']['date-after'])) - { - array_push( - $clauses, - "date >= '".$page['search']['fields']['date-after']."'" - ); - } - - if (isset($page['search']['fields']['date-before'])) - { - array_push( - $clauses, - "date <= '".$page['search']['fields']['date-before']."'" - ); - } - - if (isset($page['search']['fields']['types'])) - { - $local_clauses = array(); - - foreach ($types as $type) { - if (in_array($type, $page['search']['fields']['types'])) { - $clause = 'image_type '; - if ($type == 'none') - { - $clause.= 'IS NULL'; - } - else - { - $clause.= "= '".$type."'"; - } - - array_push($local_clauses, $clause); - } - } - - if (count($local_clauses) > 0) - { - array_push( - $clauses, - implode(' OR ', $local_clauses) - ); - } - } - - if (isset($page['search']['fields']['user']) - and $page['search']['fields']['user'] != -1) - { - array_push( - $clauses, - 'user_id = '.$page['search']['fields']['user'] - ); - } - - if (isset($page['search']['fields']['image_id'])) - { - array_push( - $clauses, - 'image_id = '.$page['search']['fields']['image_id'] - ); - } - - if (isset($page['search']['fields']['filename'])) - { - if (count($page['search']['image_ids']) == 0) - { - // a clause that is always false - array_push($clauses, '1 = 2 '); - } - else - { - array_push( - $clauses, - 'image_id IN ('.implode(', ', $page['search']['image_ids']).')' - ); - } - } - - $clauses = prepend_append_array_items($clauses, '(', ')'); - - $where_separator = - implode( - "\n AND ", - $clauses - ); - - $query = ' -SELECT - date, - time, - user_id, - IP, - section, - category_id, - tag_ids, - image_id, - image_type - FROM '.HISTORY_TABLE.' - WHERE '.$where_separator.' -;'; + $data = trigger_event('get_history', array(), $page['search'], $types); + usort($data, 'history_compare'); - // LIMIT '.$page['start'].', '.$conf['nb_logs_page'].' + $page['nb_lines'] = count($data); - $result = pwg_query($query); - - $page['nb_lines'] = mysql_num_rows($result); - $history_lines = array(); $user_ids = array(); $username_of = array(); $category_ids = array(); $image_ids = array(); $tag_ids = array(); - - while ($row = mysql_fetch_assoc($result)) + + foreach ($data as $row) { $user_ids[$row['user_id']] = 1; -- cgit v1.2.3