commit 2b568b1a180a6603e5c2d46e00147885bf23ced6
parent 5157df9f516269bc0bde88f35aefec21cf4c2ce4
Author: dankert <devnull@localhost>
Date: Sun, 19 Dec 2004 15:55:00 +0100
Korrektur der Laenderlisten
Diffstat:
1 file changed, 76 insertions(+), 53 deletions(-)
diff --git a/actionClasses/LanguageAction.class.php b/actionClasses/LanguageAction.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.5 2004-12-13 22:17:51 dankert
+// Revision 1.6 2004-12-19 14:55:00 dankert
+// Korrektur der Laenderlisten
+//
+// Revision 1.5 2004/12/13 22:17:51 dankert
// URL-Korrektur
//
// Revision 1.4 2004/11/27 13:06:44 dankert
@@ -46,11 +49,14 @@
*/
class LanguageAction extends Action
{
+ var $defaultSubAction = 'listing';
+
/**
* Zu bearbeitende Sprache, wird im Kontruktor instanziiert
* @type Language
*/
var $language;
+ var $project;
/**
@@ -58,22 +64,33 @@ class LanguageAction extends Action
*/
function LanguageAction()
{
- $this->language = new Language( $this->getSessionVar('languageid') );
- $this->language->load();
+ if ( $this->getRequestId() != 0 )
+ {
+ $this->language = new Language( $this->getRequestId() );
+ $this->language->load();
+ }
+
+ $this->project = Session::getProject();
}
/**
- * Sprache hinzuf?gen
+ * Sprache hinzufuegen
*/
function add()
{
-
- // Hinzuf?gen einer Sprache
- $this->language->add( $this->getRequestVar('isocode') );
- $this->setSessionVar('languageid',$this->language->languageid);
+ global $conf;
+ $countryList = $conf['countries'];
+
+ // Hinzufuegen einer Sprache
+ $iso = $this->getRequestVar('isocode');
+ $language = new Language();
+ $language->projectid = $this->project->projectid;
+ $language->isoCode = $iso;
+ $language->name = $countryList[$iso];
+ $language->add();
- $this->callSubAction( 'edit' );
+ $this->callSubAction( 'listing' );
}
@@ -95,36 +112,22 @@ class LanguageAction extends Action
*/
function save()
{
- $this->setTemplateVar('tree_refresh',true);
+ global $conf;
+ $countryList = $conf['countries'];
- if ( $this->getRequestVar('name') != '' )
+ if ( $this->hasRequestVar('delete') )
{
- if ( $this->getRequestVar('delete') != '' )
- {
- $this->language->delete();
- $this->setSessionVar('languageid','');
-
- $this->addNotice( 'language',$this->language->name,lang('DELETED') );
- $this->callSubAction( 'listing' );
- }
- else
- {
- $this->language->name = $this->getRequestVar('name' );
- $this->language->isoCode = $this->getRequestVar('isocode');
- $this->addNotice( 'lang',$this->language->name,lang('GLOBAL_SAVED') );
- $this->language->save();
- }
+ $this->language->delete();
+ $this->callSubAction( 'listing' );
+ }
+ else
+ {
+ $iso = $this->getRequestVar('isocode');
+ $this->language->iso = $iso;
+ $this->language->name = $countryList[$iso];
+ $this->language->save();
+
}
-
- $this->callSubAction( 'edit' );
- }
-
-
-
- // Ausw?hlen einer Sprache
- function select()
- {
- $this->setSessionVar('languageid',$this->language->languageid);
$this->callSubAction( 'listing' );
}
@@ -133,39 +136,41 @@ class LanguageAction extends Action
function listing()
{
- global $conf_php;
-
- $iso = GlobalFunctions::getIsoCodes();
+ global $conf;
+ $countryList = $conf['countries'];
$list = array();
- $this->setTemplateVar('act_languageid',$this->language->languageid);
+
+ $actLanguage = Session::getProjectLanguage();
+ $this->setTemplateVar('act_languageid',$actLanguage->languageid);
- foreach( $this->language->getAll() as $id=>$name )
+ foreach( $this->project->getLanguageIds() as $id )
{
$l = new Language( $id );
$l->load();
+ unset( $countryList[$l->isoCode] );
+
$list[$id] = array();
- $list[$id]['name'] = $name;
+ $list[$id]['name'] = $l->name;
if ( $this->userIsAdmin() )
{
- $list[$id]['url' ] = Html::url( array('action' =>'language',
- 'subaction' =>'edit',
- 'languageid' =>$id ) );
+ $list[$id]['url' ] = Html::url('language','edit',$id);
if ( ! $l->isDefault )
- $list[$id]['default_url'] = Html::url( array('action' =>'language',
- 'subaction' =>'setdefault',
- 'languageid' =>$id ) );
+ $list[$id]['default_url'] = Html::url( 'language','setdefault',$id );
}
if ( $this->getSessionVar('languageid') != $l->languageid )
- $list[$id]['select_url'] = 'languageaction=select&languageid='.$id;
+ $list[$id]['select_url'] = Html::url( 'index','language',$id );
}
if ( $this->userIsAdmin() )
- $this->setTemplateVar('isocodes',$iso);
+ {
+ asort($countryList);
+ $this->setTemplateVar('isocodes',$countryList);
+ }
$this->setTemplateVar('el',$list);
@@ -176,12 +181,30 @@ class LanguageAction extends Action
function edit()
{
+ global $conf;
+ $countryList = $conf['countries'];
+
if ( count($this->language->getAll()) >= 2 )
$this->setTemplateVar('delete',true );
- else $this->setTemplateVar('delete',false);
+ else
+ $this->setTemplateVar('delete',false);
+
+ foreach( $this->project->getLanguageIds() as $id )
+ {
+ if ( $id == $this->language->languageid )
+ continue;
+
+ $l = new Language( $id );
+ $l->load();
+
+ unset( $countryList[$l->isoCode] );
+ }
+
+ asort( $countryList );
+ $this->setTemplateVar('isocodes' ,$countryList );
+ $this->setTemplateVar('languageid' ,$this->language->languageid);
+ $this->setTemplateVar('act_isocode',$this->language->isoCode );
- $this->setTemplateVars( $this->language->getProperties() );
-
$this->forward('language_edit');
}
}
\ No newline at end of file