aboutsummaryrefslogtreecommitdiff
path: root/actions/photos
diff options
context:
space:
mode:
Diffstat (limited to 'actions/photos')
-rw-r--r--actions/photos/image/tag.php99
1 files changed, 99 insertions, 0 deletions
diff --git a/actions/photos/image/tag.php b/actions/photos/image/tag.php
new file mode 100644
index 000000000..0c7ce06ae
--- /dev/null
+++ b/actions/photos/image/tag.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * Add photo tag action
+ *
+ * @author Cash Costello
+ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
+ */
+
+$coordinates_str = get_input('coordinates');
+$username = get_input('username');
+$image_guid = get_input('guid');
+
+if ($image_guid == 0) {
+ register_error(elgg_echo("tidypics:phototagging:error"));
+ forward(REFERER);
+}
+
+$image = get_entity($image_guid);
+if (!$image) {
+ register_error(elgg_echo("tidypics:phototagging:error"));
+ forward(REFERER);
+}
+
+if (empty($username)) {
+ register_error(elgg_echo("tidypics:phototagging:error"));
+ forward(REFERER);
+}
+
+/*
+$new_word_tag = false;
+if ($user_id != 0) {
+ $relationships_type = 'user';
+ $value = $user_id;
+} else {
+ $relationships_type = 'word';
+ $value = $word;
+
+ // check to see if the photo has this tag and add if not
+ if (!is_array($image->tags)) {
+ if ($image->tags != $word) {
+ $new_word_tag = true;
+ $tagarray = $image->tags . ',' . $word;
+ $tagarray = string_to_tag_array($tagarray);
+ }
+ } else {
+ if (!in_array($word, $image->tags)) {
+ $new_word_tag = true;
+ $tagarray = $image->tags;
+ $tagarray[] = $word;
+ }
+ }
+}
+
+// add new tag now so it is available in search
+if ($new_word_tag) {
+ $image->clearMetadata('tags');
+ $image->tags = $tagarray;
+}
+*/
+
+$tag = new stdClass();
+$tag->coords = $coordinates_str;
+$tag->type = 'user';
+$tag->value = get_user_by_username($username)->getGUID();
+$access_id = $image->getAccessID();
+
+$annotation_id = $image->annotate('phototag', serialize($tag), $access_id);
+if ($annotation_id) {
+ // if tag is a user id, add relationship for searching (find all images with user x)
+ if ($tag->type === 'user') {
+ if (!check_entity_relationship($tag->value, 'phototag', $image_guid)) {
+ add_entity_relationship($tag->value, 'phototag', $image_guid);
+/*
+ // also add this to the river - subject is image, object is the tagged user
+ add_to_river('river/object/image/tag', 'tag', $tagger->guid, $user_id, $access_id, 0, $annotation_id);
+
+ // notify user of tagging as long as not self
+ if ($owner_id != $user_id) {
+ notify_user(
+ $user_id,
+ $owner_id,
+ elgg_echo('tidypics:tag:subject'),
+ sprintf(
+ elgg_echo('tidypics:tag:body'),
+ $image->title,
+ $tagger->name,
+ $image->getURL()
+ )
+ );
+ }
+ *
+ */
+ }
+ }
+
+ system_message(elgg_echo("tidypics:phototagging:success"));
+}
+
+forward(REFERER);