From c8ae2497b7e4c7393210ed186acd672a0040389f Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 03 Sep 2008 12:03:19 -0400
Subject: [PATCH] Auto-detect client language and timezone if desired by config/prefs

---
 program/include/rcube_template.php |   24 +++++++++---------------
 1 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php
index 37929de..847ea0d 100755
--- a/program/include/rcube_template.php
+++ b/program/include/rcube_template.php
@@ -480,6 +480,7 @@
      *
      * @param  string Input string to parse
      * @return string Altered input string
+     * @todo   Use DOM-parser to traverse template HTML
      * @todo   Maybe a cache.
      */
     private function parse_xml($input)
@@ -494,22 +495,13 @@
      */
     private function xml_command_callback($matches)
     {
-	if (isset($matches[2])) {
-	    $str_attrib = $matches[2];
-	} else {
-	    $str_attrib = '';
-	}
+        $str_attrib = isset($matches[2]) ? $matches[2] : '';
+        $add_attrib = isset($matches[3]) ? $matches[3] : array();
 
-	if (isset($matches[3])) {
-	    $add_attrib = $matches[3];
-	} else {
-	    $add_attrib = array();
-	}
+        $command = $matches[1];
+        //matches[0] is the entire matched portion of the string
 
-	$command = $matches[1];
-	//matches[0] is the entire matched portion of the string
-
-	return $this->xml_command($command, $str_attrib, $add_attrib);
+        return $this->xml_command($command, $str_attrib, $add_attrib);
     }
 
 
@@ -678,7 +670,7 @@
      * @todo   Remove all inline JS calls and use jQuery instead.
      * @todo   Remove all sprintf()'s - they are pretty, but also slow.
      */
-    private function button($attrib)
+    public function button($attrib)
     {
         static $sa_buttons = array();
         static $s_button_count = 100;
@@ -930,6 +922,7 @@
         $input_user   = new html_inputfield(array('name' => '_user', 'id' => 'rcmloginuser', 'size' => 30) + $attrib);
         $input_pass   = new html_passwordfield(array('name' => '_pass', 'id' => 'rcmloginpwd', 'size' => 30) + $attrib);
         $input_action = new html_hiddenfield(array('name' => '_action', 'value' => 'login'));
+        $input_tzone  = new html_hiddenfield(array('name' => '_timezone', 'id' => 'rcmlogintz', 'value' => '_default_'));
         $input_host   = null;
 
         if (is_array($default_host)) {
@@ -968,6 +961,7 @@
         }
 
         $out = $input_action->show();
+        $out .= $input_tzone->show();
         $out .= $table->show();
 
         // surround html output with a form tag

--
Gitblit v1.9.1