. * * @category Plugin * @package StatusNet * @author Zach Copley * @copyright 2010 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ if (!defined('STATUSNET')) { exit(1); } class FacebookloginAction extends Action { function handle($args) { parent::handle($args); if (common_is_real_login()) { // TRANS: Client error displayed when trying to login while already logged in. $this->clientError(_m('Already logged in.')); } else { $this->showPage(); } } function getInstructions() { // TRANS: Form instructions. return _m('Login with your Facebook Account'); } function showPageNotice() { $instr = $this->getInstructions(); $output = common_markup_to_html($instr); $this->elementStart('div', 'instructions'); $this->raw($output); $this->elementEnd('div'); } function title() { // TRANS: Page title. return _m('Login with Facebook'); } function showContent() { $this->elementStart('fieldset'); $facebook = Facebookclient::getFacebook(); // Degrade to plain link if JavaScript is not available $this->elementStart( 'a', array( 'href' => $facebook->getLoginUrl( array( 'next' => common_local_url('facebookfinishlogin'), 'cancel' => common_local_url('facebooklogin'), 'req_perms' => 'read_stream,publish_stream,offline_access,user_status,user_location,user_website,email' ) ), 'id' => 'facebook_button' ) ); $attrs = array( 'src' => Plugin::staticPath('FacebookBridge', 'images/login-button.png'), // TRANS: Alt text for "Login with Facebook" image. 'alt' => _m('Login with Facebook'), // TRANS: Title for "Login with Facebook" image. 'title' => _m('Login with Facebook.') ); $this->element('img', $attrs); $this->elementEnd('a'); /* $this->element('div', array('id' => 'fb-root')); $this->script( sprintf( 'http://connect.facebook.net/en_US/all.js#appId=%s&xfbml=1', common_config('facebook', 'appid') ) ); $this->element('fb:facepile', array('max-rows' => '2', 'width' =>'300')); */ $this->elementEnd('fieldset'); } function showLocalNav() { $nav = new LoginGroupNav($this); $nav->show(); } }