From 130ba2888643992943780962dd4efcca3c595735 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 17 Sep 2008 13:47:41 -0400 Subject: newmessage and showmessage darcs-hash:20080917174741-5ed1f-c090055487bab0df52d25ad6550d3850ef5f7661.gz --- classes/Message.php | 30 ++++++++++++++++++++++++++++++ classes/User.php | 22 ++++++++++++++++++++++ classes/stoica.ini | 1 + 3 files changed, 53 insertions(+) (limited to 'classes') diff --git a/classes/Message.php b/classes/Message.php index 93ec419d4..b713737e8 100644 --- a/classes/Message.php +++ b/classes/Message.php @@ -34,4 +34,34 @@ class Message extends DB_DataObject function getTo() { return Profile::staticGet('id', $this->to_profile); } + + static function saveNew($from, $to, $content, $source) { + + $msg = new Message(); + + $msg->from_profile = $from; + $msg->to_profile = $to; + $msg->content = $content; + $msg->rendered = common_render_text($content); + $msg->source = $source; + + $result = $msg->insert(); + + if (!$result) { + common_log_db_error($msg, 'INSERT', __FILE__); + return _('Could not insert message.'); + } + + $orig = clone($msg); + $msg->uri = common_local_url('showmessage', array('message' => $message->id)); + + $result = $msg->update($orig); + + if (!$result) { + common_log_db_error($msg, 'UPDATE', __FILE__); + return _('Could not update message with new URI.'); + } + + return $msg; + } } diff --git a/classes/User.php b/classes/User.php index 65e01e799..4305c1541 100644 --- a/classes/User.php +++ b/classes/User.php @@ -44,6 +44,7 @@ class User extends DB_DataObject public $incomingemail; // varchar(255) unique_key public $emailnotifysub; // tinyint(1) default_1 public $emailnotifyfav; // tinyint(1) default_1 + public $emailnotifymsg; // tinyint(1) default_1 public $emailmicroid; // tinyint(1) default_1 public $language; // varchar(50) public $timezone; // varchar(50) @@ -347,4 +348,25 @@ class User extends DB_DataObject unset($fave); return $result; } + + function mutuallySubscribed($other) { + return $this->isSubscribed($other) && + $other->isSubscribed($this); + } + + function mutuallySubscribedUsers() { + + # 3-way join; probably should get cached + + $qry = 'SELECT user.* ' . + 'FROM subscription sub1 JOIN user ON sub1.subscribed = user.id ' . + 'JOIN subscription sub2 ON user.id = sub2.subscriber ' . + 'WHERE sub1.subscriber = %d and sub2.subscribed = %d ' . + 'ORDER BY user.nickname'; + + $user = new User(); + $user->query(sprintf($qry, $this->id, $this->id)); + + return $user; + } } diff --git a/classes/stoica.ini b/classes/stoica.ini index 0d02da426..c74cd9cce 100644 --- a/classes/stoica.ini +++ b/classes/stoica.ini @@ -268,6 +268,7 @@ email = 2 incomingemail = 2 emailnotifysub = 17 emailnotifyfav = 17 +emailnotifymsg = 17 emailmicroid = 17 language = 2 timezone = 2 -- cgit v1.2.3-54-g00ecf