X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FFacebookBridge%2FFacebookBridgePlugin.php;h=d893baf62d9f703054ea853a21c47dd4038706f9;hb=f25b6e61166be9e27cba473e3f8544ef10b0577c;hp=8b5d05e98359251aadf3e317a28779d3a9603628;hpb=d8d9edfc990a20f67421e40a7d3055a58697a002;p=quix0rs-gnu-social.git diff --git a/plugins/FacebookBridge/FacebookBridgePlugin.php b/plugins/FacebookBridge/FacebookBridgePlugin.php index 8b5d05e983..d893baf62d 100644 --- a/plugins/FacebookBridge/FacebookBridgePlugin.php +++ b/plugins/FacebookBridge/FacebookBridgePlugin.php @@ -24,7 +24,7 @@ * @category Pugin * @package StatusNet * @author Zach Copley - * @copyright 2010 StatusNet, Inc. + * @copyright 2011 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ @@ -47,8 +47,9 @@ define("FACEBOOK_SERVICE", 2); */ class FacebookBridgePlugin extends Plugin { - public $appId = null; // Facebook application ID - public $secret = null; // Facebook application secret + public $appId; // Facebook application ID + public $secret; // Facebook application secret + public $facebook = null; // Facebook application instance public $dir = null; // Facebook plugin dir @@ -61,6 +62,28 @@ class FacebookBridgePlugin extends Plugin */ function initialize() { + + // Allow the id and key to be passed in + // Control panel will override + + if (isset($this->appId)) { + $appId = common_config('facebook', 'appid'); + if (empty($appId)) { + Config::save( + 'facebook', + 'appid', + $this->appId + ); + } + } + + if (isset($this->secret)) { + $secret = common_config('facebook', 'secret'); + if (empty($secret)) { + Config::save('facebook', 'secret', $this->secret); + } + } + $this->facebook = Facebookclient::getFacebook( $this->appId, $this->secret @@ -78,7 +101,6 @@ class FacebookBridgePlugin extends Plugin */ function onAutoload($cls) { - $dir = dirname(__FILE__); //common_debug("class = " . $cls); @@ -105,7 +127,6 @@ class FacebookBridgePlugin extends Plugin default: return true; } - } /** @@ -154,30 +175,24 @@ class FacebookBridgePlugin extends Plugin function onRouterInitialized($m) { // Always add the admin panel route - $m->connect('admin/facebook', array('action' => 'facebookadminpanel')); + $m->connect('panel/facebook', array('action' => 'facebookadminpanel')); - // Only add these routes if an application has been setup on - // Facebook for the plugin to use. - if ($this->hasApplication()) { - - $m->connect( - 'main/facebooklogin', - array('action' => 'facebooklogin') - ); - $m->connect( - 'main/facebookfinishlogin', - array('action' => 'facebookfinishlogin') - ); - $m->connect( - 'settings/facebook', - array('action' => 'facebooksettings') - ); - $m->connect( - 'facebook/deauthorize', - array('action' => 'facebookdeauthorize') - ); - - } + $m->connect( + 'main/facebooklogin', + array('action' => 'facebooklogin') + ); + $m->connect( + 'main/facebookfinishlogin', + array('action' => 'facebookfinishlogin') + ); + $m->connect( + 'settings/facebook', + array('action' => 'facebooksettings') + ); + $m->connect( + 'facebook/deauthorize', + array('action' => 'facebookdeauthorize') + ); return true; } @@ -186,21 +201,22 @@ class FacebookBridgePlugin extends Plugin * Add a login tab for Facebook, but only if there's a Facebook * application defined for the plugin to use. * - * @param Action &action the current action + * @param Action $action the current action * * @return void */ - function onEndLoginGroupNav(&$action) + function onEndLoginGroupNav($action) { $action_name = $action->trimmed('action'); if ($this->hasApplication()) { $action->menuItem( + // TRANS: Menu item for "Facebook" login. common_local_url('facebooklogin'), _m('MENU', 'Facebook'), - // TRANS: Tooltip for menu item "Facebook". - _m('Login or register using Facebook'), + // TRANS: Menu title for "Facebook" login. + _m('Login or register using Facebook.'), 'facebooklogin' === $action_name ); } @@ -236,10 +252,10 @@ class FacebookBridgePlugin extends Plugin $nav->out->menuItem( common_local_url('facebookadminpanel'), - // TRANS: Menu item. + // TRANS: Menu item for "Facebook" in administration panel. _m('MENU','Facebook'), - // TRANS: Tooltip for menu item "Facebook". - _m('Facebook integration configuration'), + // TRANS: Menu title for "Facebook" in administration panel. + _m('Facebook integration configuration.'), $action_name == 'facebookadminpanel', 'nav_facebook_admin_panel' ); @@ -252,11 +268,11 @@ class FacebookBridgePlugin extends Plugin * Add a tab for user-level Facebook settings if the user * has a link to Facebook * - * @param Action &action the current action + * @param Action $action the current action * * @return void */ - function onEndConnectSettingsNav(&$action) + function onEndConnectSettingsNav($action) { if ($this->hasApplication()) { $action_name = $action->trimmed('action'); @@ -277,16 +293,14 @@ class FacebookBridgePlugin extends Plugin $action->menuItem( common_local_url('facebooksettings'), - // TRANS: Menu item tab. + // TRANS: Menu item for "Facebook" in user settings. _m('MENU','Facebook'), - // TRANS: Tooltip for menu item "Facebook". - _m('Facebook settings'), + // TRANS: Menu title for "Facebook" in user settings. + _m('Facebook settings.'), $action_name === 'facebooksettings' ); - } } - } /* @@ -307,7 +321,6 @@ class FacebookBridgePlugin extends Plugin if (!empty($appId) && !empty($secret)) { return true; } - } return false; @@ -403,7 +416,6 @@ ENDOFSCRIPT; common_debug("LOGOUT URL = $logoutUrl"); common_redirect($logoutUrl, 303); } - } } @@ -438,7 +450,7 @@ ENDOFSCRIPT; */ function onStartEnqueueNotice($notice, &$transports) { - if (self::hasApplication() && $notice->isLocal()) { + if (self::hasApplication() && $notice->isLocal() && $notice->inScope(null)) { array_push($transports, 'facebook'); } return true; @@ -509,7 +521,7 @@ ENDOFSCRIPT; */ function onEndFavorNotice(Profile $profile, Notice $notice) { - $client = new Facebookclient($notice); + $client = new Facebookclient($notice, $profile); $client->like(); return true; @@ -525,7 +537,7 @@ ENDOFSCRIPT; */ function onEndDisfavorNotice(Profile $profile, Notice $notice) { - $client = new Facebookclient($notice); + $client = new Facebookclient($notice, $profile); $client->unLike(); return true; @@ -544,6 +556,7 @@ ENDOFSCRIPT; 'author' => 'Craig Andrews, Zach Copley', 'homepage' => 'http://status.net/wiki/Plugin:FacebookBridge', 'rawdescription' => + // TRANS: Plugin description. _m('A plugin for integrating StatusNet with Facebook.') );