| 
									
										
										
										
											2008-09-16 15:53:46 -04:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * StatusNet, the distributed open-source microblogging tool | 
					
						
							| 
									
										
										
										
											2008-09-16 15:53:46 -04:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |  * common superclass for direct messages inbox and outbox | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * PHP version 5 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * LICENCE: This program is free software: you can redistribute it and/or modify | 
					
						
							| 
									
										
										
										
											2008-09-16 15:53:46 -04:00
										 |  |  |  * it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-12-22 15:13:04 -05:00
										 |  |  |  * @category  Message | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @package   StatusNet | 
					
						
							| 
									
										
										
										
											2009-08-25 18:19:04 -04:00
										 |  |  |  * @author    Evan Prodromou <evan@status.net> | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @copyright 2008 StatusNet, Inc. | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 | 
					
						
							| 
									
										
										
										
											2009-08-25 18:16:46 -04:00
										 |  |  |  * @link      http://status.net/ | 
					
						
							| 
									
										
										
										
											2008-09-16 15:53:46 -04:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-26 10:41:36 -04:00
										 |  |  | if (!defined('STATUSNET') && !defined('LACONICA')) { | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     exit(1); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2008-09-16 15:53:46 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  | /** | 
					
						
							|  |  |  |  * common superclass for direct messages inbox and outbox | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2008-12-22 15:13:04 -05:00
										 |  |  |  * @category Message | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @package  StatusNet | 
					
						
							| 
									
										
										
										
											2009-08-25 18:19:04 -04:00
										 |  |  |  * @author   Evan Prodromou <evan@status.net> | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 | 
					
						
							| 
									
										
										
										
											2009-08-25 18:16:46 -04:00
										 |  |  |  * @link     http://status.net/ | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |  * @see      InboxAction | 
					
						
							|  |  |  |  * @see      OutboxAction | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2011-06-09 16:20:19 -04:00
										 |  |  | class MailboxAction extends Action | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |     var $page = null; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-23 23:40:11 -04:00
										 |  |  |     function prepare($args) | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |     { | 
					
						
							|  |  |  |         parent::prepare($args); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $nickname   = common_canonical_nickname($this->arg('nickname')); | 
					
						
							| 
									
										
										
										
											2013-08-18 13:04:58 +02:00
										 |  |  |         $this->user = User::getKV('nickname', $nickname); | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |         $this->page = $this->trimmed('page'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (!$this->page) { | 
					
						
							|  |  |  |             $this->page = 1; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-05 16:16:10 -08:00
										 |  |  |         common_set_returnto($this->selfUrl()); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |         return true; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * output page based on arguments | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param array $args HTTP arguments (from $_REQUEST) | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     function handle($args) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         parent::handle($args); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |         if (!$this->user) { | 
					
						
							| 
									
										
										
										
											2011-04-03 01:09:02 +02:00
										 |  |  |             // TRANS: Client error displayed when trying to access a mailbox without providing a user.
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |             $this->clientError(_('No such user.'), 404); | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $cur = common_current_user(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |         if (!$cur || $cur->id != $this->user->id) { | 
					
						
							| 
									
										
										
										
											2011-04-03 01:09:02 +02:00
										 |  |  |             // TRANS: Client error displayed when trying to access a mailbox that is not of the logged in user.
 | 
					
						
							| 
									
										
										
										
											2014-03-10 00:19:35 +01:00
										 |  |  |             $this->clientError(_('Only the user can read their own mailboxes.'), 403); | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |         $this->showPage(); | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |     function showNoticeForm() | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |         $message_form = new MessageForm($this); | 
					
						
							|  |  |  |         $message_form->show(); | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |     function showContent() | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |         $message = $this->getMessages(); | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if ($message) { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-08 11:11:21 -05:00
										 |  |  |             $ml = $this->getMessageList($message); | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-08 11:11:21 -05:00
										 |  |  |             $cnt = $ml->show(); | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-08 11:11:21 -05:00
										 |  |  |             $this->pagination($this->page > 1, | 
					
						
							|  |  |  |                               $cnt > MESSAGES_PER_PAGE, | 
					
						
							|  |  |  |                               $this->page, | 
					
						
							|  |  |  |                               $this->trimmed('action'), | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |                               array('nickname' => $this->user->nickname)); | 
					
						
							| 
									
										
										
										
											2011-02-08 11:11:21 -05:00
										 |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2011-04-03 01:09:02 +02:00
										 |  |  |             $this->element('p', | 
					
						
							|  |  |  |                            'guide', | 
					
						
							|  |  |  |                            // TRANS: Message displayed when there are no private messages in the inbox of a user.
 | 
					
						
							| 
									
										
										
										
											2011-02-08 11:11:21 -05:00
										 |  |  |                            _('You have no private messages. '. | 
					
						
							|  |  |  |                              'You can send private message to engage other users in conversation. '. | 
					
						
							|  |  |  |                              'People can send you messages for your eyes only.')); | 
					
						
							| 
									
										
										
										
											2009-04-08 00:27:12 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |     function getMessages() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return null; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-08 11:11:21 -05:00
										 |  |  |     function getMessageList($message) | 
					
						
							| 
									
										
										
										
											2008-12-22 14:50:41 -05:00
										 |  |  |     { | 
					
						
							|  |  |  |         return null; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 17:49:47 -08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Show the page notice | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * Shows instructions for the page | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     function showPageNotice() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $instr  = $this->getInstructions(); | 
					
						
							|  |  |  |         $output = common_markup_to_html($instr); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->elementStart('div', 'instructions'); | 
					
						
							|  |  |  |         $this->raw($output); | 
					
						
							|  |  |  |         $this->elementEnd('div'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-17 17:29:57 -07:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Mailbox actions are read only | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param array $args other arguments | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return boolean | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     function isReadOnly($args) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |          return true; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-03-01 16:48:20 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |     function showObjectNav() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $mm = new MailboxMenu($this); | 
					
						
							|  |  |  |         $mm->show(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-09-16 15:53:46 -04:00
										 |  |  | } |