diff options
Diffstat (limited to 'admin')
-rw-r--r-- | admin/history.php | 101 | ||||
-rw-r--r-- | admin/include/functions.php | 101 |
2 files changed, 193 insertions, 9 deletions
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 '<pre>'; print_r($search); echo '</pre>'; 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.= ' ;'; @@ -1902,6 +1905,97 @@ SELECT image_id } /** + * 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 = '<export>'."\n"; + + $query = ' +SELECT tag_id, + image_id + FROM '.IMAGE_TAG_TABLE.' + WHERE image_id IN ('.implode(',', $image_ids).') +;'; + $result = pwg_query($query); + $tags_of = array(); + $all_tag_ids = array(); + $tag_name_of = array(); + + if (mysql_num_rows($result)) + { + while ($row = mysql_fetch_array($result)) + { + array_push($all_tag_ids, $row['tag_id']); + + if (!isset($tags_of[ $row['image_id'] ])) { + $tags_of[ $row['image_id'] ] = array(); + } + + array_push( + $tags_of[ $row['image_id'] ], + $row['tag_id'] + ); + } + + $all_tag_ids = array_unique($all_tag_ids); + + $query = ' +SELECT id, + name + FROM '.TAGS_TABLE.' + WHERE id IN ('.implode(',', $all_tag_ids).') +;'; + $result = pwg_query($query); + + while ($row = mysql_fetch_array($result)) + { + $tag_name_of[ $row['id'] ] = $row['name']; + } + } + + $query = ' +SELECT id, + path + FROM '.IMAGES_TABLE.' + WHERE id IN ('.implode(',', $image_ids).') +;'; + $result = pwg_query($query); + + while ($row = mysql_fetch_array($result)) + { + $xml_string.= " <photo>\n"; + $xml_string.= " <id>".$row['id']."</id>\n"; + $xml_string.= " <path>".$row['path']."</path>\n"; + + foreach ($tags_of[ $row['id'] ] as $tag_id) + { + $xml_string.= " <tag>".$tag_name_of[$tag_id]."</tag>\n"; + } + + $xml_string.= " </photo>\n"; + } + + $xml_string.= '</export>'; + fwrite($fp, $xml_string); + fclose($fp); +} + +/** * Check configuration and add notes on problem * * @param void @@ -1937,7 +2031,6 @@ function check_conf() ); } } - /** * Refer main PhpWebGallery URLs (currently PHPWG_DOMAIN domain) * |