]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/SearchSub/searchsubmenu.php
Localisation updates from http://translatewiki.net.
[quix0rs-gnu-social.git] / plugins / SearchSub / searchsubmenu.php
1 <?php
2 /**
3  * StatusNet - the distributed open-source microblogging tool
4  * Copyright (C) 2011, StatusNet, Inc.
5  *
6  * Menu to show searches you're subscribed to
7  * 
8  * PHP version 5
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU Affero General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Affero General Public License for more details.
19  *
20  * You should have received a copy of the GNU Affero General Public License
21  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
22  *
23  * @category  Menu
24  * @package   StatusNet
25  * @author    Evan Prodromou <evan@status.net>
26  * @copyright 2011 StatusNet, Inc.
27  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
28  * @link      http://status.net/
29  */
30
31 if (!defined('STATUSNET')) {
32     // This check helps protect against security problems;
33     // your code file can't be executed directly from the web.
34     exit(1);
35 }
36
37 /**
38  * Class comment
39  *
40  * @category  General
41  * @package   StatusNet
42  * @author    Evan Prodromou <evan@status.net>
43  * @copyright 2011 StatusNet, Inc.
44  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
45  * @link      http://status.net/
46  */
47
48 class SearchSubMenu extends MoreMenu
49 {
50     protected $user;
51     protected $searches;
52
53     function __construct($out, $user, $searches)
54     {
55         parent::__construct($out);
56         $this->user = $user;
57         $this->searches = $searches;
58     }
59
60     function tag()
61     {
62         return 'searchsubs';
63     }
64
65     function seeAllItem()
66     {
67         return array('searchsubs',
68                      array('nickname' => $this->user->nickname),
69                      _('See all'),
70                      _('See all searches you are following'));
71     }
72
73     function getItems()
74     {
75         $items = array();
76         
77         foreach ($this->searches as $search) {
78             if (!empty($search)) {
79                 $items[] = array('noticesearch',
80                                  array('q' => $search),
81                                  sprintf('"%s"', $search),
82                                  sprintf(_('Notices including %s'), $search));;
83             }
84         }
85
86         return $items;
87     } 
88
89     function item($actionName, $args, $label, $description, $id=null, $cls=null)
90     {
91         if (empty($id)) {
92             $id = $this->menuItemID($actionName, $args);
93         }
94
95         if ($actionName == 'noticesearch') {
96             // Add 'q' as a search param, not part of the url path
97             $url = common_local_url($actionName, array(), $args);
98         } else {
99             $url = common_local_url($actionName, $args);
100         }
101
102         $this->out->menuItem($url,
103                              $label,
104                              $description,
105                              $this->isCurrent($actionName, $args),
106                              $id,
107                              $cls);
108     }
109 }
110