*/\r
\r
$english = array(\r
+\r
+ 'openid_client:login:header' => 'Log in with',\r
+ 'openid_client:or:header' => 'or',\r
+ 'openid_client:login:instructs' => 'Login in with %s',\r
+ 'openid_client:server:google' => 'Google',\r
+ 'openid_client:server:yahoo' => 'Yahoo',\r
+ 'openid_client:server:blogger' => 'Blogger',\r
+ 'openid_client:server:wordpress' => 'Wordpress',\r
+\r
'openid_client:success:register' => 'Your account has been created.',\r
'openid_client:error:bad_register' => 'Unable to create an account. Please contact a site administrator.',\r
);\r
* OpenID client initialization\r
*/\r
function openid_client_init() {\r
+ elgg_extend_view('css/elgg', 'openid_client/css');\r
+\r
elgg_extend_view('core/account/login_box', 'openid_client/login');\r
+ elgg_register_plugin_hook_handler('register', 'menu:openid_login', 'openid_client_setup_menu');\r
\r
$base = elgg_get_plugins_path() . 'openid_client/actions/openid_client';\r
elgg_register_action('openid_client/login', "$base/login.php", 'public');\r
\r
elgg_register_event_handler('create', 'user', 'openid_client_set_subtype', 1);\r
\r
- elgg_register_page_handler('openid_client', 'openid_client_page_handler');\r
+ //elgg_register_page_handler('openid_client', 'openid_client_page_handler');\r
}\r
\r
/**\r
update_data($query);\r
}\r
\r
+/**\r
+ * Register login options\r
+ *\r
+ * @param string $hook\r
+ * @param string $type\r
+ * @param array $menu\r
+ * @param array $params\r
+ * @return array\r
+ */\r
+function openid_client_setup_menu($hook, $type, $menu, $params) {\r
+\r
+ $items = array(\r
+ 'large' => array('google', 'yahoo'),\r
+ 'small' => array('blogger', 'wordpress'),\r
+ );\r
+ $items = elgg_trigger_plugin_hook('register', 'openid_login', null, $items);\r
+\r
+ $priority = 100;\r
+ foreach ($items as $type => $servers) {\r
+ foreach ($servers as $server) {\r
+ $server_name = elgg_echo("openid_client:server:$server");\r
+ $menu[] = ElggMenuItem::factory(array(\r
+ 'name' => $server,\r
+ 'text' => '<span></span>',\r
+ 'title' => elgg_echo('openid_client:login:instructs', array($server_name)),\r
+ 'href' => "action/openid_client/login?server=$server",\r
+ 'is_action' => true,\r
+ 'section' => $type,\r
+ 'priority' => $priority,\r
+ ));\r
+ $priority += 10;\r
+ }\r
+ }\r
+\r
+ return $menu;\r
+}\r
+\r
/**\r
* OpenID client page handler\r
*\r
/**\r
* OpenID client CSS\r
*/\r
- \r
+\r
+$site_url = elgg_get_site_url();\r
+\r
?>\r
+\r
+.openid-client-login-or {\r
+ margin-top: 5px;\r
+ text-align: center;\r
+ color: #333;\r
+}\r
+\r
+.elgg-menu-openid-login {\r
+ text-align: center;\r
+}\r
+\r
+.elgg-menu-openid-login > li {\r
+ margin: 3px;\r
+}\r
+\r
+.elgg-menu-openid-login span {\r
+ display: block;\r
+ background: url("<?php echo $site_url; ?>mod/openid_client/graphics/openid_providers.png") no-repeat left;\r
+ border: 1px solid #ccc;\r
+}\r
+\r
+.elgg-menu-openid-login-large span {\r
+ height: 32px;\r
+ width: 92px;\r
+}\r
+\r
+.elgg-menu-openid-login-small span {\r
+ height: 20px;\r
+ width: 20px;\r
+}\r
+\r
+.elgg-menu-item-google span {\r
+ background-position: -5px -14px;\r
+}\r
+\r
+.elgg-menu-openid-login-large > .elgg-menu-item-yahoo span {\r
+ background-position: -105px -14px;\r
+}\r
+\r
+.elgg-menu-item-blogger span {\r
+ background-position: -170px -62px;\r
+}\r
+\r
+.elgg-menu-item-wordpress span {\r
+ background-position: -146px -62px;\r
+}\r
* OpenID client login choices
*/
-echo elgg_view('output/url', array(
- 'text' => 'login with Google',
- 'href' => 'action/openid_client/login',
- 'is_action' => true,
+echo '<h3 class="openid-client-login-or">' . elgg_echo('openid_client:or:header') . '</h3>';
+echo '<h3>' . elgg_echo('openid_client:login:header') . '</h3>';
+
+echo elgg_view_menu('openid_login', array(
+ 'class' => 'elgg-menu-hz',
+ 'sort_by' => 'priority',
));