diff --git a/action.php b/action.php index 586d730a3..73ac6d72b 100644 --- a/action.php +++ b/action.php @@ -61,17 +61,17 @@ function do_error( $code, $str ) } -if ( !isset($_GET['id']) or !is_numeric($_GET['id']) +if (!isset($_GET['id']) + or !is_numeric($_GET['id']) or !isset($_GET['part']) or !in_array($_GET['part'], array('t','e','i','h') ) ) { do_error(400, 'Invalid request - id/part'); } -$id = $_GET['id']; $query = ' SELECT * FROM '. IMAGES_TABLE.' - WHERE id='.$id.' + WHERE id='.$_GET['id'].' ;'; $result = pwg_query($query); @@ -84,11 +84,14 @@ if ( empty($element_info) ) // $filter['visible_categories'] and $filter['visible_images'] // are not used because it's not necessary (filter <> restriction) $query=' -SELECT id FROM '.CATEGORIES_TABLE.' - INNER JOIN '.IMAGE_CATEGORY_TABLE.' - ON category_id=id - WHERE image_id='.$id.' -'.get_sql_condition_FandF(array('forbidden_categories' => 'category_id'), 'AND').' +SELECT id + FROM '.CATEGORIES_TABLE.' + INNER JOIN '.IMAGE_CATEGORY_TABLE.' ON category_id = id + WHERE image_id = '.$_GET['id'].' +'.get_sql_condition_FandF( + array('forbidden_categories' => 'category_id'), + ' AND' + ).' LIMIT 1 ;'; if ( mysql_num_rows(pwg_query($query))<1 ) @@ -123,6 +126,11 @@ if ( empty($file) ) do_error(404, 'Requested file not found'); } +if ($_GET['part'] == 'h') { + $is_high = true; + pwg_log($_GET['id'], $is_high); +} + $http_headers = array(); $ctype = null; diff --git a/admin/history.php b/admin/history.php index ea7add177..516e940cf 100644 --- a/admin/history.php +++ b/admin/history.php @@ -94,6 +94,9 @@ if (isset($_POST['submit'])) ); } + $search['fields']['pictures'] = $_POST['pictures']; + $search['fields']['high'] = $_POST['high']; + // echo '
'; print_r($search); echo ''; if (!empty($search)) @@ -181,6 +184,46 @@ SELECT rules ); } + if (isset($page['search']['fields']['pictures'])) + { + $clause = null; + + if ($page['search']['fields']['pictures'] == 'no') + { + $clause = 'image_id IS NULL'; + } + + if ($page['search']['fields']['pictures'] == 'only') + { + $clause = 'image_id IS NOT NULL'; + } + + if (isset($clause)) + { + array_push($clauses, $clause); + } + } + + if (isset($page['search']['fields']['high'])) + { + $clause = null; + + if ($page['search']['fields']['high'] == 'no') + { + $clause = "is_high IS NULL or is_high = 'false'"; + } + + if ($page['search']['fields']['high'] == 'only') + { + $clause = "is_high = 'true'"; + } + + if (isset($clause)) + { + array_push($clauses, $clause); + } + } + $clauses = prepend_append_array_items($clauses, '(', ')'); $where_separator = @@ -198,7 +241,16 @@ SELECT COUNT(*) list($page['nb_lines']) = mysql_fetch_row(pwg_query($query)); $query = ' -SELECT date, time, user_id, IP, section, category_id, tag_ids, image_id +SELECT + date, + time, + user_id, + IP, + section, + category_id, + tag_ids, + image_id, + is_high FROM '.HISTORY_TABLE.' WHERE '.$where_separator.' LIMIT '.$page['start'].', '.$conf['nb_logs_page'].' @@ -298,6 +350,18 @@ SELECT id, IF(name IS NULL, file, name) AS label 'T_CLASS' => ($i++ % 2) ? 'row1' : 'row2', ) ); + + if (isset($line['image_id'])) + { + if ($line['is_high'] == 'true') + { + $template->assign_block_vars('detail.high', array()); + } + else + { + $template->assign_block_vars('detail.no_high', array()); + } + } } } @@ -351,11 +415,14 @@ if (isset($page['search'])) if (isset($page['search']['fields']['date-before'])) { $tokens = explode('-', $page['search']['fields']['date-before']); - - (int)$tokens[0]; - (int)$tokens[1]; - (int)$tokens[2]; + + $form['end_year'] = (int)$tokens[0]; + $form['end_month'] = (int)$tokens[1]; + $form['end_day'] = (int)$tokens[2]; } + + $form['pictures'] = $page['search']['fields']['pictures']; + $form['high'] = $page['search']['fields']['high']; } else { @@ -364,6 +431,8 @@ else $form['start_year'] = $form['end_year'] = date('Y'); $form['start_month'] = $form['end_month'] = date('n'); $form['start_day'] = $form['end_day'] = date('j'); + $form['pictures'] = 'yes'; + $form['high'] = 'yes'; } // start date @@ -379,6 +448,28 @@ $template->assign_vars( 'END_YEAR' => @$form['end_year'], ) ); + +foreach (array('pictures', 'high') as $block) +{ + foreach (array('yes', 'no', 'only') as $item) + { + $selected = ''; + + if ($item == $form[$block]) + { + $selected = 'selected="selected"'; + } + + $template->assign_block_vars( + $block.'_option', + array( + 'VALUE' => $item, + 'CONTENT' => l10n($item), + 'SELECTED' => $selected, + ) + ); + } +} // +-----------------------------------------------------------------------+ // | html code display | diff --git a/admin/include/functions.php b/admin/include/functions.php index 4c56dc20f..ad493f877 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -606,7 +606,7 @@ function mass_updates($tablename, $dbfields, $datas) UPDATE '.$tablename.' SET '; $is_first = true; - foreach ($dbfields['update'] as $num => $key) + foreach ($dbfields['update'] as $key) { if (!$is_first) { @@ -625,13 +625,16 @@ function mass_updates($tablename, $dbfields, $datas) } $query.= ' WHERE '; - foreach ($dbfields['primary'] as $num => $key) + + $is_first = true; + foreach ($dbfields['primary'] as $key) { - if ($num > 1) + if (!$is_first) { $query.= ' AND '; } $query.= $key.' = \''.$data[$key].'\''; + $is_first = false; } $query.= ' ;'; @@ -1901,6 +1904,97 @@ SELECT image_id associate_images_to_categories($images, $destinations); } +/** + * Create an XML file with PhpWebGallery informations about a list of + * pictures. + * + * The goal of the export feature is to make easier the reading of + * informations related to pictures outside of PhpWebGallery. + * + * @param array image_ids + */ +function export_pwg_data($image_ids) +{ + global $conf; + + if (count($image_ids) == 0) + { + return; + } + + $fp = fopen($conf['export_file'], 'w'); + $xml_string = '