openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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:
actionClasses/ProfileAction.class.php | 19+++++++++++++------
do.php | 3+++
themes/default/templates/profile/settings.tpl.src.php | 6++++++
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