commit 44cd8083d6e7120152c90e2a4949d8bc138abc70
parent e65ab3f738e03c9516b34fd273aaddb1c6086077
Author: dankert <devnull@localhost>
Date: Wed, 28 Oct 2009 22:11:31 +0100
In den Profileinstellung ist es nun möglich, eine eigene Sprache zu setzen.
Diffstat:
3 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/actionClasses/ProfileAction.class.php b/actionClasses/ProfileAction.class.php
@@ -72,8 +72,8 @@ class ProfileAction extends Action
*/
function settingsView()
{
- foreach( array('always_edit','timezone_offset') as $name )
- $this->setTemplateVar($name,Text::clean($_COOKIE['or_'.$name],'0123456789 .'));
+ foreach( array('always_edit','timezone_offset','language') as $name )
+ $this->setTemplateVar($name,Text::clean($_COOKIE['or_'.$name],'abcdefghijklmnopqrstuvwxyz0123456789 .'));
//Html::debug(Text::clean($_COOKIE['or_'.$name],'0123456789 .'));
$timezone_list = array();
@@ -86,6 +86,13 @@ class ProfileAction extends Action
$timezone_list[$offset] = $name.' ('.vorzeichen(intval($offset/60)).':00)'.($offset==date('Z')/60?' *':'');
$this->setTemplateVar('timezone_list',$timezone_list);
+ $languages = explode(',',$conf['i18n']['available']);
+ foreach($languages as $id=>$name)
+ {
+ unset($languages[$id]);
+ $languages[$name] = $name;
+ }
+ $this->setTemplateVar('language_list',$languages);
}
@@ -95,18 +102,18 @@ class ProfileAction extends Action
*/
function settingsAction()
{
- foreach( array('always_edit','timezone_offset') as $name )
+ foreach( array('always_edit','timezone_offset','language') as $name )
{
// Prüfen, ob Checkbox aktiviert wurde.
if ( $this->hasRequestVar($name))
{
// Cookie setzen
- setcookie('or_'.$name,$this->getRequestVar($name,'num'),time()+(60*60*24*30*12*2));
- $_COOKIE['or_'.$name] = $this->getRequestVar($name,'num');
+ setcookie('or_'.$name,$this->getRequestVar($name,'alphanum'),time()+(60*60*24*30*12*2));
+ $_COOKIE['or_'.$name] = $this->getRequestVar($name,'alphanum');
}
else
{
- // Cookie löschen
+ // Cookie loeschen
setcookie('or_'.$name,'', time()-3600);
unset($_COOKIE['or_'.$name]);
}
diff --git a/do.php b/do.php
@@ -117,6 +117,9 @@ if ( !is_array( $conf ) || isset($REQ['reload']) )
// Nur Default-Sprache erlauben
$languages = array();
+ if ( isset($_COOKIE['or_language']) )
+ $languages = array($_COOKIE['or_language']) + $languages;
+
// Default-Sprache hinzufuegen.
// Wird dann verwendet, wenn die vom Browser angeforderten Sprachen
// nicht vorhanden sind
diff --git a/themes/default/templates/profile/settings.tpl.src.php b/themes/default/templates/profile/settings.tpl.src.php
@@ -16,6 +16,12 @@ page
fieldset title:message:timezone
selectbox name:timezone_offset list:timezone_list addempty:true
newline
+ row
+ cell
+ newline
+ fieldset title:message:language
+ selectbox name:language list:language_list addempty:true
+ newline
row
cell colspan:2 class:act