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:
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