diff --git a/cis/sprache.php b/cis/sprache.php
new file mode 100755
index 000000000..a2e156fa2
--- /dev/null
+++ b/cis/sprache.php
@@ -0,0 +1,63 @@
+ and
+ *
+ */
+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');
+}
+?>
+
+
+
+ Sprache Umschalten
+
+
+
+
+
+
+
+
+
+ Sprache wechseln:';
+
+ $sprache = new sprache();
+ $sprache->getAll(true);
+ foreach($sprache->result as $row)
+ {
+ echo ' ';
+ }
+ ?>
+ |
+
+
+
+
+
diff --git a/cms/admin.php b/cms/admin.php
index 00c3da6df..cf5719266 100644
--- a/cms/admin.php
+++ b/cms/admin.php
@@ -63,6 +63,7 @@ $berechtigte_oe = $rechte->getOEkurzbz('basis/cms')
{
mode : "textareas",
theme : "advanced",
+ language : "de",
file_browser_callback: "FHCFileBrowser",
plugins : "spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,inlinepopups,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras",
@@ -113,6 +114,7 @@ $action = isset($_GET['action'])?$_GET['action']:'';
$method = isset($_GET['method'])?$_GET['method']:null;
$message = '';
$submenu_depth=0;
+$datum_obj = new datum();
//Inhalt Speichern
if(isset($_POST['XSDFormPrinter_XML']))
@@ -191,9 +193,14 @@ if(!is_null($method))
if($content->save())
{
- $message .= 'Eintrag wurde erfolgreich angelegt';
- $action='prefs';
- $content_id=$content->content_id;
+ if($content->saveContentSprache())
+ {
+ $message .= 'Eintrag wurde erfolgreich angelegt';
+ $action='prefs';
+ $content_id=$content->content_id;
+ }
+ else
+ $message .= ''.$content->errormsg.'';
}
else
$message .= ''.$content->errormsg.'';
@@ -328,7 +335,12 @@ if(!is_null($method))
$content->updatevon=$user;
if($content->save())
- $message.='Daten erfolgreich gespeichert';
+ {
+ if($content->saveContentSprache())
+ $message.='Daten erfolgreich gespeichert';
+ else
+ $message.=''.$content->errormsg.'';
+ }
else
$message.=''.$content->errormsg.'';
}
@@ -608,8 +620,16 @@ else
$menu='content';
}
-$rootcontent = new content();
-$rootcontent->getRootContent();
+if($menu=='news')
+{
+ $rootcontent = new content();
+ $rootcontent->getNews();
+}
+else
+{
+ $rootcontent = new content();
+ $rootcontent->getRootContent();
+}
foreach($rootcontent->result as $row)
{
@@ -626,7 +646,7 @@ foreach($rootcontent->result as $row)
if($content->template_kurzbz=='news')
{
$output.= '';
- $output.= drawmenulink($row->content_id, $content->titel.' '.$content->insertamum, $content->oe_kurzbz);
+ $output.= drawmenulink($row->content_id, mb_substr($content->titel,0,15).' '.$datum_obj->formatDatum($content->insertamum,'d.m.Y'), $content->oe_kurzbz);
$output.= ' | ';
}
@@ -653,7 +673,7 @@ echo '';
echo '';
//Editieren
-if(!is_null($content_id))
+if(!is_null($content_id) && $content_id!='')
{
echo 'Content ID: '.$content_id.' | Version:'.$version.' | Sprache:'.$sprache.'';
$content = new content();
diff --git a/cms/dms.php b/cms/dms.php
index e0934d1bc..0b0e9bf12 100644
--- a/cms/dms.php
+++ b/cms/dms.php
@@ -25,16 +25,16 @@ require_once('../include/dms.class.php');
if(!isset($_GET['id']))
die('ID muss uebergeben werden');
-if(!isset($_GET['version']))
- die('Version muss uebergeben werden');
+//if(!isset($_GET['version']))
+// die('Version muss uebergeben werden');
$id = $_GET['id'];
-$version = $_GET['version'];
+$version = isset($_GET['version'])?$_GET['version']:null;
if(!is_numeric($id))
die('ID ist ungueltig');
-if(!is_numeric($version))
+if($version!='' && !is_numeric($version))
die('Version ist ungueltig');
$doc = new dms();
diff --git a/cms/news.php b/cms/news.php
index 2787868c7..5920dd4d5 100755
--- a/cms/news.php
+++ b/cms/news.php
@@ -20,36 +20,70 @@
* Karl Burkhart .
*/
/**
- * Laedt den Content und das zugeordnete Template aus der Datenbank und
- * zeigt diese an.
+ * Laedt die News und zeigt diese an
+ *
+ * Wenn kein Parameter uebergeben wird, werden nur die allgemeinen News angezeigt
+ * Wenn ein Studiengang uebergeben wird, werden rechts neben den News Studiengangsdetails angezeigt
+ *
+ * Parameter:
+ * stg_kz Studiengangskennzahl
+ * semester Semester
+ * edit Edit Buttons anzeigen
+ *
*/
require_once('../config/cis.config.inc.php');
require_once('../include/content.class.php');
require_once('../include/template.class.php');
require_once('../include/functions.inc.php');
+require_once('../include/news.class.php');
+require_once('../include/kontakt.class.php');
+require_once('../include/benutzerfunktion.class.php');
+require_once('../include/studiengang.class.php');
+require_once('../include/mitarbeiter.class.php');
+require_once('../include/datum.class.php');
+require_once('../include/phrasen.class.php');
-$version = (isset($_GET['version'])?$_GET['version']:null);
-$sprache = (isset($_GET['sprache'])?$_GET['sprache']:getSprache());
-$sichtbar = !isset($_GET['sichtbar']);
+$sprache = getSprache();
+$datum_obj = new datum();
//XML Content laden
$content = new content();
$db = new basis_db();
+$studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:0);
+$semester = (isset($_GET['semester'])?$_GET['semester']:null);
-$qry = "SELECT content FROM campus.tbl_content JOIN campus.tbl_contentsprache USING(content_id) WHERE tbl_content.template_kurzbz='news'";
-$content = '';
-if($result = $db->db_query($qry))
+$editable = isset($_GET['edit']);
+$news = new news();
+
+$news->getnews(MAXNEWSALTER, $studiengang_kz, $semester, false, null, MAXNEWS);
+
+$xml = '';
+
+foreach($news->result as $row)
{
- while($row = $db->db_fetch_object($result))
- {
- $content .=$row->content;
- }
+ $content = new content();
+ $content->getContent($row->content_id, $sprache,null, true, true);
+
+ //das Datum des News Eintrages ist nicht im XML enthalten, es muss extra hinzugefuegt werden
+ $datum = 'formatDatum($row->datum,'d.m.Y').']]>';
+
+ //Wenn der Parameter edit uebergeben wird, dann wird neben dem Datum ein Link zum Editieren des Eintrags angezeigt
+ if($editable)
+ $id = 'news_id.']]>';
+ else
+ $id='';
+ $xml .= mb_substr($content->content,0,mb_strlen($content->content)-7).$datum.$id.mb_substr($content->content,-7);
+ //$xml .= $content->content;
}
-$content .= '';
-//echo $content;
-$XML = new DOMDocument();
-$XML->loadXML($content);
+
+if($studiengang_kz!=0)
+ $xml.=getStgContent($studiengang_kz, $semester, $sprache);
+
+$xml .= '';
+
+$doc = new DOMDocument();
+$doc->loadXML($xml);
//XSLT Vorlage laden
$template = new template();
@@ -63,5 +97,188 @@ $xsltemplate->loadXML($template->xslt_xhtml);
$processor = new XSLTProcessor();
$processor->importStylesheet($xsltemplate);
-echo $processor->transformToXML($XML);
+echo $processor->transformToXML($doc);
+
+/**
+ * Liefert ein XML mit den Details eines Studiengangs
+ * welche dann neben den News angezeigt werden
+ *
+ * @param $studiengang_kz
+ * @param $semester
+ * @param $sprache
+ */
+function getStgContent($studiengang_kz, $semester, $sprache)
+{
+ $p = new phrasen($sprache);
+
+ $xml = '';
+
+ $studiengang = new studiengang();
+ $studiengang->load($studiengang_kz);
+
+
+ //Studiengangsleitung
+ $stg_oe_obj = new studiengang();
+ $stgl = $stg_oe_obj->getLeitung($studiengang_kz);
+ $xml.='t('global/studiengangsmanagement').']]>';
+ $xml.='t('global/studiengangsleitung').']]>';
+ if(count($stgl)>0)
+ {
+ foreach ($stgl as $uid)
+ {
+ $row_course_leader = new mitarbeiter($uid);
+ $xml.='';
+ $xml.='titelpre.' '.$row_course_leader->vorname.' '.$row_course_leader->nachname.' '.$row_course_leader->titelpost.']]>';
+
+ if(isset($row_course_leader) && $row_course_leader->uid != "")
+ {
+ $xml.='uid.'@'.DOMAIN.']]>';
+ }
+
+ if(isset($row_course_leader) && $row_course_leader->telefonklappe != "")
+ {
+ $hauptnummer='';
+
+ if($row_course_leader->standort_id!='')
+ {
+ $kontakt = new kontakt();
+ $kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
+ $hauptnummer = $kontakt->kontakt;
+ }
+
+ $xml.= 'telefonklappe.']]>';
+ }
+ $xml.='';
+ }
+ }
+
+ //geschaeftsf. Leitung auselesen
+ $xml.='t('global/geschaeftsfuehrendeltg').']]>';
+ $benutzerfkt = new benutzerfunktion();
+ $benutzerfkt->getBenutzerFunktionen('gLtg', $studiengang->oe_kurzbz);
+ foreach($benutzerfkt->result as $row)
+ {
+ $ma = new mitarbeiter();
+ $ma->load($row->uid);
+
+ if($ma->uid!='')
+ {
+ $xml.='';
+
+ $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>';
+ $xml.='uid.'@'.DOMAIN.']]>';
+
+ if($ma->telefonklappe != '')
+ {
+ if($ma->standort_id!='')
+ {
+ $kontakt = new kontakt();
+ $kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
+ $hauptnummer = $kontakt->kontakt;
+ }
+ $xml.= 'telefonklappe.']]>';
+ }
+
+ $xml.='';
+ }
+ }
+
+ //Studiengangsleiter Stellvertreter auselesen
+ $benutzerfkt = new benutzerfunktion();
+ $benutzerfkt->getBenutzerFunktionen('stvLtg', $studiengang->oe_kurzbz);
+ $xml.='t('global/stellvertreter').']]>';
+ foreach($benutzerfkt->result as $row)
+ {
+ $ma = new mitarbeiter();
+ $ma->load($row->uid);
+
+ if($ma->uid!='')
+ {
+ $xml.='';
+
+ $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>';
+ $xml.='uid.'@'.DOMAIN.']]>';
+
+ if($ma->telefonklappe != '')
+ {
+ if($ma->standort_id!='')
+ {
+ $kontakt = new kontakt();
+ $kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
+ $hauptnummer = $kontakt->kontakt;
+ }
+ $xml.= 'telefonklappe.']]>';
+ }
+
+ $xml.='';
+ }
+ }
+
+ //Assistenz
+ $benutzerfkt = new benutzerfunktion();
+ $benutzerfkt->getBenutzerFunktionen('ass', $studiengang->oe_kurzbz);
+ $xml.='t('global/sekretariat').']]>';
+ foreach($benutzerfkt->result as $row)
+ {
+ $ma = new mitarbeiter();
+ $ma->load($row->uid);
+
+ if($ma->uid!='')
+ {
+ $xml.='';
+
+ $xml.='titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]>';
+ $xml.='uid.'@'.DOMAIN.']]>';
+
+ if($ma->telefonklappe != '')
+ {
+ if($ma->standort_id!='')
+ {
+ $kontakt = new kontakt();
+ $kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
+ $hauptnummer = $kontakt->kontakt;
+ }
+ $xml.= 'telefonklappe.']]>';
+ }
+
+ $xml.='';
+ }
+ }
+
+ //Zusatzinfo (Oeffnungszeiten etc)
+ $xml.='zusatzinfo_html.']]>';
+
+
+ //Studentenvertreter
+ $benutzerfkt = new benutzerfunktion();
+ $benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz);
+ $xml.='t('global/studentenvertreter').']]>';
+ foreach($benutzerfkt->result as $row)
+ {
+ $bn = new benutzer();
+ $bn->load($row->uid);
+
+ if($bn->uid!='')
+ {
+ $xml.='';
+ $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.']]>';
+ $xml.='uid.'@'.DOMAIN.']]>';
+ $xml.='';
+ }
+ }
+
+ if(CIS_EXT_MENU)
+ {
+ $xml.='
+ t('global/lehrziele').']]>
+ t('global/allgemeinerdownload').']]>
+ t('global/newsgroups').']]>
+ kuerzel).']]>
+ kurzbzlang).']]>
+ ';
+ }
+
+ $xml.='';
+ return $xml;
+}
?>
\ No newline at end of file
diff --git a/cms/newsverwaltung.php b/cms/newsverwaltung.php
new file mode 100755
index 000000000..f835966f7
--- /dev/null
+++ b/cms/newsverwaltung.php
@@ -0,0 +1,439 @@
+
+ */
+require_once('../config/cis.config.inc.php');
+require_once('../include/functions.inc.php');
+require_once('../include/benutzerberechtigung.class.php');
+require_once('../include/news.class.php');
+require_once('../include/content.class.php');
+require_once('../include/phrasen.class.php');
+require_once('../include/studiengang.class.php');
+require_once('../include/datum.class.php');
+
+$uid = get_uid();
+$sprache = getSprache();
+
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($uid);
+
+if(!$rechte->isBerechtigt('basis/news'))
+ die('Sie haben keine Berechtigung für diese Seite');
+
+$p = new phrasen($sprache);
+
+if(isset($_GET['studiengang_kz']))
+ $studiengang_kz=$_GET['studiengang_kz'];
+else
+ $studiengang_kz='0';
+
+if(isset($_GET['semester']))
+ $semester = $_GET['semester'];
+else
+ $semester = null;
+
+$news_id = (isset($_REQUEST['news_id'])?$_REQUEST['news_id']:null);
+$datum_obj = new datum();
+//ToDo: markieren des richtigen Tabs
+$tabselect=0;
+$content = new content();
+
+echo '
+
+
+
+
+
+
+
+
+
+
+
+ '.$p->t('news/newsverwaltung').'
+
+
+';
+if(isset($_GET['action']) && $_GET['action']=='add_uebersetzung')
+{
+ $news = new news();
+ $news->load($_GET['news_id']);
+
+ $content = new content();
+ $content->getContent($news->content_id);
+
+ $content->new = true;
+ $content->sichtbar=true;
+ $content->sprache=$_GET['lang'];
+ $content->insertvon = $uid;
+ $content->insertamum = date('Y-m-d H:i:s');
+ $content->updatevon = $uid;
+ $content->updateamum = date('Y-m-d H:i:s');
+ $content->reviewvon='';
+ $content->reviewamum='';
+ $content->gesperrt_uid='';
+
+ if($content->saveContentSprache())
+ echo 'Eintrag wurde erfolgreich angelegt';
+ else
+ echo ''.$content->errormsg.'';
+}
+
+if(isset($_GET['action']) && $_GET['action']=='delete')
+{
+ if(!$rechte->isBerechtigt('basis/news',null, 'suid'))
+ die('Sie haben keine Berechtigung zum Löschen von Einträgen');
+
+ if(isset($_GET['news_id']) && is_numeric($_GET['news_id']))
+ {
+ $news_id = $_GET['news_id'];
+ $news = new news();
+ if($news->delete($news_id))
+ {
+ echo 'News wurde erfolgreich gelöscht';
+ $news_id='';
+ }
+ else
+ {
+ echo ''.$news->errormsg.'';
+ }
+ }
+ else
+ die('NewsID ist ungueltig');
+
+
+}
+
+if(isset($_POST['save']))
+{
+ $news_id = $_POST['news_id'];
+
+ $news = new news();
+
+ if($news_id!='')
+ {
+ $news->load($news_id);
+ $news->new=false;
+ }
+ else
+ {
+ $news->new = true;
+ $news->uid = $uid;
+ $news->insertamum = date('Y-m-d H:i:s');
+ $news->insertvon = $uid;
+ }
+ $news->studiengang_kz=$_POST['studiengang_kz'];
+ $news->semester = $_POST['semester'];
+ $news->updateamum=date('Y-m-d H:i:s');
+ $news->updatevon = $uid;
+ $news->datum = $datum_obj->formatDatum($_POST['datum'],'Y-m-d');
+ $news->datum_bis = $datum_obj->formatDatum($_POST['datum_bis'],'Y-m-d');
+
+ if($news->content_id=='')
+ {
+ $studiengang = new studiengang();
+ $studiengang->load($_POST['studiengang_kz']);
+
+ $content = new content();
+ $content->template_kurzbz='news';
+ $content->oe_kurzbz=$studiengang->oe_kurzbz;
+ $content->aktiv=true;
+ $content->menu_open=false;
+ $content->insertamum=date('Y-m-d H:i:s');
+ $content->insertvon = $uid;
+ if(!$content->save(true))
+ die($content->errormsg);
+
+ $news->content_id = $content->content_id;
+ }
+
+ if(!$news->save())
+ die($news->errormsg);
+ $news_id = $news->news_id;
+
+ //ContentSprache
+ $sprachen = array(DEFAULT_LANGUAGE);
+ foreach($_POST as $key=>$value)
+ if(mb_strstr($key,'contentsprache_id_'))
+ $sprachen[] = mb_substr($key, strlen('contentsprache_id_'));
+
+ $sprachen = array_unique($sprachen);
+
+ foreach($sprachen as $lang)
+ {
+ $content = new content();
+ if(isset($_POST['contentsprache_id_'.$lang]) && $_POST['contentsprache_id_'.$lang]!='')
+ {
+ $content->loadContentSprache($_POST['contentsprache_id_'.$lang]);
+ $content->new = false;
+ }
+ else
+ {
+ $content->insertamum = date('Y-m-d H:i:s');
+ $content->insertvon = $uid;
+ $content->sichtbar=true;
+ $content->version=1;
+ $content->content_id=$news->content_id;
+ $content->new = true;
+ $content->sprache = $lang;
+ }
+
+ $xml = '';
+ $xml.='';
+ $xml.='';
+ $xml.='';
+ $xml.='';
+
+ $content->content = $xml;
+ $content->updateamum = date('Y-m-d H:i:s');
+ $content->updatevon = $uid;
+ $content->titel = $_POST['betreff_'.$lang];
+ $content->saveContentSprache();
+ }
+}
+
+$sprachen = array(DEFAULT_LANGUAGE);
+
+$news = new news();
+if($news_id!='')
+{
+ $news->load($news_id);
+ $sprachen = $content->getLanguages($news->content_id);
+ $studiengang_kz = $news->studiengang_kz;
+ $semester = $news->semester;
+}
+if($studiengang_kz=='0' && $semester=='')
+ $type=$p->t('news/allgemein');
+elseif($studiengang_kz=='0' && $semester=='0')
+ $type=$p->t('news/freifach');
+else
+ $type=$p->t('news/studiengang');
+
+echo ''.$p->t('news/newsverwaltung').' - '.$type.'';
+echo '';
+
+// Newseintraege Anzeigen
+echo '
+ |