]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
added a possible UI for logging in
authorcash <cash.costello@gmail.com>
Sat, 17 Dec 2011 20:02:00 +0000 (15:02 -0500)
committercash <cash.costello@gmail.com>
Sat, 17 Dec 2011 20:02:00 +0000 (15:02 -0500)
graphics/openid_providers.png [new file with mode: 0644]
languages/en.php
start.php
views/default/openid_client/css.php
views/default/openid_client/login.php

diff --git a/graphics/openid_providers.png b/graphics/openid_providers.png
new file mode 100644 (file)
index 0000000..179e6d1
Binary files /dev/null and b/graphics/openid_providers.png differ
index a5a5589adfcbde2673fdf901b099cbc4a03bf359..df20c95f97b5ed404be11f0d2ca42b52bd2706e1 100644 (file)
@@ -4,6 +4,15 @@
  */\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
index 34f3e136fa6de73541c0f56b2010fd4686028d2e..bd80dde483fab552eb38fdcfdd2c6260d4d19499 100644 (file)
--- a/start.php
+++ b/start.php
@@ -12,7 +12,10 @@ elgg_register_event_handler('init', 'system', 'openid_client_init');
  * 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
@@ -23,7 +26,7 @@ function openid_client_init() {
 \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
@@ -42,6 +45,43 @@ function openid_client_set_subtype($event, $type, $user) {
        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
index ff81520da86efa359e7821a5be404e16c71c24f4..900de7e6e72bbc92516778c72025f917fa82cdfc 100644 (file)
@@ -2,5 +2,53 @@
 /**\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
index 2b476ec8ed47ff65e8c5b146427396b53794fe74..7e71b8bab44b886ddbdb5937a3081b71e5c0a6f7 100644 (file)
@@ -3,8 +3,10 @@
  * 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',
 ));