]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
moving tagging code into TidypicsImage class
authorCash Costello <cash.costello@gmail.com>
Mon, 24 Aug 2009 11:57:49 +0000 (11:57 +0000)
committerCash Costello <cash.costello@gmail.com>
Mon, 24 Aug 2009 11:57:49 +0000 (11:57 +0000)
lib/image.php
views/default/object/image.php

index 3a23a19328548ca97bc8d78974a1c788d0c4fe94..cb4182f0151746b253233947a87854226b64910c 100644 (file)
                {
                        parent::__construct($guid);
                }
+               
+               public function getPhotoTags() 
+               {
+                       // get tags as annotations
+                       $photo_tags = get_annotations($this->getGUID(), 'object', 'image', 'phototag');
+                       if (!$photo_tags) 
+                       {
+                               // no tags or user doesn't have permission to tags, so return
+                               return false;
+                       }
+                       
+                       $photo_tags_json = "[";
+                       foreach ($photo_tags as $p) 
+                       {
+                               $photo_tag = unserialize($p->value);
+                               
+                               // create link to page with other photos tagged with same tag
+                               $phototag_text = $photo_tag->value;
+                               $phototag_link = $vars['url'] . 'search/?tag=' . $phototag_text . '&amp;subtype=image&amp;object=object';
+                               if ($photo_tag->type === 'user') 
+                               {
+                                       $user = get_entity($photo_tag->value);
+                                       if ($user)
+                                               $phototag_text = $user->name;
+                                       else
+                                               $phototag_text = "unknown user";
+                                       
+                                       $phototag_link = $vars['url'] . "pg/photos/tagged/" . $photo_tag->value;
+                               }
+                               
+                               if (isset($photo_tag->x1)) {
+                                       // hack to handle format of Pedro Prez's tags - ugh
+                                       $photo_tag->coords = "\"x1\":\"{$photo_tag->x1}\",\"y1\":\"{$photo_tag->y1}\",\"width\":\"{$photo_tag->width}\",\"height\":\"{$photo_tag->height}\""; 
+                                       $photo_tags_json .= '{' . $photo_tag->coords . ',"text":"' . $phototag_text . '","id":"' . $p->id . '"},';
+                               } else
+                                       $photo_tags_json .= '{' . $photo_tag->coords . ',"text":"' . $phototag_text . '","id":"' . $p->id . '"},';
+                               
+                               // prepare variable arrays for tagging view
+                               $photo_tag_links[$p->id] = array($phototag_text, $phototag_link);
+                       }
+                       
+                       $photo_tags_json = rtrim($photo_tags_json,',');
+                       $photo_tags_json .= ']';
+                       
+                       $rt = array('raw' => $photo_tags, 'json' => $photo_tags_json, 'links' => $photo_tag_links);
+                       return $rt;
+               }
        }
        
 ?>
\ No newline at end of file
index 852fea8db6bca8d38d316a740958d13b48315059..10c89459ba9a1d9374c7c4c5230065753fec1b6f 100644 (file)
 
 /////////////////////////////////////////////////////
 // get photo tags from database
-$photo_tags_json = "\"\"";
-$photo_tags = get_annotations($file_guid,'object','image','phototag');
-
-if ($photo_tags) {
-       $photo_tags_json = "[";
-       foreach ($photo_tags as $p) {
-               $photo_tag = unserialize($p->value);
-               
-
-               $phototag_text = $photo_tag->value;
-               $phototag_link = $vars['url'] . 'search/?tag=' . $phototag_text . '&amp;subtype=image&amp;object=object';
-               if ($photo_tag->type === 'user') {
-                       $user = get_entity($photo_tag->value);
-                       if ($user)
-                               $phototag_text = $user->name;
-                       else
-                               $phototag_text = "unknown user";
-                       
-                       $phototag_link = $vars['url'] . "pg/photos/tagged/" . $photo_tag->value;
-               }
-
-               // hack to handle format of Pedro Prez's tags - ugh
-               if (isset($photo_tag->x1)) {
-                       $photo_tag->coords = "\"x1\":\"{$photo_tag->x1}\",\"y1\":\"{$photo_tag->y1}\",\"width\":\"{$photo_tag->width}\",\"height\":\"{$photo_tag->height}\""; 
-                       $photo_tags_json .= '{' . $photo_tag->coords . ',"text":"' . $phototag_text . '","id":"' . $p->id . '"},';
-               } else
-                       $photo_tags_json .= '{' . $photo_tag->coords . ',"text":"' . $phototag_text . '","id":"' . $p->id . '"},';
-               
-               // prepare variable arrays for tagging view
-               $photo_tag_links[$p->id] = array($phototag_text, $phototag_link);
+       $photo_tags_json = "\"\"";
+       
+       $tag_info = $file->getPhotoTags();
+       if ($tag_info) {
+               $photo_tags = $tag_info['raw'];
+               $photo_tags_json = $tag_info['json'];
+               $photo_tag_links = $tag_info['links'];
        }
-       $photo_tags_json = rtrim($photo_tags_json,',');
-       $photo_tags_json .= ']';
-}
-
 
 /********************************************************************
  *