X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FConversation.php;h=4bad474c7334207ef2ab6e8d8040050c7b093b31;hb=2892f70d18065e1478c729f2de96218c9500e2df;hp=ea8bd87b5636907893101255dccc67dac81942d4;hpb=ed46a38ecfea0a87e01aacfcde181087d5e0f19f;p=quix0rs-gnu-social.git diff --git a/classes/Conversation.php b/classes/Conversation.php index ea8bd87b56..4bad474c73 100755 --- a/classes/Conversation.php +++ b/classes/Conversation.php @@ -29,7 +29,7 @@ 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 */ @@ -46,6 +46,22 @@ class Conversation extends Memcached_DataObject /* 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' => 225, '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 +79,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 +91,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; + } +}