From 19def99066ce2c0f47deb83d68fa85d1e9468b22 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 25 Jun 2019 16:50:16 +0200 Subject: [PATCH 01/12] Changed CIS 'Allgemeiner Downloadlink'-URL from CIS to Moodle --- cms/news.php | 2 +- system/templates/news_xslt_xhtml.xslt | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/cms/news.php b/cms/news.php index 1f5d4a931..420243793 100644 --- a/cms/news.php +++ b/cms/news.php @@ -438,9 +438,9 @@ function getStgContent($studiengang_kz, $semester, $sprache) $xml.=' t('global/lehrziele').']]> t('global/allgemeinerdownload').']]> - t('global/newsgroups').']]> kuerzel).']]> kurzbzlang).']]> + '; } diff --git a/system/templates/news_xslt_xhtml.xslt b/system/templates/news_xslt_xhtml.xslt index 577cc61b7..25a58b9f5 100644 --- a/system/templates/news_xslt_xhtml.xslt +++ b/system/templates/news_xslt_xhtml.xslt @@ -162,11 +162,10 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - +

-

-

+

From 0c9225925b8465ab7e3af796382e752fdb35f2e3 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 27 Jun 2019 09:31:50 +0200 Subject: [PATCH 02/12] Removed 'Lehrziele'-link --- cms/news.php | 1 - system/templates/news_xslt_xhtml.xslt | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/cms/news.php b/cms/news.php index 420243793..2686b19aa 100644 --- a/cms/news.php +++ b/cms/news.php @@ -436,7 +436,6 @@ function getStgContent($studiengang_kz, $semester, $sprache) if(CIS_EXT_MENU) { $xml.=' - t('global/lehrziele').']]> t('global/allgemeinerdownload').']]> kuerzel).']]> kurzbzlang).']]> diff --git a/system/templates/news_xslt_xhtml.xslt b/system/templates/news_xslt_xhtml.xslt index 25a58b9f5..04c6845f0 100644 --- a/system/templates/news_xslt_xhtml.xslt +++ b/system/templates/news_xslt_xhtml.xslt @@ -163,8 +163,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - -

+

From 7e1052ecc2d637ec97b34398aa2484c22453807d Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 16 Jul 2019 15:52:19 +0200 Subject: [PATCH 03/12] =?UTF-8?q?Neuer=20Tablesorter=20und=20parser=20f?= =?UTF-8?q?=C3=BCr=20Datum,=20Betrag=20uns=20Studiensemester?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/zahlungen.php | 467 ++++++++++++++++++------------ 1 file changed, 277 insertions(+), 190 deletions(-) diff --git a/cis/private/profile/zahlungen.php b/cis/private/profile/zahlungen.php index 3abb0a900..ea2c70c79 100644 --- a/cis/private/profile/zahlungen.php +++ b/cis/private/profile/zahlungen.php @@ -1,190 +1,277 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - - require_once('../../../config/cis.config.inc.php'); - require_once('../../../include/functions.inc.php'); - require_once('../../../include/studiensemester.class.php'); - require_once('../../../include/konto.class.php'); - require_once('../../../include/person.class.php'); - require_once('../../../include/benutzer.class.php'); - require_once('../../../include/datum.class.php'); - require_once('../../../include/studiengang.class.php'); - require_once('../../../include/phrasen.class.php'); - require_once('../../../include/benutzerberechtigung.class.php'); - - $sprache = getSprache(); - $p = new phrasen($sprache); - $uid=get_uid(); - - if(isset($_GET['uid'])) - { - // Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen - // von anderen Personen anzuzeigen - - $rechte = new benutzerberechtigung(); - $rechte->getBerechtigungen($uid); - if($rechte->isBerechtigt('admin')) - { - $uid = $_GET['uid']; - $getParam = "&uid=" . $uid; - } - else - $getParam = ""; - } - else - $getParam=''; - - $datum_obj = new datum(); - - echo ' - - - - '.$p->t('tools/zahlungen').' - - - - - - - - - - - - '; - - $studiengang = new studiengang(); - $studiengang->getAll(null,null); - - $stg_arr = array(); - foreach ($studiengang->result as $row) - $stg_arr[$row->studiengang_kz]=$row->kuerzel; - - $benutzer = new benutzer(); - if(!$benutzer->load($uid)) - die('Benutzer wurde nicht gefunden'); - - echo '

'.$p->t('tools/zahlungen').' - '.$benutzer->vorname.' '.$benutzer->nachname.'

'; - - $konto = new konto(); - $konto->getBuchungstyp(); - $buchungstyp = array(); - - foreach ($konto->result as $row) - $buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung; - - $konto = new konto(); - $konto->getBuchungen($benutzer->person_id); - if(count($konto->result)>0) - { - echo '

'; - echo ''; - echo ' - - - - - - - '; - echo ''; - - foreach ($konto->result as $row) - { - $i=0; //Zaehler fuer Anzahl Gegenbuchungen - $buchungsnummern=''; - - if(!isset($row['parent'])) - continue; - $betrag = $row['parent']->betrag; - - - if(isset($row['childs'])) - { - foreach ($row['childs'] as $key => $row_child) - { - $betrag += $row_child->betrag; - $betrag = round($betrag, 2); - $buchungsnummern .= ';'.$row['childs'][$key]->buchungsnr; - $i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen - } - } - else - $buchungsnummern = $row['parent']->buchungsnr; - - if($betrag<0) - $style='style="background-color: #FF8888;"'; - elseif($betrag>0) - $style='style="background-color: #88DD88;"'; - else - $style=''; - - echo ""; - echo ''; - echo ''; - echo ''; - echo ''; - - echo ''; - echo ''; - echo ''; - } - echo ''; - } - echo '
'.$p->t('global/datum').''.$p->t('tools/zahlungstyp').''.$p->t('lvplan/stg').''.$p->t('global/studiensemester').''.$p->t('tools/buchungstext').''.$p->t('tools/betrag').''.$p->t('tools/zahlungsbestaetigung').'
'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).''.$buchungstyp[$row['parent']->buchungstyp_kurzbz].''.$stg_arr[$row['parent']->studiengang_kz].''.$row['parent']->studiensemester_kurzbz.''.$row['parent']->buchungstext.''.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).' €'; - if($betrag>=0 && $row['parent']->betrag<=0) - echo ''.$p->t('tools/bestaetigungDrucken').''; - elseif($row['parent']->betrag>0) - { - //Auszahlung - } - else - { - echo ''.$p->t('tools/offen').' ('.sprintf('%.2f',$betrag*-1).' €)'; - - echo '
'; - } - else - { - echo $p->t('tools/keineZahlungenVorhanden'); - } - echo ''; -?> +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + + require_once('../../../config/cis.config.inc.php'); + require_once('../../../include/functions.inc.php'); + require_once('../../../include/studiensemester.class.php'); + require_once('../../../include/konto.class.php'); + require_once('../../../include/person.class.php'); + require_once('../../../include/benutzer.class.php'); + require_once('../../../include/datum.class.php'); + require_once('../../../include/studiengang.class.php'); + require_once('../../../include/phrasen.class.php'); + require_once('../../../include/benutzerberechtigung.class.php'); + + $sprache = getSprache(); + $p = new phrasen($sprache); + $uid=get_uid(); + + if(isset($_GET['uid'])) + { + // Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen + // von anderen Personen anzuzeigen + + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($uid); + if($rechte->isBerechtigt('admin')) + { + $uid = $_GET['uid']; + $getParam = "&uid=" . $uid; + } + else + $getParam = ""; + } + else + $getParam=''; + + $datum_obj = new datum(); + + echo ' + + + + '.$p->t('tools/zahlungen').' + + '; + + include('../../../include/meta/jquery.php'); + include('../../../include/meta/jquery-tablesorter.php'); + +echo ' + + + + + + '; + + $studiengang = new studiengang(); + $studiengang->getAll(null,null); + + $stg_arr = array(); + foreach ($studiengang->result as $row) + $stg_arr[$row->studiengang_kz]=$row->kuerzel; + + $benutzer = new benutzer(); + if(!$benutzer->load($uid)) + die('Benutzer wurde nicht gefunden'); + + echo '

'.$p->t('tools/zahlungen').' - '.$benutzer->vorname.' '.$benutzer->nachname.'

'; + + $konto = new konto(); + $konto->getBuchungstyp(); + $buchungstyp = array(); + + foreach ($konto->result as $row) + $buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung; + + $konto = new konto(); + $konto->getBuchungen($benutzer->person_id); + if(count($konto->result)>0) + { + echo '

'; + echo ''; + echo ' + + + + + + + '; + echo ''; + + foreach ($konto->result as $row) + { + $i=0; //Zaehler fuer Anzahl Gegenbuchungen + $buchungsnummern=''; + + if(!isset($row['parent'])) + continue; + $betrag = $row['parent']->betrag; + + + if(isset($row['childs'])) + { + foreach ($row['childs'] as $key => $row_child) + { + $betrag += $row_child->betrag; + $betrag = round($betrag, 2); + $buchungsnummern .= ';'.$row['childs'][$key]->buchungsnr; + $i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen + } + } + else + $buchungsnummern = $row['parent']->buchungsnr; + + if($betrag<0) + $style='style="background-color: #FF8888;"'; + elseif($betrag>0) + $style='style="background-color: #88DD88;"'; + else + $style=''; + + echo ""; + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + } + echo ''; + } + echo '
'.$p->t('global/datum').''.$p->t('tools/zahlungstyp').''.$p->t('lvplan/stg').''.$p->t('global/studiensemester').''.$p->t('tools/buchungstext').''.$p->t('tools/betrag').''.$p->t('tools/zahlungsbestaetigung').'
'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).''.$buchungstyp[$row['parent']->buchungstyp_kurzbz].''.$stg_arr[$row['parent']->studiengang_kz].''.$row['parent']->studiensemester_kurzbz.''.$row['parent']->buchungstext.'€ '.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).''; + if($betrag>=0 && $row['parent']->betrag<=0) + { + echo ''.$p->t('tools/bestaetigungDrucken').''; + } + elseif($row['parent']->betrag>0) + { + //Auszahlung + } + else + { + echo ''.$p->t('tools/offen').'(€ '.sprintf('%.2f',$betrag*-1).')'; + + echo '
'; + } + else + { + echo $p->t('tools/keineZahlungenVorhanden'); + } + echo ''; +?> From af08e06ade1575b10afa7801236a5e31fc3448fb Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 16 Jul 2019 15:53:20 +0200 Subject: [PATCH 04/12] English und Stufe in Funktion getStudiengaengeDokument --- include/dokument.class.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/dokument.class.php b/include/dokument.class.php index a353d16c8..2d7f66563 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -859,6 +859,8 @@ class dokument extends basis_db $stg_obj->kuerzel = $row->kuerzel; $stg_obj->bezeichnung = $row->bezeichnung; $stg_obj->studiengang_kz = $row->studiengang_kz; + $stg_obj->english = $row->english; + $stg_obj->stufe = $row->stufe; $this->result[] = $stg_obj; } From e60e61a11e54ac202e8eaf7a57d26fbb825aced1 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 16 Jul 2019 15:54:28 +0200 Subject: [PATCH 05/12] =?UTF-8?q?Neuer=20Tablesorter=20und=20Parser=20f?= =?UTF-8?q?=C3=BCr=20Sortierung=20nach=20Datum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/stammdaten/infoscreen_details.php | 786 +++++++++++----------- 1 file changed, 408 insertions(+), 378 deletions(-) diff --git a/vilesci/stammdaten/infoscreen_details.php b/vilesci/stammdaten/infoscreen_details.php index 8d7335b23..178f61e33 100644 --- a/vilesci/stammdaten/infoscreen_details.php +++ b/vilesci/stammdaten/infoscreen_details.php @@ -1,379 +1,409 @@ - - */ -/** - * Seite zur Wartung der Infoscreens - */ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/infoscreen.class.php'); -require_once('../../include/benutzerberechtigung.class.php'); -require_once('../../include/datum.class.php'); -require_once('../../include/content.class.php'); - -if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - -$user = get_uid(); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if(!$rechte->isBerechtigt('basis/infoscreen')) - die($rechte->errormsg); - -$datum_obj = new datum(); -?> - - - - Infoscreen - Details - - - - - - - + + */ +/** + * Seite zur Wartung der Infoscreens + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/infoscreen.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/content.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$user = get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if(!$rechte->isBerechtigt('basis/infoscreen')) + die($rechte->errormsg); + +$datum_obj = new datum(); +?> + + + + Infoscreen - Details + + + + + + + + + + - - - - - - - - - - -load($infoscreen_id)) - die($infoscreen->errormsg); - - echo '

Details von Infoscreen ',$infoscreen_id,' - ',$infoscreen->bezeichnung.' - ',$infoscreen->beschreibung.'

'; - - echo ' - '; - - if($action=='save') - { - if(!$rechte->isBerechtigt('basis/infoscreen', null, 'sui')) - die($rechte->errormsg); - $my_infoscreen_id = $_POST['infoscreen_id']; - $infoscreen_content_id = $_POST['infoscreen_content_id']; - $content_id = $_POST['content_id']; - $gueltigvon = $_POST['gueltigvondatum'].' '.$_POST['gueltigvonzeit']; - $gueltigbis = $_POST['gueltigbisdatum'].' '.$_POST['gueltigbiszeit']; - $refreshzeit = $_POST['refreshzeit']; - $exklusiv = (isset ($_POST['exklusiv'])?true:false); - - $infoscreen = new infoscreen(); - if($infoscreen_content_id!='') - { - $infoscreen->loadContent($infoscreen_content_id); - $infoscreen->new = false; - } - else - { - $infoscreen->new = true; - $infoscreen->insertamum = date('Y-m-d H:i:s'); - $infoscreen->insertvon = $user; - } - - $infoscreen->content_id = $content_id; - $infoscreen->gueltigvon = $datum_obj->formatDatum($gueltigvon,'Y-m-d H:i:s'); - $infoscreen->gueltigbis = $datum_obj->formatDatum($gueltigbis,'Y-m-d H:i:s'); - $infoscreen->refreshzeit = $refreshzeit; - $infoscreen->updateamum = date('Y-m-d H:i:s'); - $infoscreen->updatevon = $user; - $infoscreen->exklusiv = $exklusiv; - - $infoscreen_ids=explode(',',$my_infoscreen_id); - if (count($infoscreen_ids)>1) - { - $infoscreen->new = true; - $infoscreen->insertamum = date('Y-m-d H:i:s'); - $infoscreen->insertvon = $user; - } - - $doppelt = false; - foreach($infoscreen_ids as $is_id) - { - $infoscreen->infoscreen_id = $is_id; - - if ($doppelt==false) - { - if ($is_id==$infoscreen_id && $infoscreen_content_id!='') - { - $doppelt=true; - $infoscreen->new = false; - } - } - else - $doppelt=false; - - if(!$infoscreen->saveContent()) - echo 'Fehler bei Infoscreen '.$is_id.': '.$db->convert_html_chars($infoscreen->errormsg).'
'; - else - echo 'Daten erfolgreich gespeichert für Infoscreen '.$is_id.'
'; - - $infoscreen->new = true; - } - } - if($action=='delete') - { - if(!$rechte->isBerechtigt('basis/infoscreen', null, 'suid')) - die('Sie haben keine Berechtigung fuer diese Seite'); - $infoscreen = new infoscreen(); - $infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:''); - if(!$infoscreen->deleteContent($infoscreen_content_id)) - echo '',$db->convert_html_chars($infoscreen->errormsg),''; - } - //Formular fuer neu/update - if($action=='new' || $action=='update') - { - $infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:''); - $infoscreen = new infoscreen(); - if($action=='new') - { - echo '

Neu

'; - } - else - { - echo '

Bearbeiten von ID ',$infoscreen_content_id,'

'; - if(!$infoscreen->loadContent($infoscreen_content_id)) - die('Fehler: '.$infoscreen->errormsg); - } - echo ' -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InfoscreenID(s) (Kommagetrennt für mehrere, keine ID für alle Infoscreens)
Content ID
Gültig von - - - - -
Gültig bis - - - - -
Refreshzeit Zeit, wie lange die Seite angezeigt wird (in Sekunden)
Exklusivexklusiv===true?'checked':'').'/> Exklusiveinträge haben Vorrang vor normalen Einträgen
-
'; - } - - if(!$infoscreen->getScreenContent($infoscreen_id, false, false)) - die('Fehler:'.$infoscreen->errormsg); - echo ' - - - - - - - - - - - - - - - '; - - $jetzt = time(); - $aktiv=false; - $zukunft=false; - $exklusiv = false; - - //Wenn mindestens ein Content als Exklusiv markiert ist, wird dieser vorrangig behandelt - foreach($infoscreen->result as $row) - { - $gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon); - $gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis); - - if($row->exklusiv==true && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis==''))) - $exklusiv = true; - } - foreach($infoscreen->result as $row) - { - $passiv=false; - $content = new content(); - $content->getContent($row->content_id, 'German'); - $gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon); - $gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis); - - if ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==false && $row->exklusiv==false)) - $aktiv=true; - elseif (($exklusiv==true && $row->exklusiv==true) && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis==''))) - $aktiv=true; - else - { - $aktiv=false; - } - - if ($aktiv==false && ($gueltigvon>=$jetzt)) - $zukunft=true; - elseif ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==true && $row->exklusiv==false)) - $passiv=true; - else - $zukunft=false; - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - } - echo ' -
StatusIDInfoscreenIDContentIDTitelGültig vonGültig bisRefreshzeitExklusivAktion
'.($aktiv==false?($zukunft==true || $passiv==true?'ampel_gelb':'ampel_rot'):'ampel_gruen').'',$db->convert_html_chars($row->infoscreen_content_id),'',$db->convert_html_chars($row->infoscreen_id),'',$db->convert_html_chars($row->content_id),'',$db->convert_html_chars($content->titel),'',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i')),'',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i')),'',$db->convert_html_chars($row->refreshzeit),''.($row->exklusiv===true?'Exklusiv':'').'bearbeiten'; - echo 'entfernen'; - echo '
'; - -?> - - + + + + + + + + + + +load($infoscreen_id)) + die($infoscreen->errormsg); + + echo '

Details von Infoscreen ',$infoscreen_id,' - ',$infoscreen->bezeichnung.' - ',$infoscreen->beschreibung.'

'; + + echo ' + '; + + if($action=='save') + { + if(!$rechte->isBerechtigt('basis/infoscreen', null, 'sui')) + die($rechte->errormsg); + $my_infoscreen_id = $_POST['infoscreen_id']; + $infoscreen_content_id = $_POST['infoscreen_content_id']; + $content_id = $_POST['content_id']; + $gueltigvon = $_POST['gueltigvondatum'].' '.$_POST['gueltigvonzeit']; + $gueltigbis = $_POST['gueltigbisdatum'].' '.$_POST['gueltigbiszeit']; + $refreshzeit = $_POST['refreshzeit']; + $exklusiv = (isset ($_POST['exklusiv'])?true:false); + + $infoscreen = new infoscreen(); + if($infoscreen_content_id!='') + { + $infoscreen->loadContent($infoscreen_content_id); + $infoscreen->new = false; + } + else + { + $infoscreen->new = true; + $infoscreen->insertamum = date('Y-m-d H:i:s'); + $infoscreen->insertvon = $user; + } + + $infoscreen->content_id = $content_id; + $infoscreen->gueltigvon = $datum_obj->formatDatum($gueltigvon,'Y-m-d H:i:s'); + $infoscreen->gueltigbis = $datum_obj->formatDatum($gueltigbis,'Y-m-d H:i:s'); + $infoscreen->refreshzeit = $refreshzeit; + $infoscreen->updateamum = date('Y-m-d H:i:s'); + $infoscreen->updatevon = $user; + $infoscreen->exklusiv = $exklusiv; + + $infoscreen_ids=explode(',',$my_infoscreen_id); + if (count($infoscreen_ids)>1) + { + $infoscreen->new = true; + $infoscreen->insertamum = date('Y-m-d H:i:s'); + $infoscreen->insertvon = $user; + } + + $doppelt = false; + foreach($infoscreen_ids as $is_id) + { + $infoscreen->infoscreen_id = $is_id; + + if ($doppelt==false) + { + if ($is_id==$infoscreen_id && $infoscreen_content_id!='') + { + $doppelt=true; + $infoscreen->new = false; + } + } + else + $doppelt=false; + + if(!$infoscreen->saveContent()) + echo 'Fehler bei Infoscreen '.$is_id.': '.$db->convert_html_chars($infoscreen->errormsg).'
'; + else + echo 'Daten erfolgreich gespeichert für Infoscreen '.$is_id.'
'; + + $infoscreen->new = true; + } + } + if($action=='delete') + { + if(!$rechte->isBerechtigt('basis/infoscreen', null, 'suid')) + die('Sie haben keine Berechtigung fuer diese Seite'); + $infoscreen = new infoscreen(); + $infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:''); + if(!$infoscreen->deleteContent($infoscreen_content_id)) + echo '',$db->convert_html_chars($infoscreen->errormsg),''; + } + //Formular fuer neu/update + if($action=='new' || $action=='update') + { + $infoscreen_content_id = (isset($_REQUEST['infoscreen_content_id'])?$_REQUEST['infoscreen_content_id']:''); + $infoscreen = new infoscreen(); + if($action=='new') + { + echo '

Neu

'; + } + else + { + echo '

Bearbeiten von ID ',$infoscreen_content_id,'

'; + if(!$infoscreen->loadContent($infoscreen_content_id)) + die('Fehler: '.$infoscreen->errormsg); + } + echo ' +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InfoscreenID(s) (Kommagetrennt für mehrere, keine ID für alle Infoscreens)
Content ID
Gültig von + + + + +
Gültig bis + + + + +
Refreshzeit Zeit, wie lange die Seite angezeigt wird (in Sekunden)
Exklusivexklusiv===true?'checked':'').'/> Exklusiveinträge haben Vorrang vor normalen Einträgen
+
'; + } + + if(!$infoscreen->getScreenContent($infoscreen_id, false, false)) + die('Fehler:'.$infoscreen->errormsg); + echo ' + + + + + + + + + + + + + + + '; + + $jetzt = time(); + $aktiv=false; + $zukunft=false; + $exklusiv = false; + + //Wenn mindestens ein Content als Exklusiv markiert ist, wird dieser vorrangig behandelt + foreach($infoscreen->result as $row) + { + $gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon); + $gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis); + + if($row->exklusiv==true && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis==''))) + $exklusiv = true; + } + foreach($infoscreen->result as $row) + { + $passiv=false; + $content = new content(); + $content->getContent($row->content_id, 'German'); + $gueltigvon=$datum_obj->mktime_fromtimestamp($row->gueltigvon); + $gueltigbis=$datum_obj->mktime_fromtimestamp($row->gueltigbis); + + if ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==false && $row->exklusiv==false)) + $aktiv=true; + elseif (($exklusiv==true && $row->exklusiv==true) && (($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis==''))) + $aktiv=true; + else + { + $aktiv=false; + } + + if ($aktiv==false && ($gueltigvon>=$jetzt)) + $zukunft=true; + elseif ((($gueltigvon<=$jetzt) || ($gueltigvon=='')) && (($gueltigbis>=$jetzt) || ($gueltigbis=='')) && ($exklusiv==true && $row->exklusiv==false)) + $passiv=true; + else + $zukunft=false; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo ' +
StatusIDInfoscreenIDContentIDTitelGültig vonGültig bisRefreshzeitExklusivAktion
'.($aktiv==false?($zukunft==true || $passiv==true?'ampel_gelb':'ampel_rot'):'ampel_gruen').'',$db->convert_html_chars($row->infoscreen_content_id),'',$db->convert_html_chars($row->infoscreen_id),'',$db->convert_html_chars($row->content_id),'',$db->convert_html_chars($content->titel),'',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigvon,'d.m.Y H:i')),'',$db->convert_html_chars($datum_obj->formatDatum($row->gueltigbis,'d.m.Y H:i')),'',$db->convert_html_chars($row->refreshzeit),''.($row->exklusiv===true?'Exklusiv':'').'bearbeiten'; + echo 'entfernen'; + echo '
'; + +?> + + From 970744464dfff4764075f1339cfc5054853c6489 Mon Sep 17 00:00:00 2001 From: Paolo Date: Thu, 18 Jul 2019 16:33:01 +0200 Subject: [PATCH 06/12] Added jqueryui to home.php, now required from AjaxLib.js --- application/views/home.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/views/home.php b/application/views/home.php index d00b98f81..79669dd88 100644 --- a/application/views/home.php +++ b/application/views/home.php @@ -3,6 +3,7 @@ $this->load->view('templates/FHC-Header', array( 'title' => 'FH-Complete', 'jquery' => true, + 'jqueryui' => true, 'bootstrap' => true, 'fontawesome' => true, 'sbadmintemplate' => true, From c6dd9199c82c5551155e93d57c34eb74b3aa9531 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Fri, 26 Jul 2019 13:40:33 +0200 Subject: [PATCH 07/12] =?UTF-8?q?=C3=9Cbersichtsseite,=20wo=20Contents=20v?= =?UTF-8?q?erwendet=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cms/content_uebersicht.php | 221 +++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 cms/content_uebersicht.php diff --git a/cms/content_uebersicht.php b/cms/content_uebersicht.php new file mode 100644 index 000000000..2752efecc --- /dev/null +++ b/cms/content_uebersicht.php @@ -0,0 +1,221 @@ +, + * Andreas Oesterreicher and + * Karl Burkhart . + */ +/** + * Zeigt eine Übersichtsliste für alle Content-Einträge an + */ +require_once('../config/cis.config.inc.php'); +require_once('../config/global.config.inc.php'); +require_once('../include/content.class.php'); +require_once('../include/template.class.php'); +require_once('../include/functions.inc.php'); +require_once('../include/phrasen.class.php'); + +$db = new basis_db(); + +echo ' + + + '; + + include('../include/meta/jquery.php'); + include('../include/meta/jquery-tablesorter.php'); + +echo ' + + + +
+

Content-Übersicht

'; + echo '

'; + echo ''; + echo ' + + + + + + + + + + + + '; + echo ''; + +$qry = " +SELECT + content.content_id, + tbl_contentsprache.titel, + content.template_kurzbz, + content.oe_kurzbz, + content.aktiv, + content.insertamum||' von '||content.insertvon AS content_eingefuegt, + content.updateamum||' von '||content.updatevon AS content_aktualisiert, + ( + SELECT ARRAY_TO_STRING(array_agg(verwendung), '
') AS verwendung_in + FROM ( + SELECT + 'Infoscreen ID'||infoscreen_id AS art + FROM campus.tbl_infoscreen_content + WHERE content_id=content.content_id + + UNION + + SELECT + 'Software ID'||software_id AS art + FROM addon.tbl_software + WHERE content_id=content.content_id + + UNION + + SELECT + 'Ort '||ort_kurzbz AS art + FROM public.tbl_ort + WHERE content_id=content.content_id + + UNION + + SELECT + 'Service ID'||service_id AS art + FROM public.tbl_service + WHERE content_id=content.content_id + + UNION + + SELECT + 'Statistik '||statistik_kurzbz AS art + FROM public.tbl_statistik + WHERE content_id=content.content_id + + UNION + + SELECT + 'Gebiet '||tbl_gebiet.bezeichnung||' in Studiengang '||tbl_ablauf.studiengang_kz AS art + FROM testtool.tbl_ablauf_vorgaben + JOIN testtool.tbl_ablauf USING (ablauf_vorgaben_id) + JOIN testtool.tbl_gebiet USING (gebiet_id) + WHERE content_id=content.content_id + + UNION + + SELECT + 'Verlinkung von '||content_id AS art + FROM campus.tbl_contentsprache + WHERE content::text LIKE '%content.php?content_id='||content.content_id||'%' + /*WHERE content::text ~* '[\w\d\s]*content\.php\?content_id=1245[\w\d\s]*'*/ + ) verwendung + ) AS verwendung_in, + tbl_contentsprache.sprache, + tbl_contentsprache.version, + tbl_contentsprache.insertamum||' von '||tbl_contentsprache.insertvon AS contentsprache_eingefuegt, + tbl_contentsprache.updateamum||' von '||tbl_contentsprache.updatevon AS contentsprache_aktualisiert, + tbl_contentsprache.sichtbar +FROM campus.tbl_content content + JOIN campus.tbl_contentsprache USING (content_id) +WHERE version=campus.get_highest_content_version (content.content_id) +AND template_kurzbz NOT IN ('news') +/*ORDER BY content_id ASC, sprache DESC, version DESC +LIMIT 200*/"; + +if($db->db_query($qry)) +{ + while ($row = $db->db_fetch_object()) + { + echo ' + + + + + + + + + + + + + + + '; + } +} +echo '
Content IDTitelArtOEContent-AktivEingefügtAktualisiertVerwendet inSpracheVersionEingefügtAktualisiertVersion sichtbar
'.$row->content_id.''.$row->titel.''.$row->template_kurzbz.''.$row->oe_kurzbz.''.($row->aktiv == 't' ? 'Ja':'Nein').''.$row->content_eingefuegt.''.$row->content_aktualisiert.''.$row->verwendung_in.''.$row->sprache.''.$row->version.''.$row->contentsprache_eingefuegt.''.$row->contentsprache_aktualisiert.''.($row->sichtbar == 't' ? 'Ja':'Nein').'
'; +echo '
+ '; + + +?> \ No newline at end of file From c3a3125e49ad9b1567a690171104c6926eae1a98 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Fri, 26 Jul 2019 13:41:19 +0200 Subject: [PATCH 08/12] =?UTF-8?q?Suche=20nach=20direkten=20IDs=20vor=C3=BC?= =?UTF-8?q?bergehend=20auskommentiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dms.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/dms.class.php b/include/dms.class.php index 98cfbdd9a..01e7e2498 100644 --- a/include/dms.class.php +++ b/include/dms.class.php @@ -746,13 +746,13 @@ class dms extends basis_db JOIN campus.tbl_dms_version USING(dms_id) JOIN campus.tbl_dms_kategorie USING (kategorie_kurzbz)"; // Wenn erstes Zeichen # ist, dieses wegkürzen und checken ob der Rest numerisch ist. Dann nach eindeutiger ID suchen - if (substr($suchstring, 0, 1) == '#') + /*if (substr($suchstring, 0, 1) == '#') { $suchstring = substr($suchstring, 1); if (is_numeric($suchstring)) $qry .= " WHERE tbl_dms.dms_id = ".$this->db_add_param($suchstring, FHC_INTEGER); } - else + else*/ { $qry .= " WHERE lower(name) like lower('%".$this->db_escape($suchstring)."%') OR lower(tbl_dms_version.beschreibung) like lower('%".$this->db_escape($suchstring)."%') From 9faa2e0077c8f62f13ae4524a58b46d4afb176bd Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Fri, 26 Jul 2019 13:42:05 +0200 Subject: [PATCH 09/12] Gruppenverwaltung: Direktsuche nach Gruppen implementiert --- include/gruppe.class.php | 5 +++++ vilesci/lehre/einheit_menu.php | 29 +++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/include/gruppe.class.php b/include/gruppe.class.php index 975d82533..b92be4085 100644 --- a/include/gruppe.class.php +++ b/include/gruppe.class.php @@ -649,6 +649,11 @@ class gruppe extends basis_db */ public function searchGruppen($searchItems, $aktiv = true, $limit = null) { + if (!is_array($searchItems)) + { + $this->errormsg = '$searchItems muss ein Array sein'; + return false; + } $qry = "SELECT * FROM diff --git a/vilesci/lehre/einheit_menu.php b/vilesci/lehre/einheit_menu.php index 86a024830..86cbe7187 100644 --- a/vilesci/lehre/einheit_menu.php +++ b/vilesci/lehre/einheit_menu.php @@ -48,6 +48,15 @@ if ($studiengang_kz != '') $oe_studiengang = ''; } +if (isset($_GET['searchItems'])) +{ + $searchItems = explode(' ', trim($_GET['searchItems'])); +} +else +{ + $searchItems = array(); +} + if (isset($_GET['sem'])) $sem=$_GET['sem']; @@ -167,7 +176,7 @@ else function printDropDown() { - global $rechte, $studiengang_kz; + global $rechte, $studiengang_kz, $searchItems; //Studiengang Drop Down anzeigen $types = new studiengang(); $types->getAllTypes(); @@ -199,7 +208,10 @@ function printDropDown() } } - echo ''; + echo ''; + echo '
oder
'; + echo 'Suche: '; + echo ''; echo ''; } function doSave() @@ -408,13 +420,22 @@ function doEdit($kurzbz,$new=false) function getUebersicht() { - global $studiengang_kz, $semester, $rechte; + global $studiengang_kz, $semester, $rechte, $searchItems; if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $gruppe=new gruppe(); + // Wenn $searchstring gesetz ist, nach gruppe suchen, sonst gruppe mit $studiengang_kz un $semester laden + if (!empty($searchItems)) + { + $gruppe->searchGruppen($searchItems, null, null); + } + else + { + $gruppe->getgruppe($studiengang_kz,$semester); + } // Array mit allen Einheiten holen - $gruppe->getgruppe($studiengang_kz,$semester); + echo '

Übersicht

'; echo ''; From 1e856773b9d0b94f43bcdf5c0e2416d6fecc19fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 29 Jul 2019 15:38:28 +0200 Subject: [PATCH 10/12] Fixed broken Session on Infoterminal --- cis/infoterminal/index.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cis/infoterminal/index.php b/cis/infoterminal/index.php index 1a913c421..d11ce070b 100644 --- a/cis/infoterminal/index.php +++ b/cis/infoterminal/index.php @@ -20,6 +20,8 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ +session_start(); + require_once('../../config/cis.config.inc.php'); require_once('../../include/wochenplan.class.php'); require_once('../../include/benutzerberechtigung.class.php'); From bb966a1f1341eb7517231204e86af3b5438986c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 30 Jul 2019 13:56:30 +0200 Subject: [PATCH 11/12] Falsche Dokumentenvorlage korrigiert --- system/vorlage_zip/Zahlung.odt | Bin 147250 -> 163729 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/system/vorlage_zip/Zahlung.odt b/system/vorlage_zip/Zahlung.odt index 7164e779975187073a927ce8bd7837b70bdfdeeb..4e0ce78efbd249366fe2988dd4cbcedc3f72e565 100644 GIT binary patch delta 17500 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 delta 832 zcmbREpL5ecj_L2yn1Z)IbZ4>=Y@W;9K9`ws`&?$GY?g_vqTAQxGF9eGlj8j-|CbETtjhSr3Bw4>UIh<;t?8 zsp?&0UBl~~ripvE{c-s4y;O;DrItY8$D{YYzB!ZecZNQHRBClWoRrSVmOf854IkBw znkTP6Q?6G&eKcd8t9?Aa-8?-?#HHei-UGPO^g;Q>wPlmT7c)g_QkD}3bLn)*r-U{PIk3E zyyg95HVc+RZ520i7XNe8o0|S`%M!8K+Hy;t@op%qpKxlqh@#bp9HV!=)30WmpHF-I z^>>PG?ArM+&)u7LFH&N~+rxp4%U^P=7ufEb{PvqdRHDHa-FlPt!EFcR{az`ye9@4* z-x}PvYt_ETx74m&PUxL_Fv{#=sYuc)EK%lN#SwQ6`4slFFRaV!evooatIX1NqyP zm>81t^GZ_lO2C41fr30dx=ai}I}*Vnob^Bv1%05_)RL0Sy!7Jf@pVjkOl79i`|Fs* zrXR0j5}B@1&BVvN)r@JnWi^vC^J^euehriS^ss6s35cAsIao+^dR`5a0z@bhD735! zsJtJ@cvHn>158qU%x8cc!5SuWFo(s0X?lG%lPj|gka4`4Np-qT6_XNk8ITuP#bgl3 z!NI|BsM5;=Ih;gc0Rg7ZS}-yAx`sIFdiuHP=O*T5rll5xJsRN6$_7#)1cax7!5e7B H1mpn#zGyO( From d0605ba3cfeeb093d361068e1cd7c1908735e7af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 31 Jul 2019 08:30:57 +0200 Subject: [PATCH 12/12] Fixed broken group search --- vilesci/lehre/einheit_menu.php | 42 ++++++++++++++++------------------ 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/vilesci/lehre/einheit_menu.php b/vilesci/lehre/einheit_menu.php index 86cbe7187..85a31f56e 100644 --- a/vilesci/lehre/einheit_menu.php +++ b/vilesci/lehre/einheit_menu.php @@ -48,7 +48,7 @@ if ($studiengang_kz != '') $oe_studiengang = ''; } -if (isset($_GET['searchItems'])) +if (isset($_GET['searchItems']) && trim($_GET['searchItems']) != '') { $searchItems = explode(' ', trim($_GET['searchItems'])); } @@ -82,12 +82,12 @@ if(!$rechte->isBerechtigt('lehre/gruppe', null, 's')) Gruppe-Verwaltung - - - +