diff options
Diffstat (limited to 'plugins/Facebook')
-rw-r--r-- | plugins/Facebook/FBCLoginGroupNav.php | 114 | ||||
-rw-r--r-- | plugins/Facebook/FBCSettingsNav.php | 115 | ||||
-rw-r--r-- | plugins/Facebook/FBConnectLogin.php | 6 | ||||
-rw-r--r-- | plugins/Facebook/FacebookPlugin.php | 48 | ||||
-rw-r--r-- | plugins/Facebook/facebooksettings.php | 18 |
5 files changed, 41 insertions, 260 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/FBConnectLogin.php b/plugins/Facebook/FBConnectLogin.php index f146bef7d..d2bb8054c 100644 --- a/plugins/Facebook/FBConnectLogin.php +++ b/plugins/Facebook/FBConnectLogin.php @@ -21,7 +21,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - require_once INSTALLDIR . '/plugins/Facebook/FacebookPlugin.php'; class FBConnectLoginAction extends Action @@ -65,4 +64,9 @@ class FBConnectLoginAction extends Action $this->elementEnd('fieldset'); } + function showLocalNav() + { + $nav = new LoginGroupNav($this); + $nav->show(); + } } 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; } diff --git a/plugins/Facebook/facebooksettings.php b/plugins/Facebook/facebooksettings.php index 2f182e368..d1269f101 100644 --- a/plugins/Facebook/facebooksettings.php +++ b/plugins/Facebook/facebooksettings.php @@ -52,21 +52,21 @@ class FacebooksettingsAction extends FacebookAction function saveSettings() { - $noticesync = $this->arg('noticesync'); - $replysync = $this->arg('replysync'); - $prefix = $this->trimmed('prefix'); + $noticesync = $this->boolean('noticesync'); + $replysync = $this->boolean('replysync'); + $prefix = $this->trimmed('prefix'); $original = clone($this->flink); - $this->flink->set_flags($noticesync, $replysync, false, false); + $this->flink->set_flags($noticesync, false, $replysync, false); $result = $this->flink->update($original); if ($prefix == '' || $prefix == '0') { - // Facebook bug: saving empty strings to prefs now fails - // http://bugs.developers.facebook.com/show_bug.cgi?id=7110 - $trimmed = $prefix . ' '; + // Facebook bug: saving empty strings to prefs now fails + // http://bugs.developers.facebook.com/show_bug.cgi?id=7110 + $trimmed = $prefix . ' '; } else { - $trimmed = substr($prefix, 0, 128); - } + $trimmed = substr($prefix, 0, 128); + } $this->facebook->api_client->data_setUserPreference(FACEBOOK_NOTICE_PREFIX, $trimmed); |