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
/**
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()
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
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();
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;
- } */
}