Add multilingual weblogin, adjust rahunas template
authorNeutron Soutmun <neo.neutron@gmail.com>
Thu, 27 Nov 2008 17:58:34 +0000 (00:58 +0700)
committerNeutron Soutmun <neo.neutron@gmail.com>
Thu, 27 Nov 2008 17:58:34 +0000 (00:58 +0700)
2008-11-28  Neutron Soutmun <neo.neutron@gmail.com>

* weblogin/locale.php, weblogin/locale/*, +weblogin/messages.php,
  weblogin/login.php, weblogin/logout.php:
  Add multilingual weblogin base on PHP gettext, now supported languages are
  Thai and English.
* weblogin/loading.gif, weblogin/note.txt:
  Change the loading animation picture which now is the hourclass spinning
  downloaded from www.clipartpoint.com. (Free to use it on website)
* -weblogin/rahu-{loading,waiting}.gif: Remove unused pictures.
* weblogin/templates/*/rahunas.css: Add new customized CSS for each template
  which now can customized independently from the core.
* weblogin/templates/rahunas/rahunas.html: Adjust the rahunas template.

17 files changed:
ChangeLog
weblogin/index.php
weblogin/loading.gif
weblogin/locale.php [new file with mode: 0644]
weblogin/locale/messages.po [new file with mode: 0644]
weblogin/locale/th_TH/LC_MESSAGES/messages.mo [new file with mode: 0644]
weblogin/locale/th_TH/LC_MESSAGES/messages.po [new file with mode: 0644]
weblogin/login.php
weblogin/logout.php
weblogin/messages.php [new file with mode: 0644]
weblogin/note.txt [new file with mode: 0644]
weblogin/rahu-loading.gif [deleted file]
weblogin/rahu-waiting.gif [deleted file]
weblogin/templates/kkulogin/rahunas.css [new file with mode: 0644]
weblogin/templates/kkuwifi/rahunas.css [new file with mode: 0644]
weblogin/templates/rahunas/rahunas.css [new file with mode: 0644]
weblogin/templates/rahunas/rahunas.html

index 26ff717..50b0bcf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2008-11-28  Neutron Soutmun <neo.neutron@gmail.com>
+
+       * weblogin/locale.php, weblogin/locale/*, +weblogin/messages.php,
+         weblogin/login.php, weblogin/logout.php: 
+         Add multilingual weblogin base on PHP gettext, now supported languages are 
+         Thai and English.
+       * weblogin/loading.gif, weblogin/note.txt: 
+         Change the loading animation picture which now is the hourclass spinning 
+         downloaded from www.clipartpoint.com. (Free to use it on website)
+       * -weblogin/rahu-{loading,waiting}.gif: Remove unused pictures.
+       * weblogin/templates/*/rahunas.css: Add new customized CSS for each template
+         which now can customized independently from the core.
+       * weblogin/templates/rahunas/rahunas.html: Adjust the rahunas template.
+
 2008-11-27  Neutron Soutmun <neo.neutron@gmail.com>
 
        * weblogin/config.php: 
index 5a91669..d9aded5 100644 (file)
@@ -1,16 +1,18 @@
 <?php
 require_once 'config.php';
 require_once 'header.php';
+
 $forward_uri  = $config['NAS_LOGIN_PROTO'] . "://" . $config['NAS_LOGIN_HOST'];
 $forward_uri .= !empty($config['NAS_LOGIN_PORT']) ? ":" . $config['NAS_LOGIN_PORT'] : "";
 $forward_uri .= "/login.php?sss=" . time();
 ?>
 <html>
 <head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
 <meta http-equiv="Pragma" content="no-cache">
 <meta http-equiv="Expires" content="0">
-<title>RahuNAS - Authentication System</title>
+<title>RahuNAS Authentication</title>
 <style>
 body {
   font-family: sans-serif;
@@ -24,12 +26,17 @@ a:hover {
   font-weight: bolder;
   color: #FF0000;
 }
+
+#loadingpic {
+  padding-top: 100px;
+  padding-bottom: 30px;
+}
 </style>
 </head>
 <body>
 <center>
-<div><img src="/loading.gif"></div>
-<div>If it is not redirecting within 3 seconds, click <a href="<?php echo $forward_uri ?>">Login Page</a></div>
+<div id="loadingpic"><img src="/loading.gif"></div>
+<div><?php echo _("If it is not redirecting within 3 seconds") . "," . _("click"); ?> <a href="<?php echo $forward_uri ?>"><?php echo _("Login Page"); ?></a></div>
 </center>
 
 <script language="JavaScript">
index 2d0d5d5..03d504f 100644 (file)
Binary files a/weblogin/loading.gif and b/weblogin/loading.gif differ
diff --git a/weblogin/locale.php b/weblogin/locale.php
new file mode 100644 (file)
index 0000000..0b5e0a8
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+  function explode_querystring($query_string) {
+    // Explode the query string into array
+    $query_string = explode("&", $query_string);
+    $query_key = array();
+    $query_val = array();
+    if (is_array($query_string)) {
+      foreach ($query_string as $each_query) {
+        $sep_query = explode("=", $each_query);
+        $query_key[] = $sep_query[0];
+        $query_val[] = $sep_query[1];
+      }
+    }
+    $query = array_combine($query_key, $query_val);
+    return $query;
+  }
+  function implode_querystring($query) { 
+    // Combine array into query string
+    $query_string = array();
+    if (is_array($query)) {
+      foreach ($query as $key=>$val) {
+        $query_string[] = $key . "=" . $val; 
+      } 
+      
+      $query_string = implode("&", $query_string);
+    }
+    return $query_string;
+  }
+
+  $main_query = explode_querystring($_SERVER['QUERY_STRING']);
+  
+  // Languages list
+  $lang = array();
+  $lang['Thai']['name'] = 'ไทย';
+  $lang['Thai']['code'] = 'th_TH.UTF-8';
+  $lang['English']['name'] = 'English';
+  $lang['English']['code'] = 'en_US.UTF-8';
+  $lang_list = array();
+  $lang_link_template = "<a href='%s'>%s</a>";
+  foreach ($lang as $key=>$eachlang) {
+    $query = $main_query;
+    $query['language'] = $key;
+    $link = $_SERVER['PHP_SELF'] . "?" . implode_querystring($query);
+    $lang_list[] = sprintf($lang_link_template, $link, $eachlang['name']); 
+  }
+
+  echo "<div id='rh_language'>Language: " . implode(" | ", $lang_list) . "</div>";
+
+  if (!empty($_GET['language']))
+    $_SESSION['language'] = $_GET['language'];
+
+  $selected_lang =& $lang[$_SESSION['language']];
+
+  setlocale(LC_ALL, $selected_lang['code']);
+  bindtextdomain('messages', './locale');
+  textdomain('messages');
+?>
diff --git a/weblogin/locale/messages.po b/weblogin/locale/messages.po
new file mode 100644 (file)
index 0000000..9e22b5d
--- /dev/null
@@ -0,0 +1,105 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Neutron Soutmun
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: RahuNAS Weblogin 0.1.1\n"
+"Report-Msgid-Bugs-To: neo.neutron@gmail.com\n"
+"POT-Creation-Date: 2008-11-27 22:18+0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../weblogin/login.php:115 ../../weblogin/logout.php:100
+msgid "Username"
+msgstr ""
+
+#: ../../weblogin/login.php:117
+msgid "Password"
+msgstr ""
+
+#: ../../weblogin/login.php:120
+msgid "Login"
+msgstr ""
+
+#: ../../weblogin/logout.php:104
+msgid "Session Start"
+msgstr ""
+
+#: ../../weblogin/logout.php:108
+msgid "Session Time"
+msgstr ""
+
+#: ../../weblogin/logout.php:109
+msgid "seconds"
+msgstr ""
+
+#: ../../weblogin/logout.php:113
+msgid "Expired"
+msgstr ""
+
+#: ../../weblogin/logout.php:114
+msgid "Never"
+msgstr ""
+
+#: ../../weblogin/logout.php:118
+msgid "Request URL"
+msgstr ""
+
+#: ../../weblogin/logout.php:125
+msgid "Go! Go! Go!"
+msgstr ""
+
+#: ../../weblogin/logout.php:126
+msgid "Logout"
+msgstr ""
+
+#: ../../weblogin/messages.php:3
+msgid "Error! Could not connect to the server"
+msgstr ""
+
+#: ../../weblogin/messages.php:4
+msgid "Error! Could not connect to the authenticator server"
+msgstr ""
+
+#: ../../weblogin/messages.php:5
+msgid "Error! User has been reach the maximum login"
+msgstr ""
+
+#: ../../weblogin/messages.php:6
+msgid "Error! User already login"
+msgstr ""
+
+#: ../../weblogin/messages.php:7
+msgid "Error! User expired"
+msgstr ""
+
+#: ../../weblogin/messages.php:8
+msgid "Error! Invalid IP address"
+msgstr ""
+
+#: ../../weblogin/messages.php:10
+msgid "Error! Invalid username or password"
+msgstr ""
+
+#: ../../weblogin/messages.php:11
+msgid "Error! Logout failed! please try again"
+msgstr ""
+
+#: ../../weblogin/messages.php:12
+msgid "Error! Please login"
+msgstr ""
+
+#: ../../weblogin/messages.php:15
+msgid "Success! User has been authorized, please wait a moment"
+msgstr ""
+
+#: ../../weblogin/messages.php:16
+msgid "Success! User has been logout"
+msgstr ""
diff --git a/weblogin/locale/th_TH/LC_MESSAGES/messages.mo b/weblogin/locale/th_TH/LC_MESSAGES/messages.mo
new file mode 100644 (file)
index 0000000..a503cd2
Binary files /dev/null and b/weblogin/locale/th_TH/LC_MESSAGES/messages.mo differ
diff --git a/weblogin/locale/th_TH/LC_MESSAGES/messages.po b/weblogin/locale/th_TH/LC_MESSAGES/messages.po
new file mode 100644 (file)
index 0000000..10cd05d
--- /dev/null
@@ -0,0 +1,107 @@
+# translation of RahuNAS Weblogin.
+# Copyright (C) 2008 Neutron Soutmun
+# This file is distributed under the same license as the RahuNAS Weblogin package.
+# <neo.neutron@gmail.com>, 2008.
+# , fuzzy
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: RahuNAS Weblogin 0.1.1\n"
+"Report-Msgid-Bugs-To: neo.neutron@gmail.com\n"
+"POT-Creation-Date: 2008-11-27 22:18+0700\n"
+"PO-Revision-Date: 2008-11-27 22:47+0700\n"
+"Last-Translator: Neutron Soutmun <neo.neutron@gmail.com>\n"
+"Language-Team:  <l10n@opentle.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: "
+
+#: ../../weblogin/login.php:115 ../../weblogin/logout.php:100
+msgid "Username"
+msgstr "ชื่อผู้ใช้"
+
+#: ../../weblogin/login.php:117
+msgid "Password"
+msgstr "รหัสผ่าน"
+
+#: ../../weblogin/login.php:120
+msgid "Login"
+msgstr "เข้าสู่ระบบ"
+
+#: ../../weblogin/logout.php:104
+msgid "Session Start"
+msgstr "เริ่มวาระ"
+
+#: ../../weblogin/logout.php:108
+msgid "Session Time"
+msgstr "เวลาใช้งาน"
+
+#: ../../weblogin/logout.php:109
+msgid "seconds"
+msgstr "วินาที"
+
+#: ../../weblogin/logout.php:113
+msgid "Expired"
+msgstr "หมดอายุ"
+
+#: ../../weblogin/logout.php:114
+msgid "Never"
+msgstr "ไม่มีวันหมดอายุ"
+
+#: ../../weblogin/logout.php:118
+msgid "Request URL"
+msgstr "URL ที่ร้องขอ"
+
+#: ../../weblogin/logout.php:125
+msgid "Go! Go! Go!"
+msgstr "ไป! กัน! เลย!"
+
+#: ../../weblogin/logout.php:126
+msgid "Logout"
+msgstr "เลิกใช้งาน"
+
+#: ../../weblogin/messages.php:3
+msgid "Error! Could not connect to the server"
+msgstr "ผิดพลาด! ไม่สามารถเชื่อมต่อกับเครื่องแม่ข่ายได้"
+
+#: ../../weblogin/messages.php:4
+msgid "Error! Could not connect to the authenticator server"
+msgstr "ผิดพลาด! ไม่สามารถเชื่อมต่อกับเครื่องตรวจสอบสิทธิ์ได้"
+
+#: ../../weblogin/messages.php:5
+msgid "Error! User has been reach the maximum login"
+msgstr "ผิดพลาด! ผู้ใช้นี้ทำการเข้าระบบพร้อมกันเกินจำนวนที่กำหนดไว้"
+
+#: ../../weblogin/messages.php:6
+msgid "Error! User already login"
+msgstr "ผิดพลาด! ผู้ใช้นี้ได้เข้าระบบแล้ว"
+
+#: ../../weblogin/messages.php:7
+msgid "Error! User expired"
+msgstr "ผิดพลาด! ผู้ใช้นี้หมดอายุลงแล้ว"
+
+#: ../../weblogin/messages.php:8
+msgid "Error! Invalid IP address"
+msgstr "ผิดพลาด! IP address ไม่ถูกต้อง"
+
+#: ../../weblogin/messages.php:10
+msgid "Error! Invalid username or password"
+msgstr "ผิดพลาด! ชื่อผู้ใช้ หรือ รหัสผ่าน ไม่ถูกต้อง"
+
+#: ../../weblogin/messages.php:11
+msgid "Error! Logout failed! please try again"
+msgstr "ผิดพลาด! ไม่สามารถเลิกใช้งานได้ กรุณาลองใหม่อีกครั้ง"
+
+#: ../../weblogin/messages.php:12
+msgid "Error! Please login"
+msgstr "ผิดพลาด! กรุณาเข้าสู่ระบบ"
+
+#: ../../weblogin/messages.php:15
+msgid "Success! User has been authorized, please wait a moment"
+msgstr "สำเร็จ! ผู้ใช้นี้ผ่านการตรวจสอบ กรุณารอสักครู่"
+
+#: ../../weblogin/messages.php:16
+msgid "Success! User has been logout"
+msgstr "สำเร็จ! ผู้ใช้นี้ ได้เลิกใช้งานแล้ว"
+
index 25ab41c..0bed029 100644 (file)
@@ -6,18 +6,39 @@ require_once 'rahu_xmlrpc.class.php';
 require_once 'getmacaddr.php';
 require_once 'config.php';
 require_once 'header.php';
+require_once 'locale.php';
+require_once 'messages.php';
 
-if (!empty($_POST['user']) && !empty($_POST['passwd'])) {
-  $ip = $_SERVER['REMOTE_ADDR'];
+$ip = $_SERVER['REMOTE_ADDR'];
+$forward = false;
+$LogoutURL  = $config['NAS_LOGIN_PROTO'] . "://" . $config['NAS_LOGIN_HOST'];
+$LogoutURL .= !empty($config['NAS_LOGIN_PORT']) ? 
+                ":" . $config['NAS_LOGIN_PORT'] : "";
+$LogoutURL .= "/logout.php";
+$RequestURL = empty($_GET['request_url']) ? 
+                $config['DEFAULT_REDIRECT_URL']
+                : urldecode($_GET['request_url']);
+$_SESSION['request_url'] = $RequestURL;
+
+// Verify if the user already login
+$xmlrpc = new rahu_xmlrpc_client();
+$xmlrpc->host = $config["RAHUNAS_HOST"];
+$xmlrpc->port = $config["RAHUNAS_PORT"];
+try {
+  $retinfo = $xmlrpc->do_getsessioninfo($ip);
+  if (is_array($retinfo) && !empty($retinfo['session_id'])) {
+    $forward = true;
+  }
+} catch (XML_RPC2_FaultException $e) {
+  $message = get_message('ERR_CONNECT_SERVER');
+  $forward = false;
+} catch (Exception $e) {
+  $message = get_message('ERR_CONNECT_SERVER');
   $forward = false;
-  $LogoutURL  = $config['NAS_LOGIN_PROTO'] . "://" . $config['NAS_LOGIN_HOST'];
-  $LogoutURL .= !empty($config['NAS_LOGIN_PORT']) ? ":" . $config['NAS_LOGIN_PORT'] : "";
-  $LogoutURL .= "/logout.php";
-
-  $RequestURL = empty($_GET['request_url']) ? 
-                   $config['DEFAULT_REDIRECT_URL']
-                 : urldecode($_GET['request_url']);
-  $_SESSION['request_url'] = $RequestURL;
+}
+
+if (!empty($_POST['user']) && !empty($_POST['passwd'])) {
+
   $message = "";
   $rauth = new rahu_radius_auth ($_POST['user'], $_POST['passwd'], $config['RADIUS_ENCRYPT']);
   $rauth->host = $config["RADIUS_HOST"];
@@ -26,9 +47,9 @@ if (!empty($_POST['user']) && !empty($_POST['passwd'])) {
   $rauth->start();
 
   if ($rauth->isError()) {
-    $message = "ไม่สามารถเชื่อมต่อ กับเครื่องตรวจสอบสิทธิ์ได้";
+    $message = get_message('ERR_CONNECT_RADIUS');
   } else if ($rauth->isAccept()) {
-    $message = "ผู้ใช้ ผ่านการตรวจสอบสิทธิ์ รอสักครู่ ";
+    $message = get_message('OK_USER_AUTHORIZED');
     $forward = true;
     $racct = new rahu_radius_acct ($_POST['user']);
     $racct->host = $config["RADIUS_HOST"];
@@ -41,10 +62,6 @@ if (!empty($_POST['user']) && !empty($_POST['passwd'])) {
     $racct->calling_station_id = returnMacAddress();
     $racct->gen_session_id();
 
-    // Verify if the user already login
-    $xmlrpc = new rahu_xmlrpc_client();
-    $xmlrpc->host = $config["RAHUNAS_HOST"];
-    $xmlrpc->port = $config["RAHUNAS_PORT"];
 
     try {
       $prepareData = array (
@@ -57,28 +74,28 @@ if (!empty($_POST['user']) && !empty($_POST['passwd'])) {
         "Bandwidth-Max-Up" => $rauth->attributes['WISPr-Bandwidth-Max-Up']);
       $result = $xmlrpc->do_startsession($prepareData);
       if (strstr($result,"Client already login")) {
-        $message = "ผู้ใช้นี้ ได้ใช้สิทธิ์เข้าใช้งานแล้ว";
+        $message = get_message('ERR_ALREADY_LOGIN');
         $forward = false;
       } else if (strstr($result, "Greeting")) {
         $racct->acctStart();
       } else if (strstr($result, "Invalid IP Address")) {
-        $message = "หมายเลข IP Address ประจำเครื่อง ไม่ถูกต้อง";
+        $message = get_message('ERR_INVALID_IP');
         $forward = false;
       }
     } catch (XML_RPC2_FaultException $e) {
-      $message = "ผิดพลาด! ไม่สามารถเชื่อมต่อเครื่องแม่ข่ายได้";
+      $message = get_message('ERR_CONNECT_SERVER');
       $forward = false;
     } catch (Exception $e) {
-      $message = "ผิดพลาด! ไม่สามารถเชื่อมต่อเครื่องแม่ข่ายได้";
+      $message = get_message('ERR_CONNECT_SERVER');
       $forward = false;
     }
   } else {
     if ($rauth->isLoggedIn()) {
-      $message = "ไม่สามารถเข้าระบบได้ มีการเข้าระบบซ้ำ";
+      $message = get_message('ERR_MAXIMUM_LOGIN');
     } else if ($rauth->isTimeout()) {
-      $message = "ไม่สามารถเข้าระบบได้ หมดเวลาการใช้งาน";
+      $message = get_message('ERR_USER_EXPIRED');
     } else {
-      $message = "ไม่พบผู้ใช้นี้ หรือรหัสผ่านผิด";
+      $message = get_message('ERR_INVALID_USERNAME_OR_PASSWORD');
     }
   }
 }
@@ -91,35 +108,15 @@ if ($forward) {
 <?php
 // Login box
 $request_uri = $_SERVER['REQUEST_URI'];
-$loginbox = "<style>" .
-            "#rh_login_text { font-weight: bolder; }\n" .
-            "#waiting { " .
-            " position: absolute; ".
-            " top: -215px;".
-            " left: 170px;".
-            "}".
-            "#message { " .
-            "  color: #000000;" .
-            "  font-weight: bolder; ".
-            "  padding: 2px;" .
-            "  width: 80%;" .
-            "  text-align: center;" .
-            "  background: #FFFF99;" .
-            "}\n" .
-            "#rh_login_button {" .
-            "  color: #000000;" .
-            "  padding: 3px 10px 3px 10px;" .
-            "  cursor: pointer;" .
-            "}\n" .
-            "</style>" . 
-            "<form name='login' action='$request_uri' method='post'>" .
+
+$loginbox = "<form name='login' action='$request_uri' method='post'>" .
             "<table>" .
-            "<tr><td id='rh_login_text'>Username</td>" .
+            "<tr><td id='rh_login_text'>" . _("Username") . "</td>" .
             "<td><input type='text' name='user' size='22'></td></tr>" .
-            "<tr><td id='rh_login_text'>Password</td>" .
+            "<tr><td id='rh_login_text'>" . _("Password") . "</td>" .
             "<td><input type='password' name='passwd' size='22'></td></tr>" .
             "<tr><td>&nbsp;</td>" .
-            "<td><input type='submit' value='Login' id='rh_login_button'>" .
+            "<td><input type='submit' value='" . _("Login") . "' id='rh_login_button'>" .
             "</td></tr>" .
             "</table>" .
             "</form>";
@@ -131,6 +128,8 @@ $waiting_show  = $forward ? "visible_hide(wt, 'show');"
 $message_show  = !empty($message) ? "visible_hide(msg, 'show');" 
                                   : "visible_hide(msg, 'hide');";
 $hide_wait = !empty($message) ? "setTimeout('hide_wait();', 2000);\n" : "";
+$force_forward = $hide_wait == "" && $forward ? 
+                   "self.location.replace('$LogoutURL');" : "";
 
 $loginscript = "<script>" .
                "var msg=(document.all);\n" .  
@@ -138,18 +137,18 @@ $loginscript = "<script>" .
                "var ns6=document.getElementById&&!document.all;\n" .
                "var ie4=document.all;\n" .
                "if (ns4)" .
-               "  msg=document.message;\n" .
+               "  msg=document.rh_message;\n" .
                "else if (ns6)" .
-               "  msg=document.getElementById('message').style;\n" .
+               "  msg=document.getElementById('rh_message').style;\n" .
                "else if (ie4)" .
-               "  msg=document.all.message.style;\n\n" .
+               "  msg=document.all.rh_message.style;\n\n" .
                "var wt=(document.all);\n" .  
                "if (ns4)" .
-               "  wt=document.waiting;\n" .
+               "  wt=document.rh_waiting;\n" .
                "else if (ns6)" .
-               "  wt=document.getElementById('waiting').style;\n" .
+               "  wt=document.getElementById('rh_waiting').style;\n" .
                "else if (ie4)" .
-               "  wt=document.all.waiting.style;\n\n" .
+               "  wt=document.all.rh_waiting.style;\n\n" .
                "function visible_hide(obj, type)\n" .
                "{\n" .
                "  if(type == 'show') {\n" .
@@ -168,11 +167,12 @@ $loginscript = "<script>" .
                "  $message_show \n".
                "  $waiting_show \n".
                "  $hide_wait \n".
+               "  $force_forward \n".
                "</script>";
 $watting_script="";
 
-$waiting  = "<div id='waiting'><img src='loading.gif'></div>";
-$loginmsg = "<div id='message'>$message</div>";
+$waiting  = "<div id='rh_waiting'><img src='loading.gif'></div>";
+$loginmsg = "<div id='rh_message'>$message</div>";
 $loginbox .= $waiting;
 $loginbox .= $loginmsg;
 ?>
@@ -184,6 +184,9 @@ $tpl_file = $tpl_path . $config['UAM_TEMPLATE'] . ".html";
 $handle = @fopen($tpl_file, "r");
 $html_buffer = "";
 if ($handle) {  
+  $css = "<link rel='stylesheet' type='text/css' href='" . $tpl_path . "rahunas.css'>";
+  $loginbox = $css . $loginbox;
+
   while (!feof($handle)) {
     $html_buffer .= fgets($handle, 4096);
   }
@@ -200,6 +203,5 @@ if ($handle) {
   print $html_buffer;
 }
 
-
 ob_end_flush();
 ?>
index 002a785..7effd0c 100644 (file)
@@ -6,6 +6,8 @@ require_once 'rahu_xmlrpc.class.php';
 require_once 'getmacaddr.php';
 require_once 'config.php';
 require_once 'header.php';
+require_once 'locale.php';
+require_once 'messages.php';
 
 $current_url = $_SERVER['REQUEST_URI'];
 $interval = 60;
@@ -48,11 +50,11 @@ if (!empty($_POST['do_logout'])) {
     $result = $xmlrpc->do_stopsession($ip, returnMacAddress());
     if ($result === true) {
       $valid = false;
-      $message = "ทำการ 'Logout' สำเร็จ";
+      $message = get_message('OK_USER_LOGOUT');
       $isstopacct = true;
     } else {
       $valid = false;
-      $message = "ไม่สามารถ 'เลิกใช้งาน' ได้ในขณะนี้ กรุณาลองใหม่อีกครั้ง";
+      $message = get_message('ERR_LOGOUT_FAILED');
       $show_info = true;
     }
   }
@@ -84,7 +86,7 @@ if ($show_info) {
       $valid = true;
       $info = $result;
     } else {
-      $message = "คุณยังไม่ได้เข้าใช้งานในระบบ";
+      $message = get_message('ERR_PLEASE_LOGIN');
     }
   }
 }
@@ -93,61 +95,39 @@ if ($show_info) {
 <?php
 // Login box
 $valid_text = !$valid ? "" : "" . 
-"  <table id='bg'>" .
-"  <tr>" .
-"   <td align='right'><b>Username:</b></td>" .
-"   <td>". $info['username']."</td>" .
-" </tr>" .
-"  <tr>" .
-"   <td align='right'><b>Session Start:</b></td>" .
-"   <td>". date('j F Y H:i', $info['session_start']) . "</td>" .
-" </tr>" .
-"  <tr>" .
-"   <td align='right'><b>Session Time:</b></td>" .
-"   <td>" . (time() - $info['session_start']) . " seconds</td>" .
-" </tr>" .
-"" .
-"  <tr>" .
-"   <td align='right'><b>User expired:</b></td>" .
-"   <td>". ($info['session_timeout'] == 0 ? "Never" : date('j F Y H:i', $info['session_timeout'])) . "</td>" .
-" </tr>" .
-"" .
-"  <tr>" .
-"   <td align='right'><b>Request URL:</b></td>" .
-"   <td><a href='$request_url' target='_new'>$request_url_text</a></td>" .
-" </tr>" .
-"</table>".
-"<table>".
-" <tr>" .
-"   <td>&nbsp;<input type='hidden' name='do_logout' value='yes'></td>" .
-"   <td><input type='button' value='Go! Go! Go!' id='rh_goto_button' onClick='window.open(\"".$request_url."\");'></td>" .
-"   <td><input type='submit' value='Logout' id='rh_logout_button'></td>" .
-" </tr>" .
-"</table>";
+  "  <table id='rh_bg'>" .
+  "  <tr>" .
+  "   <td align='right'><b>" . _("Username") . ":</b></td>" .
+  "   <td>". $info['username']."</td>" .
+  " </tr>" .
+  "  <tr>" .
+  "   <td align='right'><b>" . _("Session Start") . ":</b></td>" .
+  "   <td>". strftime('%e %B %Y %H:%M:%S', $info['session_start']) . "</td>" .
+  " </tr>" .
+  "  <tr>" .
+  "   <td align='right'><b>" . _("Session Time") . ":</b></td>" .
+  "   <td>" . (time() - $info['session_start']) . " ". _("seconds") . "</td>" .
+  " </tr>" .
+  "" .
+  "  <tr>" .
+  "   <td align='right'><b>" . _("Expired") . ":</b></td>" .
+  "   <td>". ($info['session_timeout'] == 0 ? _("Never") : strftime('%e %B %Y %H:%M:%S', $info['session_timeout']) . "</td>") .
+  " </tr>" .
+  "" .
+  "  <tr>" .
+  "   <td align='right'><b>" . _("Request URL") . ":</b></td>" .
+  "   <td><a href='$request_url' target='_new'>$request_url_text</a></td>" .
+  " </tr>" .
+  "</table>".
+  "<table>".
+  " <tr>" .
+  "   <td>&nbsp;<input type='hidden' name='do_logout' value='yes'></td>" .
+  "   <td><input type='button' value='" . _("Go! Go! Go!") . "' id='rh_goto_button' onClick='window.open(\"".$request_url."\");'></td>" .
+  "   <td><input type='submit' value='" . _("Logout") . "' id='rh_logout_button'></td>" .
+  " </tr>" .
+  "</table>";
 $request_uri = $_SERVER['REQUEST_URI'];
-$loginbox = "<style>" .
-            "#bg { color: #FFFFFF; background: #000000; width: 80%;}".
-            "#rh_login_text { font-weight: bolder; }\n" .
-            "#waiting { " .
-            " position: absolute; ".
-            " top: -215px;".
-            " left: 170px;".
-            "}".
-            "#message { " .
-            "  color: #000000;" .
-            "  font-weight: bolder; ".
-            "  padding: 2px;" .
-            "  width: 80%;" .
-            "  text-align: center;" .
-            "  background: #FFFF99;" .
-            "}\n" .
-            "#rh_login_button {" .
-            "  color: #000000;" .
-            "  padding: 3px 10px 3px 10px;" .
-            "  cursor: pointer;" .
-            "}\n" .
-            "</style>" . 
-            "<form name='login' action='$request_uri' method='post'>" .
+$loginbox = "<form name='login' action='$request_uri' method='post'>" .
             "  $valid_text ". 
             "</form>";
 
@@ -165,18 +145,18 @@ $loginscript = "<script>" .
                "var ns6=document.getElementById&&!document.all;\n" .
                "var ie4=document.all;\n" .
                "if (ns4)" .
-               "  msg=document.message;\n" .
+               "  msg=document.rh_message;\n" .
                "else if (ns6)" .
-               "  msg=document.getElementById('message').style;\n" .
+               "  msg=document.getElementById('rh_message').style;\n" .
                "else if (ie4)" .
-               "  msg=document.all.message.style;\n\n" .
+               "  msg=document.all.rh_message.style;\n\n" .
                "var wt=(document.all);\n" .  
                "if (ns4)" .
-               "  wt=document.waiting;\n" .
+               "  wt=document.rh_waiting;\n" .
                "else if (ns6)" .
-               "  wt=document.getElementById('waiting').style;\n" .
+               "  wt=document.getElementById('rh_waiting').style;\n" .
                "else if (ie4)" .
-               "  wt=document.all.waiting.style;\n\n" .
+               "  wt=document.all.rh_waiting.style;\n\n" .
                "function visible_hide(obj, type)\n" .
                "{\n" .
                "  if(type == 'show') {\n" .
@@ -198,8 +178,8 @@ $loginscript = "<script>" .
                "</script>";
 $watting_script="";
 
-$waiting  = "<div id='waiting'><img src='loading.gif'></div>";
-$loginmsg = "<div id='message'>$message</div>";
+$waiting  = "<div id='rh_waiting'><img src='loading.gif'></div>";
+$loginmsg = "<div id='rh_message'>$message</div>";
 $loginbox .= $waiting;
 $loginbox .= $loginmsg;
 ?>
@@ -211,12 +191,17 @@ $tpl_file = $tpl_path . $config['UAM_TEMPLATE'] . ".html";
 $handle = @fopen($tpl_file, "r");
 $html_buffer = "";
 if ($handle) {  
+  $css = "<link rel='stylesheet' type='text/css' href='" . $tpl_path . "rahunas.css'>";
+  $loginbox = $css . $loginbox;
+
   while (!feof($handle)) {
     $html_buffer .= fgets($handle, 4096);
   }
   fclose($handle);
 
   $html_buffer = str_replace("images/", $tpl_path."images/", $html_buffer);
+  $html_buffer = str_replace("<!-- Title -->", $config["NAS_LOGIN_TITLE"], 
+                             $html_buffer);
   $html_buffer = str_replace("<!-- Login -->", $loginbox, $html_buffer);
   $html_buffer = str_replace("<!-- JavaScript -->", $loginscript, $html_buffer);
   print $html_buffer;
diff --git a/weblogin/messages.php b/weblogin/messages.php
new file mode 100644 (file)
index 0000000..3a125f8
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+function get_message($message) {
+  $MSG['ERR_CONNECT_SERVER'] = _("Error! Could not connect to the server");
+  $MSG['ERR_CONNECT_RADIUS'] = _("Error! Could not connect to the authenticator server");
+  $MSG['ERR_MAXIMUM_LOGIN']  = _("Error! User has been reach the maximum login");
+  $MSG['ERR_ALREADY_LOGIN']  = _("Error! User already login");
+  $MSG['ERR_USER_EXPIRED']   = _("Error! User expired");
+  $MSG['ERR_INVALID_IP']     = _("Error! Invalid IP address");
+  $MSG['ERR_INVALID_USERNAME_OR_PASSWORD'] = 
+    _("Error! Invalid username or password");
+  $MSG['ERR_LOGOUT_FAILED']  = _("Error! Logout failed! please try again");
+  $MSG['ERR_PLEASE_LOGIN']   = _("Error! Please login");
+  
+  $MSG['OK_USER_AUTHORIZED'] = 
+    _("Success! User has been authorized, please wait a moment");
+  $MSG['OK_USER_LOGOUT'] = _("Success! User has been logout");
+
+  return $MSG[$message];
+}
+?>
diff --git a/weblogin/note.txt b/weblogin/note.txt
new file mode 100644 (file)
index 0000000..775eba9
--- /dev/null
@@ -0,0 +1,2 @@
+loading.gif was downloaded from www.clipartpoint.com 
+  and renamed for easy to use.
diff --git a/weblogin/rahu-loading.gif b/weblogin/rahu-loading.gif
deleted file mode 100644 (file)
index d875e03..0000000
Binary files a/weblogin/rahu-loading.gif and /dev/null differ
diff --git a/weblogin/rahu-waiting.gif b/weblogin/rahu-waiting.gif
deleted file mode 100644 (file)
index c85aba6..0000000
Binary files a/weblogin/rahu-waiting.gif and /dev/null differ
diff --git a/weblogin/templates/kkulogin/rahunas.css b/weblogin/templates/kkulogin/rahunas.css
new file mode 100644 (file)
index 0000000..3a5b5ca
--- /dev/null
@@ -0,0 +1,39 @@
+#rh_bg { 
+  color: #FFFFFF;
+  background: #000000; 
+  width: 95%;
+  font-size: 11pt;
+}
+
+#rh_login_text { 
+  color: #FFFFFF;
+  font-weight: bolder; 
+  font-size: 11pt;
+} 
+
+#rh_waiting {  
+  position: absolute; 
+  top: 100px;
+  left: 430px;
+}
+
+#rh_message {  
+  color: #000000; 
+  font-weight: bolder; 
+  padding: 2px; 
+  width: 80%; 
+  text-align: center; 
+  background: #FFFF99; 
+} 
+
+#rh_login_button { 
+  color: #000000; 
+  padding: 3px 10px 3px 10px; 
+  cursor: pointer; 
+} 
+
+#rh_language {
+  font-size: 10pt;
+  font-weight: bold;
+  color: #000000;
+}
diff --git a/weblogin/templates/kkuwifi/rahunas.css b/weblogin/templates/kkuwifi/rahunas.css
new file mode 100644 (file)
index 0000000..481d8d4
--- /dev/null
@@ -0,0 +1,39 @@
+#rh_bg { 
+  color: #FFFFFF;
+  background: #000000; 
+  width: 95%;
+  font-size: 11pt;
+}
+
+#rh_login_text { 
+  color: #FFFFFF;
+  font-weight: bolder; 
+  font-size: 11pt;
+} 
+
+#rh_waiting {  
+  position: absolute; 
+  top: -100px;
+  left: 210px;
+}
+
+#rh_message {  
+  color: #000000; 
+  font-weight: bolder; 
+  padding: 2px; 
+  width: 80%; 
+  text-align: center; 
+  background: #FFFF99; 
+} 
+
+#rh_login_button { 
+  color: #000000; 
+  padding: 3px 10px 3px 10px; 
+  cursor: pointer; 
+} 
+
+#rh_language {
+  font-size: 10pt;
+  font-weight: bold;
+  color: #AAAAAA;
+}
diff --git a/weblogin/templates/rahunas/rahunas.css b/weblogin/templates/rahunas/rahunas.css
new file mode 100644 (file)
index 0000000..481d8d4
--- /dev/null
@@ -0,0 +1,39 @@
+#rh_bg { 
+  color: #FFFFFF;
+  background: #000000; 
+  width: 95%;
+  font-size: 11pt;
+}
+
+#rh_login_text { 
+  color: #FFFFFF;
+  font-weight: bolder; 
+  font-size: 11pt;
+} 
+
+#rh_waiting {  
+  position: absolute; 
+  top: -100px;
+  left: 210px;
+}
+
+#rh_message {  
+  color: #000000; 
+  font-weight: bolder; 
+  padding: 2px; 
+  width: 80%; 
+  text-align: center; 
+  background: #FFFF99; 
+} 
+
+#rh_login_button { 
+  color: #000000; 
+  padding: 3px 10px 3px 10px; 
+  cursor: pointer; 
+} 
+
+#rh_language {
+  font-size: 10pt;
+  font-weight: bold;
+  color: #AAAAAA;
+}
index 1ee741d..922107b 100644 (file)
@@ -27,7 +27,7 @@
 #rahunas_login_container {
   position: relative;
   left: 310px;
-  top: 160px;
+  top: 140px;
   width: 350px;
   color: #FFFFFF;
   font-size: 10pt;