summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Corbett <sean@gnu.org>2010-09-04 17:17:52 -0400
committerSean Corbett <sean@gnu.org>2010-09-04 17:35:37 -0400
commit7e8ff72c0b9c2cd1c73537edc886e6b6208a50fb (patch)
tree36c7f123442107ac4baa7559eb356bf9fef1fb19
parent3da5dccce6cd35e58f8ee71251578c23f6839acb (diff)
Quick function to get an array of thumbnails for a gallery page.
-rw-r--r--plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php2
-rw-r--r--plugins/GNUsocialPhotos/actions/photos.php5
-rw-r--r--plugins/GNUsocialPhotos/actions/photoupload.php3
-rw-r--r--plugins/GNUsocialPhotos/classes/gnusocialphoto.php33
4 files changed, 41 insertions, 2 deletions
diff --git a/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php b/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php
index 79da70321..f67cfec34 100644
--- a/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php
+++ b/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php
@@ -62,6 +62,8 @@ class GNUsocialPhotosPlugin extends Plugin
$schema = Schema::get();
$schema->ensureTable('GNUsocialPhoto',
array(new ColumnDef('notice_id', 'int(11)', null, false),
+ new ColumnDef('album_id', 'int(11)', null, false),
+ //new ColumnDef('album_name', 'varchar(30)', null, false),
new ColumnDef('uri', 'varchar(512)', null, false),
new ColumnDef('thumb_uri', 'varchar(512)', null, false)));
}
diff --git a/plugins/GNUsocialPhotos/actions/photos.php b/plugins/GNUsocialPhotos/actions/photos.php
index 29a70e458..bc54ae993 100644
--- a/plugins/GNUsocialPhotos/actions/photos.php
+++ b/plugins/GNUsocialPhotos/actions/photos.php
@@ -86,6 +86,11 @@ class PhotosAction extends Action
$pathparts = explode('/', $args[1]['nickname']);
$username = $pathparts[0];
$this->elementStart('ul', array('class' => 'photothumbs'));
+
+ //scorbett
+ $photo_obj = new GNUsocialPhoto();
+ $photo_obj->getGalleryPage(1, 0, 9);
+
while (false !== ($file = readdir($dir))) {
$fparts = explode('-', $file);
if ($fparts[0] == $username // uploaded by this user
diff --git a/plugins/GNUsocialPhotos/actions/photoupload.php b/plugins/GNUsocialPhotos/actions/photoupload.php
index 216f1768f..84caf4747 100644
--- a/plugins/GNUsocialPhotos/actions/photoupload.php
+++ b/plugins/GNUsocialPhotos/actions/photoupload.php
@@ -137,7 +137,8 @@ class PhotouploadAction extends Action
$uri = 'http://' . common_config('site', 'server') . '/file/' . $filename;
$thumb_uri = 'http://' . common_config('site', 'server') . '/file/thumb.' . $filename;
$profile_id = $cur->id;
- GNUsocialPhoto::saveNew($profile_id, $thumb_uri, $uri, 'web');
+ //scorbett: the second arg below should be set to the album ID
+ GNUsocialPhoto::saveNew($profile_id, 0, $thumb_uri, $uri, 'web');
}
}
diff --git a/plugins/GNUsocialPhotos/classes/gnusocialphoto.php b/plugins/GNUsocialPhotos/classes/gnusocialphoto.php
index 4965cd0d9..f218d570f 100644
--- a/plugins/GNUsocialPhotos/classes/gnusocialphoto.php
+++ b/plugins/GNUsocialPhotos/classes/gnusocialphoto.php
@@ -36,9 +36,16 @@ class GNUsocialPhoto extends Memcached_DataObject
{
public $__table = 'GNUsocialPhoto';
public $notice_id; // int(11)
+ public $album_id; // int(11)
public $uri; // varchar(512)
public $thumb_uri; // varchar(512)
+
+ /**
+ *
+ * k key
+ * v value
+ */
function staticGet($k,$v=NULL)
{
return Memcached_DataObject::staticGet('GNUsocialPhoto',$k,$v);
@@ -58,6 +65,7 @@ class GNUsocialPhoto extends Memcached_DataObject
function table()
{
return array('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);
}
@@ -77,11 +85,12 @@ class GNUsocialPhoto extends Memcached_DataObject
return array(false, false, false);
}
- function saveNew($profile_id, $thumb_uri, $uri, $source)
+ function saveNew($profile_id, $album_id, $thumb_uri, $uri, $source)
{
$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;
@@ -92,6 +101,28 @@ class GNUsocialPhoto extends Memcached_DataObject
}
}
+
+ /*
+ * TODO: -Sanitize input
+ * @param int page_id The desired page of the gallery to show.
+ * @param int album_id The id of the album to get photos from.
+ * @param int gallery_size The number of thumbnails to show per page in the gallery.
+ * @return array Array of GNUsocialPhotos for this gallery page.
+ */
+ 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;
+ $this->query($sql);
+ $thumbs = array();
+
+ while ($this->fetch()) {
+ $thumbs[] = clone($this);
+ }
+
+ return $thumbs;
+ }
+
/*
function asActivityNoun($element)
{