summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2008-09-17 13:47:41 -0400
committerEvan Prodromou <evan@controlyourself.ca>2008-09-17 13:47:41 -0400
commit130ba2888643992943780962dd4efcca3c595735 (patch)
treef1aa8a3b4157a6d61d636ae7f3060ed94d159a1c /classes
parent7f8aaf46c8279c120c012d2b479e592bfa9611cf (diff)
newmessage and showmessage
darcs-hash:20080917174741-5ed1f-c090055487bab0df52d25ad6550d3850ef5f7661.gz
Diffstat (limited to 'classes')
-rw-r--r--classes/Message.php30
-rw-r--r--classes/User.php22
-rw-r--r--classes/stoica.ini1
3 files changed, 53 insertions, 0 deletions
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