diff --git a/cms/news.php b/cms/news.php index be9fe5f21..651262d85 100755 --- a/cms/news.php +++ b/cms/news.php @@ -45,6 +45,7 @@ require_once('../include/phrasen.class.php'); require_once('../include/student.class.php'); require_once('../include/benutzer.class.php'); require_once('../include/ort.class.php'); +require_once('../include/funktion.class.php'); $sprache = getSprache(); @@ -362,25 +363,69 @@ function getStgContent($studiengang_kz, $semester, $sprache) //Zusatzinfo (Oeffnungszeiten etc) $xml.='zusatzinfo_html.']]>'; - - //Studentenvertreter + //Hochschulvertretung $benutzerfkt = new benutzerfunktion(); - $benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz); - $xml.='t('global/studentenvertreter').']]>'; + $benutzerfkt->getBenutzerFunktionen('hsv'); + $xml.='t('global/hochschulvertretung').']]>'; foreach($benutzerfkt->result as $row) { $bn = new benutzer(); $bn->load($row->uid); + $funktion = new funktion(); + $funktion->load($row->funktion_kurzbz); if($bn->uid!='' && $bn->bnaktiv) { - $xml.=''; - $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.']]>'; + $xml.=''; + $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + $xml.=''; + } + } + + //Studentenvertretung + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz); + $xml.='t('global/studentenvertreter').' '.strtoupper($studiengang->oe_kurzbz).']]>'; + foreach($benutzerfkt->result as $row) + { + $bn = new benutzer(); + $bn->load($row->uid); + + $funktion = new funktion(); + $funktion->load($row->funktion_kurzbz); + if($bn->uid!='' && $bn->bnaktiv) + { + $xml.=''; + $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; $xml.=''; } } + //Jahrgangsvertretung + $benutzerfkt = new benutzerfunktion(); + $benutzerfkt->getBenutzerFunktionen('jgv', $studiengang->oe_kurzbz, $semester); + $xml.='t('global/jahrgangsvertretung').' '.$semester.'. '.$p->t('global/semester').']]>'; + foreach($benutzerfkt->result as $row) + { + $bn = new benutzer(); + $bn->load($row->uid); + + $funktion = new funktion(); + $funktion->load($row->funktion_kurzbz); + if($bn->uid!='' && $bn->bnaktiv) + { + $xml.=''; + $xml.='titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.' '.($row->bezeichnung!='' && $row->bezeichnung!=$funktion->beschreibung?'('.$row->bezeichnung.')':'').']]>'; + $xml.='uid.'@'.DOMAIN.']]>'; + $xml.='uid.']]>'; + $xml.=''; + } + } + if(CIS_EXT_MENU) { $xml.=' diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php index ada7e63fc..41feae20c 100644 --- a/system/mlists/mlists_generate.php +++ b/system/mlists/mlists_generate.php @@ -33,6 +33,7 @@ require_once('../../include/functions.inc.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/organisationseinheit.class.php'); require_once('../../include/gruppe.class.php'); +require_once('../../include/basis_db.class.php'); $error_msg=''; ?> @@ -46,7 +47,8 @@ $error_msg='';

MailingListen abgleich

'; + flush(); + + //Verteiler anlegen, wenn nicht vorhanden + $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_HSV'"; + if($res = $db->db_query($sql_query)) + { + if($db->db_num_rows($res)<=0) + { + $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, + beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, + insertamum, insertvon) + VALUES('TW_HSV',0, NULL,'Hochschulvertretung FHTW','Hochschulvertretung FHTW', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; + if(!$db->db_query($sql_query)) + echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; + } + } + else + echo "
Fehler:$sql_query"; + + // Studierende holen, die nicht mehr in den Verteiler gehoeren + $sql_query="SELECT gruppe_kurzbz, uid + FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) + WHERE gruppe_kurzbz = 'TW_HSV' + AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) + WHERE funktion_kurzbz='hsv' AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + AND (SELECT studiengang_kz FROM public.tbl_studiengang + WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1)=tbl_gruppe.studiengang_kz)"; + if(!($result=$db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) + { + $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; + echo '-'; + flush(); + } + + // Studierende holen, die nicht im Verteiler sind + echo '
'; + $sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz + FROM + public.tbl_benutzerfunktion + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_studiengang USING(oe_kurzbz) + JOIN public.tbl_gruppe ON(tbl_gruppe.studiengang_kz=tbl_studiengang.studiengang_kz AND gruppe_kurzbz = 'TW_HSV') + WHERE + funktion_kurzbz='hsv' + AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + AND uid NOT in(SELECT uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) + WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang + WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) + AND gruppe_kurzbz = 'TW_HSV')"; + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) + { + if($row->gruppe_kurzbz!='') + { + setGeneriert($row->gruppe_kurzbz); + $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; + echo '-'; + flush(); + } + } + // ************************************************************** // StudentenvertreterVerteiler abgleichen - // Studenten holen die nicht mehr in den Verteiler gehoeren echo 'Studentenvertreterverteiler werden abgeglichen!
'; flush(); + + //Verteiler anlegen + $sql_query="SELECT DISTINCT + UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) AS gruppe , + UPPER(typ||kurzbz) AS studiengang, + tbl_studiengang.studiengang_kz + FROM public.tbl_benutzerfunktion + JOIN public.tbl_studiengang USING (oe_kurzbz) + WHERE funktion_kurzbz='stdv' + AND UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) NOT IN (SELECT gruppe_kurzbz FROM public.tbl_gruppe) + AND tbl_studiengang.aktiv + AND tbl_studiengang.studiengang_kz!=0"; + if($res = $db->db_query($sql_query)) + { + while($row = $db->db_fetch_object($res)) + { + if($db->db_num_rows($res)>0) + { + $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, + beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, + insertamum, insertvon) + VALUES(".$db->db_add_param($row->gruppe).",".$db->db_add_param($row->studiengang_kz).", NULL,".$db->db_add_param('Studierendenvertretung '.$row->studiengang).",".$db->db_add_param('Studierendenvertretung '.$row->studiengang).", true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; + if(!$db->db_query($sql_query)) + echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; + } + } + } + + // Studierende holen, die nicht mehr in den Verteiler gehoeren $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) WHERE gruppe_kurzbz LIKE '%_STDV' @@ -479,22 +585,22 @@ $error_msg=''; flush(); } - // Studenten holen die nicht im Verteiler sind + // Studierende holen, die nicht im Verteiler sind echo '
'; $sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz -FROM - public.tbl_benutzerfunktion - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_studiengang USING(oe_kurzbz) - JOIN public.tbl_gruppe ON(tbl_gruppe.studiengang_kz=tbl_studiengang.studiengang_kz AND gruppe_kurzbz like '%_STDV') -WHERE - funktion_kurzbz='stdv' - AND tbl_benutzer.aktiv AND - (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) - AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) - WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang - WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) + FROM + public.tbl_benutzerfunktion + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_studiengang USING(oe_kurzbz) + JOIN public.tbl_gruppe ON(tbl_gruppe.studiengang_kz=tbl_studiengang.studiengang_kz AND gruppe_kurzbz like '%_STDV') + WHERE + funktion_kurzbz='stdv' + AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) + WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang + WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND gruppe_kurzbz Like '%_STDV')"; if(!($result = $db->db_query($sql_query))) $error_msg.=$db->db_last_error(); @@ -511,7 +617,25 @@ WHERE } } - //tw_stdv abgleichen + //TW_STDV abgleichen + + //Verteiler TW_STDV anlegen, wenn nicht vorhanden + $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_STDV'"; + if($res = $db->db_query($sql_query)) + { + if($db->db_num_rows($res)<=0) + { + $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, + beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, + insertamum, insertvon) + VALUES('TW_STDV',0, NULL,'Alle StudierendenvertreterInnen','Alle StudierendenvertreterInnen', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; + if(!$db->db_query($sql_query)) + echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; + } + } + else + echo "
Fehler:$sql_query"; + flush(); setGeneriert('TW_STDV'); $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe @@ -532,7 +656,7 @@ WHERE flush(); } - // Studenten holen die nicht im Verteiler sind + // Studierende holen, die nicht im Verteiler sind und einfuegen echo '
'; $sql_query="SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) WHERE funktion_kurzbz='stdv' AND tbl_benutzer.aktiv AND @@ -550,7 +674,152 @@ WHERE echo '-'; flush(); } + + // ************************************************************** + // Verteiler Jahrgangsvertretung abgleichen + + echo 'Jahrgangsvertretungsverteiler werden abgeglichen!
'; + flush(); + + //Verteiler der einzelnen Studiengaenge anlegen + $sql_query="SELECT DISTINCT + UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) AS gruppe , + UPPER(typ||kurzbz) AS studiengang, + tbl_studiengang.studiengang_kz + FROM public.tbl_benutzerfunktion + JOIN public.tbl_studiengang USING (oe_kurzbz) + WHERE funktion_kurzbz='jgv' + AND UPPER(typ||kurzbz)||'_'||UPPER(funktion_kurzbz) NOT IN (SELECT gruppe_kurzbz FROM public.tbl_gruppe) + AND tbl_studiengang.aktiv + AND tbl_studiengang.studiengang_kz!=0"; + if($res = $db->db_query($sql_query)) + { + while($row = $db->db_fetch_object($res)) + { + if($db->db_num_rows($res)>0) + { + $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, + beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, + insertamum, insertvon) + VALUES(".$db->db_add_param($row->gruppe).",".$db->db_add_param($row->studiengang_kz).", NULL,".$db->db_add_param('Jahrgangsvertretung '.$row->studiengang).",".$db->db_add_param('Jahrgangsvertretung '.$row->studiengang).", true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; + if(!$db->db_query($sql_query)) + echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; + } + } + } + + // Studierende holen, die nicht mehr in den Verteiler gehoeren + $sql_query="SELECT gruppe_kurzbz, uid + FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) + WHERE gruppe_kurzbz LIKE '%_JGV' + AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) + WHERE funktion_kurzbz='jgv' AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + AND (SELECT studiengang_kz FROM public.tbl_studiengang + WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1)=tbl_gruppe.studiengang_kz) + AND tbl_gruppe.studiengang_kz!='0'"; + if(!($result=$db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) + { + $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'"; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; + echo '-'; + flush(); + } + // Studierende holen, die noch nicht im Verteiler sind + echo '
'; + $sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz + FROM + public.tbl_benutzerfunktion + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_studiengang USING(oe_kurzbz) + JOIN public.tbl_gruppe ON(tbl_gruppe.studiengang_kz=tbl_studiengang.studiengang_kz AND gruppe_kurzbz like '%_JGV') + WHERE + funktion_kurzbz='jgv' + AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) + WHERE studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang + WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) + AND gruppe_kurzbz Like '%_JGV')"; + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) + { + if($row->gruppe_kurzbz!='') + { + setGeneriert($row->gruppe_kurzbz); + $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; + echo '-'; + flush(); + } + } + + //TW_JGV abgleichen + + //Verteiler TW_JGV anlegen, wenn nicht vorhanden + $sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='TW_JGV'"; + if($res = $db->db_query($sql_query)) + { + if($db->db_num_rows($res)<=0) + { + $sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung, + beschreibung, mailgrp, sichtbar, generiert, aktiv, updateamum, updatevon, + insertamum, insertvon) + VALUES('TW_JGV',0, NULL,'Alle JahrgangsvertreterInnen','Alle JahrgangsvertreterInnen', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');"; + if(!$db->db_query($sql_query)) + echo "
Fehler beim Anlegen der Gruppe: $sql_query
"; + } + } + else + echo "
Fehler:$sql_query"; + // Studierende holen, die nicht mehr in den Verteiler gehoeren + flush(); + setGeneriert('TW_JGV'); + $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe + WHERE gruppe_kurzbz='TW_JGV' + AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) + WHERE funktion_kurzbz='jgv' AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + )"; + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) + { + $sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('tw_jgv') AND uid='$row->uid'"; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; + echo '-'; + flush(); + } + + // Studierende holen, die noch nicht im Verteiler sind + echo '
'; + $sql_query="SELECT uid FROM public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING(uid) + WHERE funktion_kurzbz='jgv' AND tbl_benutzer.aktiv AND + (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now()) + AND uid NOT in(Select uid from public.tbl_benutzergruppe + WHERE UPPER(gruppe_kurzbz)= UPPER('TW_JGV'))"; + if(!($result = $db->db_query($sql_query))) + $error_msg.=$db->db_last_error(); + while($row = $db->db_fetch_object($result)) + { + $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','TW_JGV', now(), 'mlists_generate')"; + if(!$db->db_query($sql_query)) + $error_msg.=$db->db_last_error().$sql_query; + echo '-'; + flush(); + } + // *************************** // TW_STD abgleichen flush(); diff --git a/system/templates/news_xslt_xhtml.xslt b/system/templates/news_xslt_xhtml.xslt index 57be55524..35284b9dd 100755 --- a/system/templates/news_xslt_xhtml.xslt +++ b/system/templates/news_xslt_xhtml.xslt @@ -89,10 +89,22 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + + +

+

+ +

- +

+ +
+ + +

+

@@ -132,9 +144,17 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> E:

+ + +
+
- -
+ +
+
+ + +