openrat-cms

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

commit dbd6cb93edba71d98695da4dabc4051c73c93d3b
parent 1a05fd5683afb8acbce5fcef2ef9f079011fa92c
Author: dankert <devnull@localhost>
Date:   Thu, 24 May 2007 21:47:48 +0200

Direktes Ausw?hlen von Sprache/Modell in der Projektauswahlliste.

Diffstat:
actionClasses/IndexAction.class.php | 37++++++++++++++++++++++---------------
actionClasses/LanguageAction.class.php | 5++++-
objectClasses/Project.class.php | 27+++++++++++++++++++++------
themes/default/include/elements.ini.php | 2+-
themes/default/include/html/link.inc.php | 14+++++++++++++-
themes/default/templates/index/projectmenu.tpl.src.php | 16+++++++++++++---
6 files changed, 74 insertions(+), 27 deletions(-)

diff --git a/actionClasses/IndexAction.class.php b/actionClasses/IndexAction.class.php @@ -283,9 +283,12 @@ class IndexAction extends Action + /** + * Erzeugt ein Projekt-Auswahlmenue. + */ function projectmenu() { - $user = Session::getUser(); + $user = Session::getUser(); if ( $user->mustChangePassword ) { @@ -293,25 +296,29 @@ class IndexAction extends Action $this->callSubAction( 'changepassword' ); // Zwang, das Kennwort zu ändern. } - - $projects = $user->projects; + // Diese Seite gilt pro Sitzung. $this->lastModified( $user->loginDate ); - // Administrator sieht Administrationsbereich -// if ( $user->isAdmin ) -// $projects = array("-1"=>lang('GLOBAL_ADMINISTRATION')) + $projects; - // Projekte ermitteln + $projects = $user->projects; $list = array(); foreach( $projects as $id=>$name ) { - $list[$id] = array(); - $list[$id]['url' ] = Html::url('index','project',$id); - $list[$id]['name'] = $name; + $p = array(); + $p['url' ] = Html::url('index','project',$id); + $p['name'] = $name; + $p['id' ] = $id; + + $tmpProject = new Project( $id ); + $p['models' ] = $tmpProject->getModels(); + $p['languages'] = $tmpProject->getLanguages(); + + $list[] = $p; } - $this->setTemplateVar('el',$list); + + $this->setTemplateVar('projects',$list); } @@ -403,11 +410,11 @@ class IndexAction extends Action Session::setProject( $project ); - $language = new Language( $project->getDefaultLanguageId() ); + $language = new Language( $this->hasRequestVar('languageid')?$this->getRequestVar('languageid'):$project->getDefaultLanguageId() ); $language->load(); Session::setProjectLanguage( $language ); - $model = new Model( $project->getDefaultModelId() ); + $model = new Model( $this->hasRequestVar('modelid')?$this->getRequestVar('modelid'):$project->getDefaultModelId() ); $model->load(); Session::setProjectModel( $model ); @@ -441,11 +448,11 @@ class IndexAction extends Action $project->load(); Session::setProject( $project ); - $language = new Language( $project->getDefaultLanguageId() ); + $language = new Language( $this->hasRequestVar('languageid')?$this->getRequestVar('languageid'):$project->getDefaultLanguageId() ); $language->load(); Session::setProjectLanguage( $language ); - $model = new Model( $project->getDefaultModelId() ); + $model = new Model( $this->hasRequestVar('modelid')?$this->getRequestVar('modelid'):$project->getDefaultModelId() ); $model->load(); Session::setProjectModel( $model ); diff --git a/actionClasses/LanguageAction.class.php b/actionClasses/LanguageAction.class.php @@ -20,6 +20,9 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ +// Revision 1.11 2007-05-24 19:47:48 dankert +// Direktes Ausw?hlen von Sprache/Modell in der Projektauswahlliste. +// // Revision 1.10 2007-05-08 21:16:20 dankert // Korrektur und Erweiterung von Hinzuf?gen/Bearbeiten von Sprachen. // @@ -211,7 +214,7 @@ class LanguageAction extends Action $list[$id]['default_url'] = Html::url( 'language','setdefault',$id ); } - if ( $this->getSessionVar('languageid') != $l->languageid ) + if ( $actLanguage->languageid != $l->languageid ) $list[$id]['select_url'] = Html::url( 'index','language',$id ); } diff --git a/objectClasses/Project.class.php b/objectClasses/Project.class.php @@ -20,6 +20,9 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ +// Revision 1.15 2007-05-24 19:47:48 dankert +// Direktes Ausw?hlen von Sprache/Modell in der Projektauswahlliste. +// // Revision 1.14 2007-04-22 00:17:30 dankert // Neue Methode "export()" - fertiggestellt :) // @@ -115,29 +118,41 @@ class Project } - function getLanguageIds() + function getLanguages() { $db = db_connection(); - $sql = new Sql( 'SELECT id FROM {t_language}'. + $sql = new Sql( 'SELECT id,name FROM {t_language}'. ' WHERE projectid={projectid} '. ' ORDER BY name' ); $sql->setInt ('projectid',$this->projectid); - return $db->getCol( $sql->query ); + return $db->getAssoc( $sql->query ); } - function getModelIds() + function getLanguageIds() + { + return array_keys( $this->getLanguages() ); + } + + + function getModels() { $db = db_connection(); - $sql = new Sql( 'SELECT id FROM {t_projectmodel}'. + $sql = new Sql( 'SELECT id,name FROM {t_projectmodel}'. ' WHERE projectid= {projectid} '. ' ORDER BY name' ); $sql->setInt ('projectid',$this->projectid); - return $db->getCol( $sql->query ); + return $db->getAssoc( $sql->query ); + } + + + function getModelIds() + { + return array_keys( $this->getModels() ); } diff --git a/themes/default/include/elements.ini.php b/themes/default/include/elements.ini.php @@ -23,7 +23,7 @@ input = class:,default:,type:text,index,name:*,prefix,value,size:40,maxlength inputarea= name,rows:10,cols:40,value,index,onchange,prefix,class:,default: insert = file:* label = for:*,value -link = title:,config,target:_self,var,url,class:,action,subaction,id,var1,value1,accesskey +link = title:,config,target:_self,var,url,class:,action,subaction,id,var1,value1,var2,value2,var3,value3,var4,value4,var5,value5,accesskey list = list:*,extract:false,key:list_key,value:list_value logo = name:* newline = diff --git a/themes/default/include/html/link.inc.php b/themes/default/include/html/link.inc.php @@ -1,4 +1,16 @@ <?php + $params = array(); + if (!empty($attr_var1) && isset($attr_value1)) + $params[$attr_var1]=$attr_value1; + if (!empty($attr_var2) && isset($attr_value2)) + $params[$attr_var2]=$attr_value2; + if (!empty($attr_var3) && isset($attr_value3)) + $params[$attr_var3]=$attr_value3; + if (!empty($attr_var4) && isset($attr_value4)) + $params[$attr_var4]=$attr_value4; + if (!empty($attr_var5) && isset($attr_value5)) + $params[$attr_var5]=$attr_value5; + if(empty($attr_class)) $attr_class=''; if(empty($attr_title)) @@ -6,5 +18,5 @@ if(!empty($attr_url)) $tmp_url = $attr_url; else - $tmp_url = Html::url($attr_action,$attr_subaction,!empty($$attr_id)?$$attr_id:$this->getRequestId(),array(!empty($var1)?$var1:'asdf'=>!empty($value1)?$$value1:'')); + $tmp_url = Html::url($attr_action,$attr_subaction,!empty($attr_id)?$attr_id:$this->getRequestId(),$params); ?><a href="<?php echo $tmp_url ?>" class="<?php echo $attr_class ?>" target="<?php echo $attr_target ?>"<?php if (isset($attr_accesskey)) echo ' accesskey="'.$attr_accesskey.'"' ?> title="<?php echo $attr_title ?>"> \ No newline at end of file diff --git a/themes/default/templates/index/projectmenu.tpl.src.php b/themes/default/templates/index/projectmenu.tpl.src.php @@ -5,10 +5,20 @@ page cell class:logo colspan:2 logo name:projectmenu - list list:el extract:true + list list:projects extract:true row cell link url:var:url title:message:TREE_CHOOSE_PROJECT set var:project value:project image type:project - text var:name- \ No newline at end of file + text var:name + cell + list list:models key:model_id value:model_name + list list:languages key:language_id value:language_name + link action:index subaction:project id:var:id var1:languageid value1:var:language_id var2:modelid value2:var:model_id + text text:var:model_name + text raw:_-_ + text text:var:language_name + newline + newline + + \ No newline at end of file