diff --git a/cis/indextest.php b/cis/indextest.php new file mode 100755 index 000000000..fc809093f --- /dev/null +++ b/cis/indextest.php @@ -0,0 +1,89 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * + */ + +require_once('../config/cis.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/sprache.class.php'); + +if(isset($_GET['sprache'])) +{ + $sprache = new sprache(); + if($sprache->load($_GET['sprache'])) + setSprache($_GET['sprache']); + else + die('Sprache invalid'); +} +if(isset($_GET['content_id'])) + $id = $_GET['content_id']; +else + $id = 28; +?> + + + + + CIS - <?php echo CAMPUS_NAME; ?> + + + + + + + + + + + + + + + + + + +
+ + +
Powered by FH Complete 2.0
+
+ getAll(true); + foreach($sprache->result as $row) + { + echo ' '.$row->sprache.''; + } + ?> +
+ + + + + diff --git a/cis/menutest.php b/cis/menutest.php new file mode 100755 index 000000000..859a9187b --- /dev/null +++ b/cis/menutest.php @@ -0,0 +1,111 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl < rudolf.hangl@technikum-wien.at > + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * + */ + +require_once('../config/cis.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../cms/menu.inc.php'); +$sprache = getSprache(); +?> + + + + + +Menu + + + + + + + + + '; + } + else + { + echo ' + + + + '; + } +} + +/** + * Zeichnet einen normalen Menue Link + * @param $link URL + * @param $target Target + * @param $name Anzeigename + * @param $content_id Wenn die Content_id uebergeben wird, oeffnet der Klick das Submenu + */ +function DrawLink($link, $target, $name, $content_id=null) +{ + if($target=='') + $target='content'; + + if(!is_null($content_id)) + $class = 'class="MenuItem" onClick="js_toggle_container(\'Content'.$content_id.'\');"'; + else + $class='class="Item"'; + + echo 'menu item '.$name.''; + +} + +/** + * Redirects sind Links Seiten ausserhalb des CMS + * die URL kann Variablen enthalten. Diese werden hier ersetzt. + * Danach wird der Link angezeigt. + * + * @param $content_id ContentID des Redirects + * @param $name Anzeigename des Links + */ +function Redirect($content_id, $name) +{ + global $sprache; + $content = new content(); + $content->getContent($content_id, $sprache, null, true, true); + + $xml = new DOMDocument(); + if($content->content!='') + { + $xml->loadXML($content->content); + } + + if($xml->getElementsByTagName('url')->item(0)) + $url = $xml->getElementsByTagName('url')->item(0)->nodeValue; + else + $url=''; + + //Variablen Ersetzen + foreach($_REQUEST as $key=>$value) + { + $url = str_replace('$'.$key,addslashes($value),$url); + } + + if($xml->getElementsByTagName('target')->item(0)) + $target = $xml->getElementsByTagName('target')->item(0)->nodeValue; + else + $target=''; + + DrawLink($url, $target, $name); +} + +/** + * Bei Content mit Include Templates wird + * das entsprechende Menu-Addon geladen und inkludiert + * + * @param $content_id + */ +function IncludeMenuAddon($content_id) +{ + global $sprache; + $content = new content(); + $content->getContent($content_id, $sprache, null, true, true); + + $xml = new DOMDocument(); + if($content->content!='') + { + $xml->loadXML($content->content); + } + if($xml->getElementsByTagName('url')->item(0)) + $url = $xml->getElementsByTagName('url')->item(0)->nodeValue; + else + $url=''; + if($url!='') + { + DrawLink('#open','_self',$content->titel,$content_id); + echo ' +
+ + + + + + + +
 
+ + \ No newline at end of file diff --git a/cms/menu.inc.php b/cms/menu.inc.php new file mode 100755 index 000000000..5e42f8ae8 --- /dev/null +++ b/cms/menu.inc.php @@ -0,0 +1,205 @@ + + */ +/** + * Dieses File enthaelt Hilfsklassen zur Anzeige des CMS-Menues + * + * mit drawSubmenu($id) wird das enstprechende Menue gezeichnet. + */ +require_once(dirname(__FILE__).'/../include/functions.inc.php'); +require_once(dirname(__FILE__).'/../include/content.class.php'); + +/** + * Zeichnet einen Menueeintrag aus dem CMS System + * + * @param $content_id + */ +function drawSubmenu($content_id) +{ + global $sprache; + $content = new content(); + $sprache = getSprache(); + + $arr = $content->getMenueArray($content_id, $sprache, true); + foreach ($arr as $row) + { + drawEntry($row); + } +} + +/** + * 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) +{ + if(EntryHasChilds($item)) + { + echo ' +
 '; + if($item['template']=='include') + IncludeMenuAddon($item['content_id']); + elseif($item['template']=='redirect') + Redirect($item['content_id'], $item['name']); + else + DrawLink($item['link'], 'content', $item['name'], $item['content_id']); + + echo ' + '; + foreach($item as $row) + { + if(is_array($row) && isset($row['name'])) + { + drawEntry($row); + } + } + echo ' +
+
 '; + if($item['template']=='include') + IncludeMenuAddon($item['content_id']); + elseif($item['template']=='redirect') + Redirect($item['content_id'], $item['name']); + else + DrawLink($item['link'],'content',$item['name']); + + echo ' +
'; + include(dirname(__FILE__).'/menu/'.$url); + echo '
'; + + } +} \ No newline at end of file diff --git a/cms/menu/menu_addon.class.php b/cms/menu/menu_addon.class.php new file mode 100755 index 000000000..0c3a57599 --- /dev/null +++ b/cms/menu/menu_addon.class.php @@ -0,0 +1,59 @@ + + */ + +require_once(dirname(__FILE__).'/../../include/basis_db.class.php'); + +class menu_addon extends basis_db +{ + protected $items=array(); //title, link, target, name + protected $block; + + /** + * Konstruktor + */ + public function __construct() + { + } + + /** + * Gibt alle Items als Linkliste aus + * + */ + public function outputItems() + { + echo ''; + } + + /** + * Gibt einen CodeBlock aus + */ + public function outputBlock() + { + echo $this->block; + } +} +?> \ No newline at end of file diff --git a/cms/menu/menu_addon_lehrveranstaltungen.inc.php b/cms/menu/menu_addon_lehrveranstaltungen.inc.php new file mode 100755 index 000000000..e8b5d88bf --- /dev/null +++ b/cms/menu/menu_addon_lehrveranstaltungen.inc.php @@ -0,0 +1,164 @@ +load($user)) + $studiengang_kz=$student->studiengang_kz; + + $p = new phrasen($sprache); + + + $this->block.=' + '; + + $this->block.=' + + + + + + + + + + + + +
'.$p->t('global/studiengang').': + +
 
'.$p->t('global/semester').': + +
+ '; + $this->block.= ''; + $this->block.=' + + + '; + + + if (!$lv_obj = new lehrveranstaltung()) + die('Fehler beim Oeffnen der Lehrveranstaltung'); + + $lv_obj->lehrveranstaltungen=array(); + if ($lv_obj->load_lva($studiengang_kz,$semester,null,TRUE,TRUE,'orgform_kurzbz DESC, bezeichnung')) + { + $lastform=null; + foreach ($lv_obj->lehrveranstaltungen as $row) + { + if($row->orgform_kurzbz!=$lastform) + { + $orgform = new organisationsform(); + $orgform->load($row->orgform_kurzbz); + + $this->block.= ""; + + $lastform=$row->orgform_kurzbz; + } + $this->block.= ''; + $this->block.= ' '; + $this->block.= ''; + } + } + $this->block.='
 
$orgform->bezeichnung
'; + $this->outputBlock(); + } + + private function CutString($strVal, $limit) + { + if(mb_strlen($strVal) > $limit+3) + { + return mb_substr($strVal, 0, $limit) . "..."; + } + else + { + return $strVal; + } + } +} + +new menu_addon_lehrveranstaltungen(); +?> \ No newline at end of file diff --git a/cms/menu/menu_addon_meinelv.inc.php b/cms/menu/menu_addon_meinelv.inc.php new file mode 100755 index 000000000..a895f8a64 --- /dev/null +++ b/cms/menu/menu_addon_meinelv.inc.php @@ -0,0 +1,117 @@ +getAktorNext(); + $qry = "SELECT distinct lehrveranstaltung_id, bezeichnung, studiengang_kz, semester, lehre, lehreverzeichnis from campus.vw_student_lehrveranstaltung WHERE uid='$user' AND studiensemester_kurzbz='$stsem' AND lehre=true AND lehreverzeichnis<>'' ORDER BY studiengang_kz, semester, bezeichnung"; + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + if($row->studiengang_kz==0 && $row->semester==0) // Freifach + { + $this->items[] = array('title'=>$row->bezeichnung, + 'target'=>'content', + 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id, + 'name'=>'FF '.$this->CutString($row->bezeichnung, $cutlength) + ); + } + else + { + $this->items[] = array('title'=>$row->bezeichnung, + 'target'=>'content', + 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id, + 'name'=>$stg[$row->studiengang_kz].$row->semester.' '.$this->CutString($row->bezeichnung, $cutlength) + ); + } + } + } + else + echo "Fehler beim Auslesen der LV"; + } + else + { + echo "Fehler Semester beim Auslesen der LV"; + } + } + + //Eigenen LV des eingeloggten Lektors anzeigen + if($is_lector) + { + if ($stsemobj = new studiensemester()) + { + $stsem = $stsemobj->getAktorNext(); + $qry = "SELECT distinct bezeichnung, studiengang_kz, semester, lehreverzeichnis, tbl_lehrveranstaltung.lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter + WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND + mitarbeiter_uid='$user' AND tbl_lehreinheit.studiensemester_kurzbz='$stsem'"; + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + if($row->studiengang_kz==0 AND $row->semester==0) + { + $this->items[] = array('title'=>$row->bezeichnung, + 'target'=>'content', + 'link'=>'private/freifaecher/lesson.php?lvid='.$row->lehrveranstaltung_id, + 'name'=>'FF '.$this->CutString($row->lehreverzeichnis, $cutlength) + ); + } + else + { + $stg_obj = new studiengang(); + $stg_obj->load($row->studiengang_kz); + $kurzbz = $stg_obj->kuerzel.'-'.$row->semester; + + $this->items[] = array('title'=>$row->bezeichnung, + 'target'=>'content', + 'link'=>'private/lehre/lesson.php?lvid='.$row->lehrveranstaltung_id, + 'name'=>$kurzbz.' '.$this->CutString($row->bezeichnung, $cutlength) + ); + } + } + } + else + echo "Fehler beim Auslesen des Lehrfaches"; + } + else + { + echo "Fehler Semester beim Auslesen der LV"; + } + } + $this->outputItems(); + } + + private function CutString($strVal, $limit) + { + if(mb_strlen($strVal) > $limit+3) + { + return mb_substr($strVal, 0, $limit) . "..."; + } + else + { + return $strVal; + } + } +} + +new menu_addon_meinelv(); +?> \ No newline at end of file diff --git a/cms/menu/menu_addon_test.inc.php b/cms/menu/menu_addon_test.inc.php new file mode 100755 index 000000000..d139d12bf --- /dev/null +++ b/cms/menu/menu_addon_test.inc.php @@ -0,0 +1,42 @@ +items[]=array('title'=>'Testlink 1', + 'target'=>'content', + 'link'=>'lesson.php', + 'name'=>'tl1'); + $this->items[]=array('title'=>'Testlink 2', + 'target'=>'content', + 'link'=>'lesson.php', + 'name'=>'tl2'); + $this->items[]=array('title'=>'Testlink 3', + 'target'=>'content', + 'link'=>'lesson.php', + 'name'=>'tl3'); + $this->outputItems(); + + + // Eigener Codeblock + $this->block=' +
+ + +
+ '; + if(isset($_POST['stg_kz'])) + $this->block.='KZ:'.$_POST['stg_kz']; + $this->outputBlock(); + } +} + +new menu_addon_test(); +?> \ No newline at end of file diff --git a/cms/menu/menu_addon_zeitsperren.inc.php b/cms/menu/menu_addon_zeitsperren.inc.php new file mode 100755 index 000000000..22e2eada3 --- /dev/null +++ b/cms/menu/menu_addon_zeitsperren.inc.php @@ -0,0 +1,78 @@ +getBerechtigungen($user); + + $p = new phrasen($sprache); + + $fkt=new funktion(); + $fkt->getAll($user); + + if ($rechte->isFix() || $rechte->isBerechtigt('mitarbeiter/zeitsperre')) + { + $this->items[] = array('title' => $p->t('menu/zeitsperren'), + 'target'=> 'content', + 'link' => 'private/profile/zeitsperre_days.php?days=12', + 'name' => $p->t('menu/zeitsperren') + ); + + if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter')) + { + $this->items[] = array('title' => $p->t('menu/resturlaub'), + 'target'=> 'content', + 'link' => 'private/profile/resturlaub.php', + 'name' => $p->t('menu/resturlaub') + ); + } + + if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter') + || $fkt->checkFunktion('stvLtg')|| $fkt->checkFunktion('gLtg') + || $fkt->checkFunktion('Leitung') || $fkt->checkFunktion('ass')) + { + $this->items[] = array('title' => $p->t('menu/fixangestellte'), + 'target'=> 'content', + 'link' => 'private/profile/zeitsperre.php?fix=true', + 'name' => $p->t('menu/fixangestellte') + ); + $this->items[] = array('title' => $p->t('menu/fixelektoren'), + 'target'=> 'content', + 'link' => 'private/profile/zeitsperre.php?fix=true&lektor=true', + 'name' => $p->t('menu/fixelektoren') + ); + $this->items[] = array('title' => $p->t('menu/organisationseinheit'), + 'target'=> 'content', + 'link' => 'private/profile/zeitsperre.php?organisationseinheit=', + 'name' => $p->t('menu/organisationseinheit') + ); + } + + $stg_obj = new studiengang(); + $stg_obj->loadArray($rechte->getStgKz('admin'), 'typ, kurzbz', true); + foreach($stg_obj->result as $row) + { + $this->items[] = array('title' => 'Lektoren '.$row->kurzbzlang, + 'target'=> 'content', + 'link' => 'private/profile/zeitsperre.php?funktion=lkt&stg_kz='.$row->studiengang_kz, + 'name' => $p->t('menu/lektoren').' '.$row->kurzbzlang + ); + + } + } + $this->outputItems(); + } +} + +new menu_addon_zeitsperren(); +?> \ No newline at end of file diff --git a/include/content.class.php b/include/content.class.php index 7167117d6..b3478cf0f 100644 --- a/include/content.class.php +++ b/include/content.class.php @@ -19,7 +19,7 @@ * Andreas Oesterreicher and * Karl Burkhart . */ -require_once('basis_db.class.php'); +require_once(dirname(__FILE__).'/basis_db.class.php'); class content extends basis_db { diff --git a/include/organisationsform.class.php b/include/organisationsform.class.php index c87dbb646..81d20f930 100644 --- a/include/organisationsform.class.php +++ b/include/organisationsform.class.php @@ -42,6 +42,35 @@ class organisationsform extends basis_db parent::__construct(); } + /** + * Laedt eine Organisationsform + * @param $orgform_kurzbz + */ + public function load($orgform_kurzbz) + { + $qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz='".addslashes($orgform_kurzbz)."'"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $orgform = new organisationsform(); + + $this->orgform_kurzbz = $row->orgform_kurzbz; + $this->code = $row->code; + $this->bezeichnung = $row->bezeichnung; + $this->rolle = $row->rolle; + + $result[] = $orgform; + } + } + else + { + $this->errormsg ="Fehler bei der Abfrage aufgetreten"; + return false; + } + } + /** * * Liefert alle Organisationsformen zurück diff --git a/system/templates/include.xsd b/system/templates/include.xsd new file mode 100755 index 000000000..8b3c08123 --- /dev/null +++ b/system/templates/include.xsd @@ -0,0 +1,6 @@ + + + + + + diff --git a/system/templates/include_xslt_xhtml.xslt b/system/templates/include_xslt_xhtml.xslt new file mode 100755 index 000000000..72cb45bd8 --- /dev/null +++ b/system/templates/include_xslt_xhtml.xslt @@ -0,0 +1,13 @@ + + + + + + Diese Seite sollte nicht direkt aufgerufen werden! + + + + + + diff --git a/system/templates/redirect.xsd b/system/templates/redirect.xsd index 8b3c08123..94b1cfb27 100644 --- a/system/templates/redirect.xsd +++ b/system/templates/redirect.xsd @@ -2,5 +2,6 @@ +