diff options
Diffstat (limited to 'admin/include')
-rw-r--r-- | admin/include/functions.php | 101 |
1 files changed, 97 insertions, 4 deletions
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) * |