X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FConversation.php;h=23f8dada0b316dfe0ef7c4b2c5a7eddc32d5a614;hb=34a6624452e8b7f60b40181441c6ea2c8158379a;hp=ea8bd87b5636907893101255dccc67dac81942d4;hpb=3c61f45de1226b22eeb83bd1f6db01984f953737;p=quix0rs-gnu-social.git diff --git a/classes/Conversation.php b/classes/Conversation.php index ea8bd87b56..23f8dada0b 100755 --- a/classes/Conversation.php +++ b/classes/Conversation.php @@ -29,23 +29,36 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; -class Conversation extends Memcached_DataObject +class Conversation extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ public $__table = 'conversation'; // table name public $id; // int(4) primary_key not_null - public $uri; // varchar(225) unique_key + public $uri; // varchar(255) unique_key public $created; // datetime not_null public $modified; // timestamp not_null default_CURRENT_TIMESTAMP - /* Static get */ - function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('conversation',$k,$v); } - /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + public static function schemaDef() + { + return array( + 'fields' => array( + 'id' => array('type' => 'serial', 'not null' => true, 'description' => 'unique identifier'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'description' => 'URI of the conversation'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'conversation_uri_key' => array('uri'), + ), + ); + } + /** * Factory method for creating a new conversation * @@ -63,7 +76,8 @@ class Conversation extends Memcached_DataObject } $orig = clone($conv); - $orig->uri = common_local_url('conversation', array('id' => $id)); + $orig->uri = common_local_url('conversation', array('id' => $id), + null, null, false); $result = $orig->update($conv); if (empty($result)) { @@ -74,5 +88,22 @@ class Conversation extends Memcached_DataObject return $conv; } -} + static function noticeCount($id) + { + $keypart = sprintf('conversation:notice_count:%d', $id); + + $cnt = self::cacheGet($keypart); + if ($cnt !== false) { + return $cnt; + } + + $notice = new Notice(); + $notice->conversation = $id; + $cnt = $notice->count(); + + self::cacheSet($keypart, $cnt); + + return $cnt; + } +}