diff options
Diffstat (limited to 'admin/tags.php')
-rw-r--r-- | admin/tags.php | 182 |
1 files changed, 54 insertions, 128 deletions
diff --git a/admin/tags.php b/admin/tags.php index 008bba667..a7c58f796 100644 --- a/admin/tags.php +++ b/admin/tags.php @@ -2,7 +2,7 @@ // +-----------------------------------------------------------------------+ // | Piwigo - a PHP based photo gallery | // +-----------------------------------------------------------------------+ -// | Copyright(C) 2008-2013 Piwigo Team http://piwigo.org | +// | Copyright(C) 2008-2014 Piwigo Team http://piwigo.org | // | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | // | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | // +-----------------------------------------------------------------------+ @@ -38,7 +38,7 @@ if (!empty($_POST)) // | edit tags | // +-----------------------------------------------------------------------+ -if (isset($_POST['submit'])) +if (isset($_POST['edit_submit'])) { $query = ' SELECT name @@ -69,23 +69,14 @@ SELECT id, name { if (in_array($tag_name, $existing_names)) { - array_push( - $page['errors'], - sprintf( - l10n('Tag "%s" already exists'), - $tag_name - ) - ); + $page['errors'][] = l10n('Tag "%s" already exists', $tag_name); } else if (!empty($tag_name)) { - array_push( - $updates, - array( - 'id' => $tag_id, - 'name' => addslashes($tag_name), - 'url_name' => trigger_event('render_tag_url', $tag_name), - ) + $updates[] = array( + 'id' => $tag_id, + 'name' => addslashes($tag_name), + 'url_name' => trigger_event('render_tag_url', $tag_name), ); } } @@ -134,26 +125,18 @@ SELECT id, name { if (in_array($tag_name, $existing_names)) { - array_push( - $page['errors'], - sprintf( - l10n('Tag "%s" already exists'), - $tag_name - ) - ); + $page['errors'][] = l10n('Tag "%s" already exists', $tag_name); } else if (!empty($tag_name)) { - mass_inserts( + single_insert( TAGS_TABLE, - array('name', 'url_name'), array( - array( - 'name' => $tag_name, - 'url_name' => trigger_event('render_tag_url', $tag_name), - ) + 'name' => $tag_name, + 'url_name' => trigger_event('render_tag_url', $tag_name), ) ); + $query = ' SELECT id FROM '.TAGS_TABLE.' @@ -161,6 +144,7 @@ SELECT id, name ;'; $destination_tag = array_from_query($query, 'id'); $destination_tag_id = $destination_tag[0]; + $query = ' SELECT image_id @@ -168,15 +152,13 @@ SELECT id, name WHERE tag_id = '.$tag_id.' ;'; $destination_tag_image_ids = array_from_query($query, 'image_id'); + $inserts = array(); foreach ($destination_tag_image_ids as $image_id) { - array_push( - $inserts, - array( - 'tag_id' => $destination_tag_id, - 'image_id' => $image_id - ) + $inserts[] = array( + 'tag_id' => $destination_tag_id, + 'image_id' => $image_id ); } @@ -188,17 +170,16 @@ SELECT id, name $inserts ); } - array_push( - $page['infos'], - sprintf( - l10n('Tag "%s" is now a duplicate of "%s"'), - stripslashes($tag_name), - $current_name_of[$tag_id] - ) + + $page['infos'][] = l10n( + 'Tag "%s" is now a duplicate of "%s"', + stripslashes($tag_name), + $current_name_of[$tag_id] ); } } } + mass_updates( TAGS_TABLE, array( @@ -213,14 +194,11 @@ SELECT id, name // | merge tags | // +-----------------------------------------------------------------------+ -if (isset($_POST['confirm_merge'])) +if (isset($_POST['merge_submit'])) { if (!isset($_POST['destination_tag'])) { - array_push( - $page['errors'], - l10n('No destination tag selected') - ); + $page['errors'][] = l10n('No destination tag selected'); } else { @@ -240,7 +218,7 @@ SELECT $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { - $name_of_tag[ $row['id'] ] = trigger_event('render_tag_name', $row['name']); + $name_of_tag[ $row['id'] ] = trigger_event('render_tag_name', $row['name'], $row); } $tag_ids_to_delete = array_diff( @@ -274,12 +252,9 @@ SELECT $inserts = array(); foreach ($image_ids_to_link as $image_id) { - array_push( - $inserts, - array( - 'tag_id' => $destination_tag_id, - 'image_id' => $image_id - ) + $inserts[] = array( + 'tag_id' => $destination_tag_id, + 'image_id' => $image_id ); } @@ -298,13 +273,10 @@ SELECT $tags_deleted[] = $name_of_tag[$tag_id]; } - array_push( - $page['infos'], - sprintf( - l10n('Tags <em>%s</em> merged into tag <em>%s</em>'), - implode(', ', $tags_deleted), - $name_of_tag[$destination_tag_id] - ) + $page['infos'][] = l10n( + 'Tags <em>%s</em> merged into tag <em>%s</em>', + implode(', ', $tags_deleted), + $name_of_tag[$destination_tag_id] ); } } @@ -326,14 +298,11 @@ SELECT name delete_tags($_POST['tags']); - array_push( - $page['infos'], - l10n_dec( - 'The following tag was deleted', - 'The %d following tags were deleted', - count($tag_names)).' : '. - implode(', ', $tag_names) - ); + $page['infos'][] = l10n_dec( + 'The following tag was deleted', 'The %d following tags were deleted', + count($tag_names) + ) + .' : '.implode(', ', $tag_names); } // +-----------------------------------------------------------------------+ @@ -355,46 +324,15 @@ if (isset($_GET['action']) and 'delete_orphans' == $_GET['action']) if (isset($_POST['add']) and !empty($_POST['add_tag'])) { - $tag_name = $_POST['add_tag']; - - // does the tag already exists? - $query = ' -SELECT id - FROM '.TAGS_TABLE.' - WHERE name = \''.$tag_name.'\' -;'; - $existing_tags = array_from_query($query, 'id'); - - if (count($existing_tags) == 0) + $ret = create_tag($_POST['add_tag']); + + if (isset($ret['error'])) { - mass_inserts( - TAGS_TABLE, - array('name', 'url_name'), - array( - array( - 'name' => $tag_name, - 'url_name' => trigger_event('render_tag_url', $tag_name), - ) - ) - ); - - array_push( - $page['infos'], - sprintf( - l10n('Tag "%s" was added'), - stripslashes($tag_name) - ) - ); + $page['errors'][] = $ret['error']; } else { - array_push( - $page['errors'], - sprintf( - l10n('Tag "%s" already exists'), - stripslashes($tag_name) - ) - ); + $page['infos'][] = $ret['info']; } } @@ -420,19 +358,16 @@ $orphan_tags = get_orphan_tags(); $orphan_tag_names = array(); foreach ($orphan_tags as $tag) { - array_push($orphan_tag_names, trigger_event('render_tag_name', $tag['name'])); + $orphan_tag_names[] = trigger_event('render_tag_name', $tag['name'], $tag); } if (count($orphan_tag_names) > 0) { - array_push( - $page['warnings'], - sprintf( - l10n('You have %d orphan tags: %s.').' <a href="%s">'.l10n('Delete orphan tags').'</a>', - count($orphan_tag_names), - implode(', ', $orphan_tag_names), - get_root_url().'admin.php?page=tags&action=delete_orphans&pwg_token='.get_pwg_token() - ) + $page['warnings'][] = sprintf( + l10n('You have %d orphan tags: %s.').' <a href="%s">'.l10n('Delete orphan tags').'</a>', + count($orphan_tag_names), + implode(', ', $orphan_tag_names), + get_root_url().'admin.php?page=tags&action=delete_orphans&pwg_token='.get_pwg_token() ); } @@ -458,10 +393,10 @@ $all_tags = array(); while ($tag = pwg_db_fetch_assoc($result)) { $raw_name = $tag['name']; - $tag['name'] = trigger_event('render_tag_name', $raw_name); + $tag['name'] = trigger_event('render_tag_name', $raw_name, $tag); $tag['counter'] = intval(@$tag_counters[ $tag['id'] ]); $tag['U_VIEW'] = make_index_url(array('tags'=>array($tag))); - $tag['U_EDIT'] = 'admin.php?page=batch_manager&tag='.$tag['id']; + $tag['U_EDIT'] = 'admin.php?page=batch_manager&filter=tag-'.$tag['id']; $alt_names = trigger_event('get_tag_alt_names', array(), $raw_name); $alt_names = array_diff( array_unique($alt_names), array($tag['name']) ); @@ -493,11 +428,7 @@ if ((isset($_POST['edit']) or isset($_POST['duplicate']) or isset($_POST['merge' $list_name = 'MERGE_TAGS_LIST'; } - $template->assign( - array( - $list_name => implode(',', $_POST['tags']), - ) - ); + $template->assign($list_name, implode(',', $_POST['tags'])); $query = ' SELECT id, name @@ -507,16 +438,11 @@ SELECT id, name $result = pwg_query($query); while ($row = pwg_db_fetch_assoc($result)) { - $name_of[ $row['id'] ] = $row['name']; - } - - foreach ($_POST['tags'] as $tag_id) - { $template->append( 'tags', array( - 'ID' => $tag_id, - 'NAME' => $name_of[$tag_id], + 'ID' => $row['id'], + 'NAME' => $row['name'], ) ); } |