summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2009-11-25 00:43:20 +0000
committerZach Copley <zach@status.net>2009-11-25 00:46:34 +0000
commitace4b7dc099b39834a70b70bbf3417d51991be6a (patch)
treef6cbe81446b31512824e94b9a43d077bc08892eb
parent4b59cf0e3f4acc688a513c4cd31e8eb8c74e708c (diff)
Facebook plugin no longer takes over Login and Connect settings nav menus
-rw-r--r--plugins/Facebook/FBCLoginGroupNav.php114
-rw-r--r--plugins/Facebook/FBCSettingsNav.php115
-rw-r--r--plugins/Facebook/FacebookPlugin.php48
3 files changed, 27 insertions, 250 deletions
diff --git a/plugins/Facebook/FBCLoginGroupNav.php b/plugins/Facebook/FBCLoginGroupNav.php
deleted file mode 100644
index 81b2520a4..000000000
--- a/plugins/Facebook/FBCLoginGroupNav.php
+++ /dev/null
@@ -1,114 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Menu for login group of actions
- *
- * PHP version 5
- *
- * LICENCE: This program is free software: you can redistribute it and/or modify
- * 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/>.
- *
- * @category Menu
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @author Zach Copley <zach@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://status.net/
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) {
- exit(1);
-}
-
-require_once INSTALLDIR . '/lib/widget.php';
-
-/**
- * Menu for login group of actions
- *
- * @category Output
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @author Zach Copley <zach@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 FBCLoginGroupNav 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()
- {
- $this->action->elementStart('dl', array('id' => 'site_nav_local_views'));
- $this->action->element('dt', null, _('Local views'));
- $this->action->elementStart('dd');
-
- // action => array('prompt', 'title')
- $menu = array();
-
- if (!common_config('site','openidonly')) {
- $menu['login'] = array(_('Login'),
- _('Login with a username and password'));
-
- if (!(common_config('site','closed') || common_config('site','inviteonly'))) {
- $menu['register'] = array(_('Register'),
- _('Sign up for a new account'));
- }
- }
-
- if (common_config('openid', 'enabled')) {
- $menu['openidlogin'] = array(_('OpenID'),
- _('Login or register with OpenID'));
- }
-
- $menu['FBConnectLogin'] = array(_('Facebook'),
- _('Login or register using Facebook'));
-
- $action_name = $this->action->trimmed('action');
- $this->action->elementStart('ul', array('class' => 'nav'));
-
- foreach ($menu as $menuaction => $menudesc) {
- $this->action->menuItem(common_local_url($menuaction),
- $menudesc[0],
- $menudesc[1],
- $action_name === $menuaction);
- }
-
- $this->action->elementEnd('ul');
-
- $this->action->elementEnd('dd');
- $this->action->elementEnd('dl');
- }
-}
diff --git a/plugins/Facebook/FBCSettingsNav.php b/plugins/Facebook/FBCSettingsNav.php
deleted file mode 100644
index ed02371e2..000000000
--- a/plugins/Facebook/FBCSettingsNav.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Menu for login group of actions
- *
- * PHP version 5
- *
- * LICENCE: This program is free software: you can redistribute it and/or modify
- * 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/>.
- *
- * @category Menu
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @author Zach Copley <zach@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://status.net/
- */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) {
- exit(1);
-}
-
-require_once INSTALLDIR . '/lib/widget.php';
-
-/**
- * A widget for showing the connect group local nav menu
- *
- * @category Output
- * @package StatusNet
- * @author Evan Prodromou <evan@status.net>
- * @author Zach Copley <zach@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 FBCSettingsNav 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()
- {
-
- $this->action->elementStart('dl', array('id' => 'site_nav_local_views'));
- $this->action->element('dt', null, _('Local views'));
- $this->action->elementStart('dd');
-
- # action => array('prompt', 'title')
- $menu = array();
- if (common_config('xmpp', 'enabled')) {
- $menu['imsettings'] =
- array(_('IM'),
- _('Updates by instant messenger (IM)'));
- }
- if (common_config('sms', 'enabled')) {
- $menu['smssettings'] =
- array(_('SMS'),
- _('Updates by SMS'));
- }
- if (common_config('twitter', 'enabled')) {
- $menu['twittersettings'] =
- array(_('Twitter'),
- _('Twitter integration options'));
- }
- $menu['FBConnectSettings'] =
- array(_('Facebook'),
- _('Facebook Connect settings'));
-
- $action_name = $this->action->trimmed('action');
- $this->action->elementStart('ul', array('class' => 'nav'));
-
- foreach ($menu as $menuaction => $menudesc) {
- $this->action->menuItem(common_local_url($menuaction),
- $menudesc[0],
- $menudesc[1],
- $action_name === $menuaction);
- }
-
- $this->action->elementEnd('ul');
-
- $this->action->elementEnd('dd');
- $this->action->elementEnd('dl');
- }
-}
diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php
index c5b9298f7..047477d9c 100644
--- a/plugins/Facebook/FacebookPlugin.php
+++ b/plugins/Facebook/FacebookPlugin.php
@@ -394,37 +394,43 @@ class FacebookPlugin extends Plugin
return true;
}
- /**
- * Alter the local nav menu to have a Facebook Connect login and
- * settings pages
+ /*
+ * Add a login tab for Facebook Connect
*
- * @param Action $action the current action
+ * @param Action &action the current action
*
* @return void
- *
*/
- function onStartShowLocalNavBlock($action)
+ function onEndLoginGroupNav(&$action)
{
- $action_name = get_class($action);
- $login_actions = array('LoginAction', 'RegisterAction',
- 'OpenidloginAction', 'FBConnectLoginAction');
+ $action_name = $action->trimmed('action');
- if (in_array($action_name, $login_actions)) {
- $nav = new FBCLoginGroupNav($action);
- $nav->show();
- return false;
- }
+ $action->menuItem(common_local_url('FBConnectLogin'),
+ _('Facebook'),
+ _('Login or register using Facebook'),
+ 'FBConnectLogin' === $action_name);
- $connect_actions = array('SmssettingsAction', 'ImsettingsAction',
- 'TwittersettingsAction', 'FBConnectSettingsAction');
+ return true;
+ }
- if (in_array($action_name, $connect_actions)) {
- $nav = new FBCSettingsNav($action);
- $nav->show();
- return false;
- }
+ /*
+ * Add a tab for managing Facebook Connect settings
+ *
+ * @param Action &action the current action
+ *
+ * @return void
+ */
+
+ function onEndConnectSettingsNav(&$action)
+ {
+ $action_name = $action->trimmed('action');
+
+ $action->menuItem(common_local_url('FBConnectSettings'),
+ _('Facebook'),
+ _('Facebook Connect Settings'),
+ $action_name === 'FBConnectSettings');
return true;
}