]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
added delete phototags capability
authorCash Costello <cash.costello@gmail.com>
Tue, 16 Jun 2009 01:39:32 +0000 (01:39 +0000)
committerCash Costello <cash.costello@gmail.com>
Tue, 16 Jun 2009 01:39:32 +0000 (01:39 +0000)
actions/deletetag.php [new file with mode: 0644]
languages/en.php
start.php
views/default/js/tagging.php
views/default/object/image.php
views/default/tidypics/css.php
views/default/tidypics/image_menu.php
views/default/tidypics/tagging.php

diff --git a/actions/deletetag.php b/actions/deletetag.php
new file mode 100644 (file)
index 0000000..cd76b0a
--- /dev/null
@@ -0,0 +1,51 @@
+<?php\r
+       /**\r
+        * Tidypics Delete Photo Tag\r
+        * \r
+        */\r
+\r
+       gatekeeper();\r
+       action_gatekeeper();\r
+\r
+       //$user_id = get_input('user_id');\r
+       $image_guid = get_input('image_guid');\r
+       $tags = get_input('tags');\r
+       \r
+       \r
+       if ($image_guid == 0) {\r
+               register_error(elgg_echo("tidypics:phototagging:error"));\r
+               forward($_SERVER['HTTP_REFERER']);\r
+       }\r
+\r
+       $image = get_entity($image_guid);\r
+       if (!$image)\r
+       {\r
+               register_error(elgg_echo("tidypics:phototagging:error"));\r
+               forward($_SERVER['HTTP_REFERER']);\r
+       }\r
+       \r
+       foreach ($tags as $id => $value) {\r
+               // delete normal tag if it exists\r
+               if (is_array($image->tags)) {\r
+                       $index = array_search($value[0], $image->tags);\r
+                       if ($index !== false) {\r
+                               $tagarray = $image->tags;\r
+                               unset($tagarray[$index]);\r
+                               $image->clearMetadata('tags');\r
+                               $image->tags = $tagarray;\r
+                       }\r
+               } else {\r
+                       if ($value[0] === $image->tags) {\r
+                               $image->clearMetadata('tags');\r
+                       }\r
+               }\r
+               \r
+               // delete the photo tag annotation\r
+               delete_annotation($id);\r
+       }\r
+       \r
+       system_message(elgg_echo("tidypics:deletetag:success"));\r
+\r
+       forward($_SERVER['HTTP_REFERER']);\r
+\r
+?>\r
index f1f3ed543721474adac5a3380e7357558abd0fef..7c452c6e41c7bd1bcbd95637b0c4520d7d5107af 100644 (file)
                        \r
                // tagging\r
                        'tidypics:taginstruct' => 'Select area that you want to tag',\r
+                       'tidypics:deltag_title' => 'Select tags to delete',\r
                        'tidypics:finish_tagging' => 'Stop tagging',\r
                        'tidypics:tagthisphoto' => 'Tag this photo',\r
+                       'tidypics:deletetag' => 'Delete a photo tag',\r
                        'tidypics:actiontag' => 'Tag',\r
+                       'tidypics:actiondelete' => 'Delete',\r
+                       'tidypics:actioncancel' => 'Cancel',\r
                        'tidypics:inthisphoto' => 'In this photo',\r
                        'tidypics:phototagging:success' => 'Photo tag was successfully added',\r
                        'tidypics:phototagging:error' => 'Unexpected error occurred during tagging',\r
+                       'tidypics:deletetag:success' => 'Selected tags were successfully deleted',\r
+                       \r
                \r
                //widgets\r
                \r
index 2d4d407825baad6176f43287f5593c4e2821e5d5..082dc1507de739abe8446b061a077fba8da60356 100644 (file)
--- a/start.php
+++ b/start.php
        register_action("tidypics/edit_multi", false, $CONFIG->pluginspath. "tidypics/actions/edit_multi.php");\r
        register_action("tidypics/download", true, $CONFIG->pluginspath . "tidypics/actions/download.php");\r
        register_action("tidypics/addtag", true, $CONFIG->pluginspath . "tidypics/actions/addtag.php");\r
+       register_action("tidypics/deletetag", true, $CONFIG->pluginspath . "tidypics/actions/deletetag.php");\r
 \r
 ?>
\ No newline at end of file
index e27af7fca3e3cd4acdf2dc13b702ccc7139e9068..a79914196ae0ae6ecfcb286d7e3752414fc14bbb 100644 (file)
                $('#tag_control').text("Stop Tagging");\r
                \r
                showTagInstruct();\r
-               \r
+               $('#delete_tag_menu').hide();\r
 \r
                $('#tidypics_image').hover(\r
                        function(){\r
                //Show loading\r
                //$("#tag_menu").replaceWith('<div align="center" class="ajax_loader"></div>');\r
        }\r
+\r
+       function deleteTags()\r
+       {\r
+               offsetY = 60;\r
+               \r
+               divWidth = $('#delete_tag_menu').width();\r
+               imgOffset = $('#tidypics_image').offset();\r
+               imgWidth  = $('#tidypics_image').width();\r
+               offsetX   = parseInt((imgWidth - divWidth)/2);\r
+               \r
+               _top = imgOffset.top + offsetY;\r
+               _left = imgOffset.left + offsetX;\r
+\r
+               $('#delete_tag_menu').show().css({\r
+                       "top": _top + "px",\r
+                       "left": _left + "px"\r
+               });\r
+               \r
+               $('#tidypics_image').hover(\r
+                       function(){\r
+                               $('.tidypics_tag').hide();\r
+                       },\r
+                       function(){\r
+                               $('.tidypics_tag').hide();\r
+                       }\r
+               );\r
+       }\r
 </script>
\ No newline at end of file
index 64109f1a2cdb96bb920fe7f58197442b0c32e13a..1ab2e921a76ef5744b326845a10844268e59a488 100644 (file)
@@ -47,6 +47,7 @@ if ($photo_tags) {
                        $photo_tags_json .= '{' . $photo_tag->coords . ',"text":"' . $phototag_text . '","id":"' . $p->id . '"},';
                
                $photo_tag_links[] = array($p->id, $phototag_text); // gave up on associative array for now
+               $photo_tag_texts[$p->id] = $phototag_text;
        }
        $photo_tags_json = rtrim($photo_tags_json,',');
        $photo_tags_json .= ']';
@@ -184,16 +185,19 @@ if ($photo_tags) {
                </div>
 <?php
                        // image menu (start tagging, download, etc.)
+                       
                        echo '<div id="tidypics_controls"><ul>';
                        echo elgg_view('tidypics/image_menu', array('file_guid' => $file_guid, 
                                                                                                                'viewer' => $viewer,
-                                                                                                               'owner' => $owner,) );
+                                                                                                               'owner' => $owner,
+                                                                                                               'anytags' => $photo_tags != '',) );
                        echo '</ul></div>'; 
                        
                        // tagging code
                        if (get_plugin_setting('tagging', 'tidypics') != "disabled") {
                                echo elgg_view('tidypics/tagging', array(       'photo_tags' => $photo_tags, 
                                                                                                                        'links' => $photo_tag_links,
+                                                                                                                       'text' => $photo_tag_texts,
                                                                                                                        'photo_tags_json' => $photo_tags_json,
                                                                                                                        'file_guid' => $file_guid,
                                                                                                                        'viewer' => $viewer,
index bc0073734b8e323998c134f9e1b6ff6df4afa97c..7564f1eaf3ff161d7596fb048dac600253798225 100644 (file)
@@ -230,6 +230,18 @@ font-size:12px;
 text-align:left;
 }
 
+#delete_tag_menu {
+border:1px solid #3B5999; 
+width:200px; 
+position:absolute;
+z-index:10000; 
+display:none; 
+background:#ffffff; 
+padding:10px; 
+font-size:12px; 
+text-align:left;
+}
+
 .tidypics_tag {
 display:none;
 background:url(<?php echo $vars['url']; ?>mod/tidypics/graphics/spacer.gif); 
index 9257d780afb57b6a0df96efa0a300ca6404b7983..5940a013862e9f08b67a4b10b6eaca28e3dc9ffd 100644 (file)
        $file_guid = $vars['file_guid'];\r
        $viewer = $vars['viewer'];\r
        $owner = $vars['owner'];\r
-       \r
+       $anytags = $vars['anytags'];\r
+\r
        if (get_plugin_setting('tagging', 'tidypics') != "disabled") {\r
                // only owner and friends of owner can tag\r
                if ($viewer && $viewer->guid == $owner->guid || user_is_friend($owner->guid, $viewer->guid)) {\r
 ?>\r
 <li id="start_tagging"><a id="tag_control" href="javascript:void(0)" onclick="startTagging()"><?= elgg_echo('tidypics:tagthisphoto') ?></a></li>\r
+<?php\r
+               }\r
+               \r
+               // only owner can delete tags\r
+               if ($anytags && $viewer && $viewer->guid == $owner->guid) {\r
+?>\r
+<li id="delete_tags"><a href="javascript:void(0)" onclick="deleteTags()"><?= elgg_echo('tidypics:deletetag') ?></a></li>\r
 <?php\r
                }\r
        }\r
+       \r
        if (get_plugin_setting('download_link', 'tidypics') != "disabled") { \r
 ?>\r
 <li id="download_image"><a href="<?php echo $vars['url']; ?>action/tidypics/download?file_guid=<?php echo $file_guid; ?>"><?php echo elgg_echo("image:download"); ?></a></li>\r
index 8ba58be4f49a0f2a15abad9512b0a9d34fc0b2ba..fdf40b3a5b59e38f9098eb7fdbfbbab17d0f15d2 100644 (file)
@@ -5,6 +5,7 @@
        $file_guid = $vars['file_guid'];\r
        $viewer = $vars['viewer'];\r
        $owner = $vars['owner'];\r
+       $tag_texts = $vars['text'];\r
        \r
        if ($photo_tags) { \r
 ?>\r
 \r
 ?>\r
 </div>\r
+<div id="delete_tag_menu">\r
 <?php\r
+       if ($photo_tags) {\r
+               echo elgg_echo('tidypics:deltag_title') . '<br />';\r
+               $content = "<input type='hidden' name='image_guid' value='{$file_guid}' />";\r
+               foreach ($tag_texts as $id => $text) {\r
+                       $name = "tags[{$id}]";\r
+                       $content .= elgg_view("input/checkboxes", array('options' => array($text => $text), 'internalname' => $name, 'value' => '' ));\r
+               }\r
+               $content .= "<fieldset><button class='submit_button' type='submit'>" . elgg_echo('tidypics:actiondelete') . "</button></fieldset>";\r
+\r
+               echo elgg_view('input/form', array('internalname' => 'form-deletetag', 'action' => "{$vars['url']}action/tidypics/deletetag", 'body' => $content));\r
+\r
+       }\r
+       echo '</div>'; // delete_tag_menu\r
+       \r
        echo elgg_view('js/tagging', array('photo_tags_json' => $photo_tags_json,) );\r
 ?>
\ No newline at end of file