From: Evan Prodromou Date: Tue, 1 Mar 2011 10:46:03 +0000 (-0500) Subject: primary and secondary nav use menu superclass X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=903053caec99da4443fa10f045f83239634b1a58;p=quix0rs-gnu-social.git primary and secondary nav use menu superclass --- diff --git a/lib/action.php b/lib/action.php index 3ef9ffa3c8..54bea7c931 100644 --- a/lib/action.php +++ b/lib/action.php @@ -543,69 +543,8 @@ class Action extends HTMLOutputter // lawsuit */ function showPrimaryNav() { - $user = common_current_user(); - $this->elementStart('ul', array('class' => 'nav', - 'id' => 'site_nav_global_primary')); - if (Event::handle('StartPrimaryNav', array($this))) { - if (!empty($user)) { - $this->menuItem(common_local_url('all', - array('nickname' => $user->nickname)), - _m('Home'), - _m('Friends timeline'), - false, - 'nav_home'); - $this->menuItem(common_local_url('showstream', - array('nickname' => $user->nickname)), - _m('Profile'), - _m('Your profile'), - false, - 'nav_profile'); - $this->menuItem(common_local_url('public'), - _m('Public'), - _m('Everyone on this site'), - false, - 'nav_public'); - $this->menuItem(common_local_url('profilesettings'), - _m('Settings'), - _m('Change your personal settings'), - false, - 'nav_account'); - if ($user->hasRight(Right::CONFIGURESITE)) { - $this->menuItem(common_local_url('siteadminpanel'), - _m('Admin'), - _m('Site configuration'), - false, - 'nav_admin'); - } - $this->menuItem(common_local_url('logout'), - _m('Logout'), - _m('Logout from the site'), - false, - 'nav_logout'); - } else { - $this->menuItem(common_local_url('public'), - _m('Public'), - _m('Everyone on this site'), - false, - 'nav_public'); - $this->menuItem(common_local_url('login'), - _m('Login'), - _m('Login to the site'), - false, - 'nav_login'); - } - - if (!empty($user) || !common_config('site', 'private')) { - $this->menuItem(common_local_url('noticesearch'), - _m('Search'), - _m('Search the site'), - false, - 'nav_search'); - } - - Event::handle('EndPrimaryNav', array($this)); - } - $this->elementEnd('ul'); + $pn = new PrimaryNav($this); + $pn->show(); } /** @@ -850,43 +789,8 @@ class Action extends HTMLOutputter // lawsuit */ function showSecondaryNav() { - $this->elementStart('ul', array('class' => 'nav', - 'id' => 'site_nav_global_secondary')); - if (Event::handle('StartSecondaryNav', array($this))) { - $this->menuItem(common_local_url('doc', array('title' => 'help')), - // TRANS: Secondary navigation menu option leading to help on StatusNet. - _('Help')); - $this->menuItem(common_local_url('doc', array('title' => 'about')), - // TRANS: Secondary navigation menu option leading to text about StatusNet site. - _('About')); - $this->menuItem(common_local_url('doc', array('title' => 'faq')), - // TRANS: Secondary navigation menu option leading to Frequently Asked Questions. - _('FAQ')); - $bb = common_config('site', 'broughtby'); - if (!empty($bb)) { - $this->menuItem(common_local_url('doc', array('title' => 'tos')), - // TRANS: Secondary navigation menu option leading to Terms of Service. - _('TOS')); - } - $this->menuItem(common_local_url('doc', array('title' => 'privacy')), - // TRANS: Secondary navigation menu option leading to privacy policy. - _('Privacy')); - $this->menuItem(common_local_url('doc', array('title' => 'source')), - // TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. - _('Source')); - $this->menuItem(common_local_url('version'), - // TRANS: Secondary navigation menu option leading to version information on the StatusNet site. - _('Version')); - $this->menuItem(common_local_url('doc', array('title' => 'contact')), - // TRANS: Secondary navigation menu option leading to e-mail contact information on the - // TRANS: StatusNet site, where to report bugs, ... - _('Contact')); - $this->menuItem(common_local_url('doc', array('title' => 'badge')), - // TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. - _('Badge')); - Event::handle('EndSecondaryNav', array($this)); - } - $this->elementEnd('ul'); + $sn = new SecondaryNav($this); + $sn->show(); } /** diff --git a/lib/primarynav.php b/lib/primarynav.php new file mode 100644 index 0000000000..01517d9429 --- /dev/null +++ b/lib/primarynav.php @@ -0,0 +1,116 @@ +. + * + * @category Menu + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Primary, top-level menu + * + * @category General + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class PrimaryNav extends Menu +{ + function show() + { + $user = common_current_user(); + $this->action->elementStart('ul', array('class' => 'nav', + 'id' => 'site_nav_global_primary')); + if (Event::handle('StartPrimaryNav', array($this->action))) { + if (!empty($user)) { + $this->action->menuItem(common_local_url('all', + array('nickname' => $user->nickname)), + _m('Home'), + _m('Friends timeline'), + false, + 'nav_home'); + $this->action->menuItem(common_local_url('showstream', + array('nickname' => $user->nickname)), + _m('Profile'), + _m('Your profile'), + false, + 'nav_profile'); + $this->action->menuItem(common_local_url('public'), + _m('Public'), + _m('Everyone on this site'), + false, + 'nav_public'); + $this->action->menuItem(common_local_url('profilesettings'), + _m('Settings'), + _m('Change your personal settings'), + false, + 'nav_account'); + if ($user->hasRight(Right::CONFIGURESITE)) { + $this->action->menuItem(common_local_url('siteadminpanel'), + _m('Admin'), + _m('Site configuration'), + false, + 'nav_admin'); + } + $this->action->menuItem(common_local_url('logout'), + _m('Logout'), + _m('Logout from the site'), + false, + 'nav_logout'); + } else { + $this->action->menuItem(common_local_url('public'), + _m('Public'), + _m('Everyone on this site'), + false, + 'nav_public'); + $this->action->menuItem(common_local_url('login'), + _m('Login'), + _m('Login to the site'), + false, + 'nav_login'); + } + + if (!empty($user) || !common_config('site', 'private')) { + $this->action->menuItem(common_local_url('noticesearch'), + _m('Search'), + _m('Search the site'), + false, + 'nav_search'); + } + + Event::handle('EndPrimaryNav', array($this->action)); + } + $this->action->elementEnd('ul'); + } +} diff --git a/lib/secondarynav.php b/lib/secondarynav.php new file mode 100644 index 0000000000..542de51ac1 --- /dev/null +++ b/lib/secondarynav.php @@ -0,0 +1,90 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Secondary menu, shown at the bottom of all pages + * + * @category General + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class SecondaryNav extends Menu +{ + function show() + { + $this->out->elementStart('ul', array('class' => 'nav', + 'id' => 'site_nav_global_secondary')); + if (Event::handle('StartSecondaryNav', array($this->action))) { + $this->out->menuItem(common_local_url('doc', array('title' => 'help')), + // TRANS: Secondary navigation menu option leading to help on StatusNet. + _('Help')); + $this->out->menuItem(common_local_url('doc', array('title' => 'about')), + // TRANS: Secondary navigation menu option leading to text about StatusNet site. + _('About')); + $this->out->menuItem(common_local_url('doc', array('title' => 'faq')), + // TRANS: Secondary navigation menu option leading to Frequently Asked Questions. + _('FAQ')); + $bb = common_config('site', 'broughtby'); + if (!empty($bb)) { + $this->out->menuItem(common_local_url('doc', array('title' => 'tos')), + // TRANS: Secondary navigation menu option leading to Terms of Service. + _('TOS')); + } + $this->out->menuItem(common_local_url('doc', array('title' => 'privacy')), + // TRANS: Secondary navigation menu option leading to privacy policy. + _('Privacy')); + $this->out->menuItem(common_local_url('doc', array('title' => 'source')), + // TRANS: Secondary navigation menu option. Leads to information about StatusNet and its license. + _('Source')); + $this->out->menuItem(common_local_url('version'), + // TRANS: Secondary navigation menu option leading to version information on the StatusNet site. + _('Version')); + $this->out->menuItem(common_local_url('doc', array('title' => 'contact')), + // TRANS: Secondary navigation menu option leading to e-mail contact information on the + // TRANS: StatusNet site, where to report bugs, ... + _('Contact')); + $this->out->menuItem(common_local_url('doc', array('title' => 'badge')), + // TRANS: Secondary navigation menu option. Leads to information about embedding a timeline widget. + _('Badge')); + Event::handle('EndSecondaryNav', array($this->action)); + } + $this->out->elementEnd('ul'); + } +} \ No newline at end of file