add nav menu for admin panel

This commit is contained in:
Evan Prodromou 2009-11-09 13:40:37 -05:00
parent a4905c03ba
commit 348b155376
1 changed files with 132 additions and 0 deletions

View File

@ -132,6 +132,21 @@ class AdminPanelAction extends Action
$this->showPage();
}
/**
* Show tabset for this page
*
* Uses the AdminPanelNav widget
*
* @return void
* @see AdminPanelNav
*/
function showLocalNav()
{
$nav = new AdminPanelNav($this);
$nav->show();
}
/**
* Show the content section of the page
*
@ -210,3 +225,120 @@ class AdminPanelAction extends Action
return;
}
}
/**
* Menu for public group of actions
*
* @category Output
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @author Sarven Capadisli <csarven@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @see Widget
*/
class AdminPanelNav extends Widget
{
var $action = null;
/**
* Construction
*
* @param Action $action current action, used for output
*/
function __construct($action=null)
{
parent::__construct($action);
$this->action = $action;
}
/**
* Show the menu
*
* @return void
*/
function show()
{
$action_name = $this->action->trimmed('action');
$this->action->elementStart('ul', array('class' => 'nav'));
if (Event::handle('StartAdminPanelNav', array($this))) {
$this->out->menuItem(common_local_url('siteadminpanel'), _('Site'),
_('Basic site configuration'), $action_name == 'siteadminpanel', 'nav_site_admin_panel');
Event::handle('EndAdminPanelNav', array($this));
}
$this->action->elementEnd('ul');
}
}
/**
* Menu for admin group of actions
*
* @category Output
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @author Sarven Capadisli <csarven@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @see Widget
*/
class PublicGroupNav extends Widget
{
var $action = null;
/**
* Construction
*
* @param Action $action current action, used for output
*/
function __construct($action=null)
{
parent::__construct($action);
$this->action = $action;
}
/**
* Show the menu
*
* @return void
*/
function show()
{
$action_name = $this->action->trimmed('action');
$this->action->elementStart('ul', array('class' => 'nav'));
if (Event::handle('StartPublicGroupNav', array($this))) {
$this->out->menuItem(common_local_url('public'), _('Public'),
_('Public timeline'), $action_name == 'public', 'nav_timeline_public');
$this->out->menuItem(common_local_url('groups'), _('Groups'),
_('User groups'), $action_name == 'groups', 'nav_groups');
$this->out->menuItem(common_local_url('publictagcloud'), _('Recent tags'),
_('Recent tags'), $action_name == 'publictagcloud', 'nav_recent-tags');
if (count(common_config('nickname', 'featured')) > 0) {
$this->out->menuItem(common_local_url('featured'), _('Featured'),
_('Featured users'), $action_name == 'featured', 'nav_featured');
}
$this->out->menuItem(common_local_url('favorited'), _('Popular'),
_("Popular notices"), $action_name == 'favorited', 'nav_timeline_favorited');
Event::handle('EndPublicGroupNav', array($this));
}
$this->action->elementEnd('ul');
}
}