- Menü optimierungen

- Mehrsprachige Arrays für Studiengang und LVs hinzugefügt
- Menü-Addons für mehrsprachige LV-Namen angepasst
This commit is contained in:
Andreas Österreicher
2011-08-05 07:28:41 +00:00
parent 43026fefec
commit 8ebbb6eb71
7 changed files with 103 additions and 56 deletions
+1 -1
View File
@@ -131,7 +131,7 @@ if (isset($_GET["handbuch"])){
<td class="tdwidth10">&nbsp;</td>
<td class="ContentHeader"><font class="ContentHeader">&nbsp;
<?php
echo $lv_obj->bezeichnung.' '.$lv_obj->lehrform_kurzbz.' / '.$kurzbz.'-'.$semester;
echo $lv_obj->bezeichnung_arr[$sprache].' '.$lv_obj->lehrform_kurzbz.' / '.$kurzbz.'-'.$semester;
$qry = "SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE lehrveranstaltung_id='".addslashes($lvid)."' ORDER BY ende DESC LIMIT 1";
+30 -50
View File
@@ -44,66 +44,51 @@ function drawSubmenu($content_id)
$content = new content();
$sprache = getSprache();
$arr = $content->getMenueArray($content_id, $sprache, true);
foreach ($arr as $row)
//$arr = $content->getMenueArray($content_id, $sprache, true);
$content->getChilds($content_id);
foreach ($content->result as $row)
{
drawEntry($row);
drawEntry($row, $sprache);
}
}
/**
* Prueft ob der Menueeintrag Submenues hat
*
* @param $item Menue Array
* @return boolean
*/
function EntryHasChilds($item)
{
foreach($item as $row)
{
if(is_array($row) && isset($row['name']))
return true;
}
return false;
}
/**
* Zeichnet den Menueeintrag samt Untermenues
* @param $item Menue Array
*/
function drawEntry($item)
function drawEntry($item, $sprache)
{
$content = new content();
//pruefen ob der Content eine Berechtigung erfordert
if($content->islocked($item['content_id']))
if($content->islocked($item->content_id))
{
$user = get_uid();
//wenn der User nicht berechtigt ist, dann wird der Eintrag nicht angezeigt
if(!$content->berechtigt($item['content_id'], $user))
if(!$content->berechtigt($item->content_id, $user))
return;
}
if(EntryHasChilds($item))
$content = new content();
$content->getContent($item->child_content_id, $sprache, null, true, true);
if($content->hasChilds($content->content_id))
{
echo '
<tr>
<td class="tdwidth10" nowrap>&nbsp;</td>
<td class="tdwrap">';
if($item['template']=='include')
IncludeMenuAddon($item['content_id']);
elseif($item['template']=='redirect')
Redirect($item['content_id'], $item['name'], $item['content_id']);
if($content->template_kurzbz=='include')
IncludeMenuAddon($content);
elseif($content->template_kurzbz=='redirect')
Redirect($content, $content->content_id);
else
DrawLink($item['link'], 'content', $item['name'], $item['content_id']);
DrawLink(APP_ROOT.'cms/content.php?content_id='.$content->content_id,'content',$content->titel, $content->content_id);
echo '
<table class="tabcontent" id="Content'.$item['content_id'].'" style="display: '.($item['open']=='true'?'visible':'none').'">';
foreach($item as $row)
<table class="tabcontent" id="Content'.$content->content_id.'" style="display: '.($content->menu_open?'visible':'none').'">';
$content->getChilds($content->content_id);
foreach($content->result as $row)
{
if(is_array($row) && isset($row['name']))
{
drawEntry($row);
}
drawEntry($row, $sprache);
}
echo '
</table>
@@ -116,12 +101,12 @@ function drawEntry($item)
<tr>
<td class="tdwidth10" nowrap>&nbsp;</td>
<td class="tdwrap">';
if($item['template']=='include')
IncludeMenuAddon($item['content_id']);
elseif($item['template']=='redirect')
Redirect($item['content_id'], $item['name']);
if($content->template_kurzbz=='include')
IncludeMenuAddon($content);
elseif($content->template_kurzbz=='redirect')
Redirect($content);
else
DrawLink($item['link'],'content',$item['name']);
DrawLink(APP_ROOT.'cms/content.php?content_id='.$content->content_id,'content',$content->titel);
echo '
</td>
@@ -147,7 +132,7 @@ function DrawLink($link, $target, $name, $content_id=null)
$class='class="Item"';
echo '<a '.$class.' href="'.$link.'" target="'.$target.'"><img src="../skin/images/menu_item.gif" alt="menu item" width="7" height="9">&nbsp;'.$name.'</a>';
}
/**
@@ -159,13 +144,10 @@ function DrawLink($link, $target, $name, $content_id=null)
* @param $name Anzeigename des Links
* @param $content_id_Submenu ID des Submenues das geoeffnet werden soll (optional)
*/
function Redirect($content_id, $name, $content_id_Submenu=null)
function Redirect($content, $content_id_Submenu=null)
{
global $sprache, $params;
$content = new content();
$content->getContent($content_id, $sprache, null, true, true);
$xml = new DOMDocument();
if($content->content!='')
{
@@ -188,7 +170,7 @@ function Redirect($content_id, $name, $content_id_Submenu=null)
else
$target='';
DrawLink($url, $target, $name, $content_id_Submenu);
DrawLink($url, $target, $content->titel, $content_id_Submenu);
}
/**
@@ -197,11 +179,9 @@ function Redirect($content_id, $name, $content_id_Submenu=null)
*
* @param $content_id
*/
function IncludeMenuAddon($content_id)
function IncludeMenuAddon($content)
{
global $sprache, $includeparams;
$content = new content();
$content->getContent($content_id, $sprache, null, true, true);
$xml = new DOMDocument();
if($content->content!='')
+2 -2
View File
@@ -42,10 +42,10 @@ class menu_addon_freifaecher extends menu_addon
foreach($lv_obj->lehrveranstaltungen AS $row)
{
$this->items[] = array('title'=>$row->bezeichnung,
$this->items[] = array('title'=>$row->bezeichnung_arr[$sprache],
'target'=>'content',
'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id,
'name'=>'<span '.(!$row->aktiv?' style="color:gray;" ':' style=" font-weight: bold;"').'>'.$this->CutString($row->bezeichnung, 21).'</span>'
'name'=>'<span '.(!$row->aktiv?' style="color:gray;" ':' style=" font-weight: bold;"').'>'.$this->CutString($row->bezeichnung_arr[$sprache], 21).'</span>'
);
}
@@ -180,7 +180,7 @@ class menu_addon_lehrveranstaltungen extends menu_addon
}
$this->block.= '<tr>';
$this->block.= ' <td class="tdwrap"><ul style="margin: 0px; padding: 0px; padding-left: 20px;">';
$this->block.= "<li><a class=\"Item2\" title=\"".$row->bezeichnung."\" href=\"private/lehre/lesson.php?lvid=$row->lehrveranstaltung_id\" target=\"content\">".$this->CutString($row->bezeichnung, 21).' '.$row->lehrform_kurzbz."</a></li>";
$this->block.= "<li><a class=\"Item2\" title=\"".$row->bezeichnung_arr[$sprache]."\" href=\"private/lehre/lesson.php?lvid=$row->lehrveranstaltung_id\" target=\"content\">".$this->CutString($row->bezeichnung_arr[$sprache], 21).' '.$row->lehrform_kurzbz."</a></li>";
$this->block.= ' </ul></td>';
$this->block.= '</tr>';
}
+31
View File
@@ -485,6 +485,37 @@ class content extends basis_db
/************ Menue / Childnodes *****************/
/**
* Prueft ob der Content Kindelemente hat
*
* @param $content_id
*/
public function hasChilds($content_id)
{
$qry = "SELECT count(*) as anzahl FROM campus.tbl_contentchild WHERE content_id='".addslashes($content_id)."'";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
if($row->anzahl>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden von Daten';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden von Daten';
return false;
}
}
/**
* Liefert die Alle Childcontents des uebergebenen Contents als Array zurueck.
* Dieses kann zB direkt in das Vilesci Menue integriert werden
+26 -1
View File
@@ -59,6 +59,7 @@ class lehrveranstaltung extends basis_db
public $koordinator; // varchar(16)
public $bezeichnung_english; // varchar(256)
public $orgform_kurzbz;
public $bezeichnung_arr = array();
/**
* Konstruktor
@@ -123,6 +124,9 @@ class lehrveranstaltung extends basis_db
$this->koordinator=$row->koordinator;
$this->bezeichnung_english = $row->bezeichnung_english;
$this->orgform_kurzbz = $row->orgform_kurzbz;
$this->bezeichnung_arr['German']=$this->bezeichnung;
$this->bezeichnung_arr['English']=$this->bezeichnung_english;
}
return true;
@@ -176,6 +180,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
$lv_obj->bezeichnung_arr['German']=$row->bezeichnung;
$lv_obj->bezeichnung_arr['English']=$row->bezeichnung_english;
$this->lehrveranstaltungen[] = $lv_obj;
}
@@ -283,6 +290,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
$lv_obj->bezeichnung_arr['German']=$row->bezeichnung;
$lv_obj->bezeichnung_arr['English']=$row->bezeichnung_english;
$this->lehrveranstaltungen[] = $lv_obj;
}
@@ -393,7 +403,10 @@ class lehrveranstaltung extends basis_db
$lv_obj->koordinator=$row->koordinator;
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
$lv_obj->bezeichnung_arr['German']=$row->bezeichnung;
$lv_obj->bezeichnung_arr['English']=$row->bezeichnung_english;
$lv_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->lehrveranstaltungen[] = $lv_obj;
@@ -454,6 +467,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
$lv_obj->bezeichnung_arr['German']=$row->bezeichnung;
$lv_obj->bezeichnung_arr['English']=$row->bezeichnung_english;
$this->lehrveranstaltungen[] = $lv_obj;
}
@@ -730,6 +746,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
$lv_obj->bezeichnung_arr['German']=$row->bezeichnung;
$lv_obj->bezeichnung_arr['English']=$row->bezeichnung_english;
$this->lehrveranstaltungen[] = $lv_obj;
}
return true;
@@ -807,6 +826,9 @@ class lehrveranstaltung extends basis_db
$l->bezeichnung_english = $row->bezeichnung_english;
$l->orgform_kurzbz = $row->orgform_kurzbz;
$l->bezeichnung_arr['German']=$row->bezeichnung;
$l->bezeichnung_arr['English']=$row->bezeichnung_english;
$this->lehrveranstaltungen[]=$l;
}
}
@@ -873,6 +895,9 @@ class lehrveranstaltung extends basis_db
$lv_obj->bezeichnung_english = $row->bezeichnung_english;
$lv_obj->orgform_kurzbz = $row->orgform_kurzbz;
$lv_obj->bezeichnung_arr['German']=$row->bezeichnung;
$lv_obj->bezeichnung_arr['English']=$row->bezeichnung_english;
$this->lehrveranstaltungen[] = $lv_obj;
}
+12 -1
View File
@@ -60,6 +60,7 @@ class studiengang extends basis_db
public $lgartcode; //integer
public $mischform; // boolean
public $projektarbeit_note_anzeige; // boolean
public $bezeichnung_arr = array();
/**
* Konstruktor
@@ -130,6 +131,9 @@ class studiengang extends basis_db
$this->moodle=($row->moodle=='t'?true:false);
$this->mischform=($row->mischform=='t'?true:false);
$this->projektarbeit_note_anzeige=($row->projektarbeit_note_anzeige=='t'?true:false);
$this->bezeichnung_arr['German']=$this->bezeichnung;
$this->bezeichnung_arr['English']=$this->english;
}
}
else
@@ -199,6 +203,8 @@ class studiengang extends basis_db
$stg_obj->mischform=($row->mischform=='t'?true:false);
$stg_obj->projektarbeit_note_anzeige=($row->projektarbeit_note_anzeige=='t'?true:false);
$stg_obj->bezeichnung_arr['German']=$row->bezeichnung;
$stg_obj->bezeichnung_arr['English']=$row->english;
$this->result[] = $stg_obj;
$this->kuerzel_arr[$row->studiengang_kz]=$stg_obj->kuerzel;
}
@@ -270,6 +276,9 @@ class studiengang extends basis_db
$stg_obj->mischform=($row->mischform=='t'?true:false);
$stg_obj->projektarbeit_note_anzeige=($row->projektarbeit_note_anzeige=='t'?true:false);
$stg_obj->bezeichnung_arr['German']=$row->bezeichnung;
$stg_obj->bezeichnung_arr['English']=$row->english;
$this->result[] = $stg_obj;
$this->kuerzel_arr[$row->studiengang_kz]=$stg_obj->kuerzel;
}
@@ -527,7 +536,9 @@ class studiengang extends basis_db
$this->moodle=($row->moodle=='t'?true:false);
$this->mischform=($row->mischform=='t'?true:false);
$this->projektarbeit_note_anzeige=($row->projektarbeit_note_anzeige=='t'?true:false);
$this->bezeichnung_arr['German']=$this->bezeichnung;
$this->bezeichnung_arr['English']=$this->english;
return true;
}
}