]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/GNUsocialPhotos/classes/gnusocialphoto.php
Individual ids for photos
[quix0rs-gnu-social.git] / plugins / GNUsocialPhotos / classes / gnusocialphoto.php
index 3ff0e494dc96b9a22f4cb4631b118684005c761e..a122d44ecbf68e77a56f9a653c4b4d56dff74c89 100644 (file)
@@ -35,10 +35,13 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
 class GNUsocialPhoto extends Memcached_DataObject
 {
     public $__table = 'GNUsocialPhoto';
+    public $id;         // int(11)
     public $notice_id;  // int(11)
     public $album_id;   // int(11)
     public $uri;        // varchar(512)
     public $thumb_uri;  // varchar(512)
+       public $title;      // varchar(512)
+       public $photo_description; // text
     
 
     /**
@@ -62,12 +65,19 @@ class GNUsocialPhoto extends Memcached_DataObject
         return parent::delete();
     } */
 
+
+    /*
+     * TODO: Foriegn key on album_id.
+     */
     function table()
     {
-        return array('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
+        return array('id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
+                     'notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
                      'album_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
                      'uri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
-                     'thumb_uri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL);
+                     'thumb_uri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
+                     'title' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
+                     'photo_description' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL);
     }
     
     function keys()
@@ -85,22 +95,33 @@ class GNUsocialPhoto extends Memcached_DataObject
         return array(false, false, false);
     }
 
-    function saveNew($profile_id, $album_id, $thumb_uri, $uri, $source)
+    function saveNew($profile_id, $album_id, $thumb_uri, $uri, $source, $insert_now, $title = null, $photo_description = null)
     {
         $photo = new GNUsocialPhoto();
         $photo->thumb_uri = $thumb_uri;
         $photo->uri = $uri;
                $photo->album_id = $album_id;
-
-        $notice = Notice::saveNew($profile_id, $uri, $source);
-        $photo->notice_id = $notice->id;
-        $photo_id = $photo->insert();
-        if (!$photo_id) {
-            common_log_db_error($photo, 'INSERT', __FILE__);
-            throw new ServerException(_m('Problem Saving Photo.'));
+               if(!empty($title)) $photo->title = $title;
+               if(!empty($photo_description)) $photo->photo_description = (string)$photo_description;
+
+        if($insert_now) {
+            $notice = Notice::saveNew($profile_id, $uri, $source);
+            $photo->notice_id = $notice->id;
+            $photo_id = $photo->insert();
+            if (!$photo_id) {
+                common_log_db_error($photo, 'INSERT', __FILE__);
+                throw new ServerException(_m('Problem Saving Photo.'));
+            }
+        } else {
+            GNUsocialPhotoTemp::$tmp = $photo;
+            Notice::saveNew($profile_id, $uri, $source);
         }
     }
 
+    function getPageLink()
+    {
+        return '/photo/' . $this->id;
+    }
 
     /*
      * TODO: -Sanitize input
@@ -112,7 +133,8 @@ class GNUsocialPhoto extends Memcached_DataObject
     static function getGalleryPage($page_id, $album_id, $gallery_size)
     {
                $page_offset = ($page_id-1) * $gallery_size; 
-        $sql = 'SELECT * FROM GNUsocialPhoto order by notice_id limit ' . $page_offset . ',' . $gallery_size;
+        $sql = 'SELECT * FROM GNUsocialPhoto WHERE album_id = ' . $album_id . 
+               ' ORDER BY notice_id LIMIT ' . $page_offset . ',' . $gallery_size;
         $photo = new GNUsocialPhoto();
         $photo->query($sql);
         $photos = array();
@@ -123,16 +145,4 @@ class GNUsocialPhoto extends Memcached_DataObject
 
         return $photos;
     }
-
-    /*
-    function asActivityNoun($element)
-    {
-        $object = new ActivityObject();
-
-        $object->type = ActivityObject::PHOTO;
-        $object->title = "";
-        $object->thumbnail = 'http://' . common_config('site', 'server') . $this->thumb_uri;
-        $object->largerImage = 'http://' . common_config('site', 'server') . $this->path;
-        return $object;
-    } */
 }