aboutsummaryrefslogtreecommitdiffstats
path: root/admin/tags.php
diff options
context:
space:
mode:
Diffstat (limited to 'admin/tags.php')
-rw-r--r--admin/tags.php182
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&amp;action=delete_orphans&amp;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&amp;action=delete_orphans&amp;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&amp;tag='.$tag['id'];
+ $tag['U_EDIT'] = 'admin.php?page=batch_manager&amp;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'],
)
);
}