From 55a4fac6a62a0997f15120432314d55df8994132 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 26 Jan 2009 06:31:25 +0000 Subject: [PATCH] trac750 Better permissions workflow and styling hooks --- actions/facebookhome.php | 24 ++++++++++++++++-------- lib/facebookaction.php | 6 +++++- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/actions/facebookhome.php b/actions/facebookhome.php index 3558cf671b..e17c0f8137 100644 --- a/actions/facebookhome.php +++ b/actions/facebookhome.php @@ -43,11 +43,11 @@ class FacebookhomeAction extends FacebookAction function handle($args) { parent::handle($args); - + // If the user has opted not to initially allow the app to have // Facebook status update permission, store that preference. Only // promt the user the first time she uses the app - if ($this->arg('skip')) { + if ($this->arg('skip') || $args['fb_sig_request_method'] == 'GET') { $this->facebook->api_client->data_setUserPreference( FACEBOOK_PROMPTED_UPDATE_PREF, 'true'); } @@ -191,7 +191,7 @@ class FacebookhomeAction extends FacebookAction $this->showStylesheets(); - $this->elementStart('div', array('class' => 'content')); + $this->elementStart('div', array('class' => 'facebook_guide')); $instructions = sprintf(_('If you would like the %s app to automatically update ' . 'your Facebook status with your latest notice, you need ' . @@ -207,11 +207,19 @@ class FacebookhomeAction extends FacebookAction $this->elementStart('ul', array('id' => 'fb-permissions-list')); $this->elementStart('li', array('id' => 'fb-permissions-item')); - $this->elementStart('fb:prompt-permission', array('perms' => 'status_update', - 'next_fbjs' => 'document.setLocation(\'' . "$this->app_uri/index.php" . '\')')); - $this->element('span', array('class' => 'facebook-button'), - sprintf(_('Allow %s to update my Facebook status'), $this->app_name)); - $this->elementEnd('fb:prompt-permission'); + + $next = urlencode("$this->app_uri/index.php"); + $api_key = common_config('facebook', 'apikey'); + + $auth_url = 'http://www.facebook.com/authorize.php?api_key=' . + $api_key . '&v=1.0&ext_perm=status_update&next=' . $next . + '&next_cancel=' . $next . '&submit=skip'; + + $this->elementStart('span', array('class' => 'facebook-button')); + $this->element('a', array('href' => $auth_url), + sprintf(_('Okay, do it!'), $this->app_name)); + $this->elementEnd('span'); + $this->elementEnd('li'); $this->elementStart('li', array('id' => 'fb-permissions-item')); diff --git a/lib/facebookaction.php b/lib/facebookaction.php index c781b86f40..a12c7d6f94 100644 --- a/lib/facebookaction.php +++ b/lib/facebookaction.php @@ -276,6 +276,8 @@ class FacebookAction extends Action function showInstructions() { + $this->elementStart('div', array('class' => 'facebook_guide')); + $this->elementStart('dl', array('class' => 'system_notice')); $this->element('dt', null, 'Page Notice'); @@ -292,6 +294,9 @@ class FacebookAction extends Action $this->text($loginmsg_part2); $this->elementEnd('dd'); $this->elementEnd('dl'); + + $this->elementEnd('div'); + } @@ -315,7 +320,6 @@ class FacebookAction extends Action 'action' => 'index.php')); $this->elementStart('fieldset'); - $this->element('legend', null, _('Login to site')); $this->elementStart('ul', array('class' => 'form_datas')); $this->elementStart('li'); -- 2.39.5