]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - lib/personal.php
Add an optional theme parameter to theme functions
[quix0rs-gnu-social.git] / lib / personal.php
1 <?php
2 /*
3  * Laconica - a distributed open-source microblogging tool
4  * Copyright (C) 2008, Controlez-Vous, Inc.
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU Affero General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU Affero General Public License for more details.
15  *
16  * You should have received a copy of the GNU Affero General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 if (!defined('LACONICA')) { exit(1); }
21
22 class PersonalAction extends Action
23 {
24
25     function is_readonly()
26     {
27         return true;
28     }
29
30     function handle($args)
31     {
32         parent::handle($args);
33         common_set_returnto($this->self_url());
34     }
35
36     function views_menu()
37     {
38
39         $user = null;
40         $action = $this->trimmed('action');
41         $nickname = $this->trimmed('nickname');
42
43         if ($nickname) {
44             $user = User::staticGet('nickname', $nickname);
45             $user_profile = $user->getProfile();
46         } else {
47             $user_profile = false;
48         }
49
50         common_element_start('ul', array('id' => 'nav_views'));
51
52         common_menu_item(common_local_url('all', array('nickname' =>
53                                                        $nickname)),
54                          _('Personal'),
55                          sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
56                          $action == 'all');
57         common_menu_item(common_local_url('replies', array('nickname' =>
58                                                               $nickname)),
59                          _('Replies'),
60                          sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
61                          $action == 'replies');
62         common_menu_item(common_local_url('showstream', array('nickname' =>
63                                                               $nickname)),
64                          _('Profile'),
65                          ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname,
66                          $action == 'showstream');
67         common_menu_item(common_local_url('showfavorites', array('nickname' =>
68                                                               $nickname)),
69                          _('Favorites'),
70                          sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')),
71                          $action == 'showfavorites');
72
73         $cur = common_current_user();
74
75         if ($cur && $cur->id == $user->id) {
76
77             common_menu_item(common_local_url('inbox', array('nickname' =>
78                                                                      $nickname)),
79                              _('Inbox'),
80                              _('Your incoming messages'),
81                              $action == 'inbox');
82             common_menu_item(common_local_url('outbox', array('nickname' =>
83                                                                      $nickname)),
84                              _('Outbox'),
85                              _('Your sent messages'),
86                              $action == 'outbox');
87         }
88
89         common_element_end('ul');
90     }
91
92     function source_link($source)
93     {
94         $source_name = _($source);
95         switch ($source) {
96          case 'web':
97          case 'xmpp':
98          case 'mail':
99          case 'omb':
100          case 'api':
101             common_element('span', 'noticesource', $source_name);
102             break;
103          default:
104             $ns = Notice_source::staticGet($source);
105             if ($ns) {
106                 common_element('a', array('href' => $ns->url),
107                                $ns->name);
108             } else {
109                 common_element('span', 'noticesource', $source_name);
110             }
111             break;
112         }
113         return;
114     }
115 }