diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-01-23 02:17:29 +0100 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-01-23 02:17:29 +0100 |
commit | f54f0a179a0369e145f02c8caed44644a8be6167 (patch) | |
tree | 68f5d0878c21c17829ec659842f390a3912c1944 /lib/openid.php | |
parent | 9a4333f5f3db4daacf5af74253813444bff8a358 (diff) |
Help OpenID module make its little form
Diffstat (limited to 'lib/openid.php')
-rw-r--r-- | lib/openid.php | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/lib/openid.php b/lib/openid.php index 1e7f318fb..860573702 100644 --- a/lib/openid.php +++ b/lib/openid.php @@ -184,15 +184,13 @@ function oid_authenticate($openid_url, $returnto, $immediate=false) // Display an error if the form markup couldn't be generated; // otherwise, render the HTML. if (Auth_OpenID::isFailure($form_html)) { - $this->show_form(sprintf(_('Could not create OpenID form: %s'), $form_html->message)); + common_server_error(sprintf(_('Could not create OpenID form: %s'), $form_html->message)); } else { - common_show_header(_('OpenID Auto-Submit'), null, null, '_oid_print_instructions'); - common_raw($form_html); - common_element('script', null, - '$(document).ready(function() { ' . - ' $("#'. $form_id .'").submit(); '. - '});'); - common_show_footer(); + $action = new AutosubmitAction(); // see below + $action->form_html = $form_html; + $action->form_id = $form_id; + $action->prepare(array('action' => 'autosubmit')); + $action->handle(array('action' => 'autosubmit')); } } } @@ -251,3 +249,29 @@ function oid_update_user(&$user, &$sreg) return true; } + +class AutosubmitAction extends Action +{ + var $form_html = null; + var $form_id = null; + + function handle($args) + { + parent::handle($args); + $this->showPage(); + } + + function title() + { + return _('OpenID Auto-Submit'); + } + + function showContent() + { + $this->raw($this->form_html); + $this->element('script', null, + '$(document).ready(function() { ' . + ' $(\'#'. $this->form_id .'\').submit(); '. + '});'); + } +} |