| 
									
										
										
										
											2008-09-16 14:51:26 -04:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Table Definition for message | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2008-09-26 12:18:24 -04:00
										 |  |  | require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; | 
					
						
							| 
									
										
										
										
											2008-09-16 14:51:26 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | class Message extends Memcached_DataObject | 
					
						
							| 
									
										
										
										
											2008-09-16 14:51:26 -04:00
										 |  |  | { | 
					
						
							|  |  |  |     ###START_AUTOCODE
 | 
					
						
							|  |  |  |     /* the code below is auto generated do not remove the above tag */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public $__table = 'message';                         // table name
 | 
					
						
							|  |  |  |     public $id;                              // int(4)  primary_key not_null
 | 
					
						
							|  |  |  |     public $uri;                             // varchar(255)  unique_key
 | 
					
						
							|  |  |  |     public $from_profile;                    // int(4)   not_null
 | 
					
						
							|  |  |  |     public $to_profile;                      // int(4)   not_null
 | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  |     public $content;                         // text()
 | 
					
						
							|  |  |  |     public $rendered;                        // text()
 | 
					
						
							|  |  |  |     public $url;                             // varchar(255)
 | 
					
						
							| 
									
										
										
										
											2008-09-16 14:51:26 -04:00
										 |  |  |     public $created;                         // datetime()   not_null
 | 
					
						
							|  |  |  |     public $modified;                        // timestamp()   not_null default_CURRENT_TIMESTAMP
 | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  |     public $source;                          // varchar(32)
 | 
					
						
							| 
									
										
										
										
											2008-09-16 14:51:26 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* Static get */ | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  |     function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Message',$k,$v); } | 
					
						
							| 
									
										
										
										
											2008-09-16 14:51:26 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* the code above is auto generated do not remove the tag below */ | 
					
						
							|  |  |  |     ###END_AUTOCODE
 | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function getFrom() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         return Profile::staticGet('id', $this->from_profile); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:33:23 -05:00
										 |  |  |     function getTo() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         return Profile::staticGet('id', $this->to_profile); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |     static function saveNew($from, $to, $content, $source) { | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-16 19:51:41 +01:00
										 |  |  |         $sender = Profile::staticGet('id', $from); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (!$sender->hasRight(Right::NEWMESSAGE)) { | 
					
						
							|  |  |  |             throw new ClientException(_('You are banned from sending direct messages.')); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         $msg = new Message(); | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         $msg->from_profile = $from; | 
					
						
							|  |  |  |         $msg->to_profile = $to; | 
					
						
							|  |  |  |         $msg->content = common_shorten_links($content); | 
					
						
							|  |  |  |         $msg->rendered = common_render_text($content); | 
					
						
							|  |  |  |         $msg->created = common_sql_now(); | 
					
						
							|  |  |  |         $msg->source = $source; | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         $result = $msg->insert(); | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         if (!$result) { | 
					
						
							|  |  |  |             common_log_db_error($msg, 'INSERT', __FILE__); | 
					
						
							|  |  |  |             return _('Could not insert message.'); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         $orig = clone($msg); | 
					
						
							|  |  |  |         $msg->uri = common_local_url('showmessage', array('message' => $msg->id)); | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         $result = $msg->update($orig); | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         if (!$result) { | 
					
						
							|  |  |  |             common_log_db_error($msg, 'UPDATE', __FILE__); | 
					
						
							|  |  |  |             return _('Could not update message with new URI.'); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-08-20 17:03:49 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         return $msg; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-08-21 07:20:59 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     static function maxContent() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $desclimit = common_config('message', 'contentlimit'); | 
					
						
							|  |  |  |         // null => use global limit (distinct from 0!)
 | 
					
						
							|  |  |  |         if (is_null($desclimit)) { | 
					
						
							|  |  |  |             $desclimit = common_config('site', 'textlimit'); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return $desclimit; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     static function contentTooLong($content) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $contentlimit = self::maxContent(); | 
					
						
							|  |  |  |         return ($contentlimit > 0 && !empty($content) && (mb_strlen($content) > $contentlimit)); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-12-15 10:31:25 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     function notify() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $from = User::staticGet('id', $this->from_profile); | 
					
						
							|  |  |  |         $to   = User::staticGet('id', $this->to_profile); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         mail_notify_message($this, $from, $to); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-09-16 14:51:26 -04:00
										 |  |  | } |