public $__table = 'conversation'; // table name
public $id; // int(4) primary_key not_null
- public $uri; // varchar(225) unique_key not_null
+ public $uri; // varchar(225) 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('Session',$k,$v); }
+ 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
-}
+ /**
+ * Factory method for creating a new conversation
+ *
+ * @return Conversation the new conversation DO
+ */
+ static function create()
+ {
+ $conv = new Conversation();
+ $conv->created = common_sql_now();
+ $id = $conv->insert();
+
+ if (empty($id)) {
+ common_log_db_error($conv, 'INSERT', __FILE__);
+ return null;
+ }
+
+ $orig = clone($conv);
+ $orig->uri = common_local_url('conversation', array('id' => $id),
+ null, null, false);
+ $result = $orig->update($conv);
+
+ if (empty($result)) {
+ common_log_db_error($conv, 'UPDATE', __FILE__);
+ return null;
+ }
+
+ 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;
+ }
+}