aboutsummaryrefslogtreecommitdiff
path: root/actions/deletetag.php
blob: 97c1081f89f1bd2f61e79f743d935e90f8bf905c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
/**
 * Tidypics Delete Photo Tag
 *
 */

gatekeeper();
action_gatekeeper();

$image_guid = get_input('image_guid');
$tags = get_input('tags');


if ($image_guid == 0) {
	register_error(elgg_echo("tidypics:phototagging:error"));
	forward($_SERVER['HTTP_REFERER']);
}

$image = get_entity($image_guid);
if (!$image) {
	register_error(elgg_echo("tidypics:phototagging:error"));
	forward($_SERVER['HTTP_REFERER']);
}

foreach ($tags as $id => $value) {
	// delete normal tag if it exists
	if (is_array($image->tags)) {
		$index = array_search($value, $image->tags);
		if ($index !== false) {
			$tagarray = $image->tags;
			unset($tagarray[$index]);
			$image->clearMetadata('tags');
			$image->tags = $tagarray;
		}
	} else {
		if ($value === $image->tags) {
			$image->clearMetadata('tags');
		}
	}

	// delete relationship if this tag is a user
	$annotation = get_annotation($id);
	$photo_tag = unserialize($annotation->value);
	if ($photo_tag->type == 'user') {
		remove_entity_relationship($photo_tag->value, 'phototag', $image_guid);
	}

	// delete the photo tag annotation
	delete_annotation($id);
}

system_message(elgg_echo("tidypics:deletetag:success"));

forward($_SERVER['HTTP_REFERER']);