From 482a90b305fe3bef3aa9ac27fb6a64ff596e1067 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 14 Dec 2017 16:32:05 +0100 Subject: [PATCH 1/2] modified colors (now violet comes before dark red), fixed bug with non-continuous lines in excel versions --- content/statistik/notenspiegel_erweitert.php | 50 ++++++++++++++------ 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/content/statistik/notenspiegel_erweitert.php b/content/statistik/notenspiegel_erweitert.php index 700148b74..5975a89ea 100644 --- a/content/statistik/notenspiegel_erweitert.php +++ b/content/statistik/notenspiegel_erweitert.php @@ -184,8 +184,8 @@ usort($nulltermine, function ($termina, $terminb) $termine = array_merge($termineWithSort, $nulltermine); //Farben für Prüfungsantritte (1. Termin, 2., kommissionelle...) -$colors = array('ffff00', 'fa9200', 'ff1500', '800000', '9400D3', '1500ff', '305041', '00fff2', '00ff2b'); -$colorsForPositiv = array('ffffff', 'ffdfb3', 'ffb9b3', 'ff9494', 'ddb3ff', '7366ff', '80b39b', 'b3fffb', 'b3ffbf'); +$colors = array('ffff00', 'fa9200', 'ff1500', '9400D3', '0000FF', '800000', '305041', '00fff2', '00ff2b'); +$colorsForPositiv = array('ffffff', 'ffdfb3', 'ffb9b3', 'ddb3ff', '7366ff', 'ff9494', '80b39b', 'b3fffb', 'b3ffbf'); $counter = 0; foreach ($termine as $termin) @@ -230,6 +230,7 @@ if ($typ == 'xls') $format_rotate =& $workbook->addFormat(); $format_rotate->setTextRotation(270); $format_rotate->setAlign('center'); + $format_rotate->setBorder(1); $format_bold_center =& $workbook->addFormat(); $format_bold_center->setBold(); @@ -306,7 +307,7 @@ if ($typ == 'xls') $worksheet->write($zeile, ++$spalte, 'Vorname', $format_bold); $maxlength[$spalte] = 10; $worksheet->write($zeile, ++$spalte, 'Personenkennzeichen', $format_bold); - $maxlength[$spalte] = 30; + $maxlength[$spalte] = 32; $maxheaderheight = 20; while ($row_lva = $db->db_fetch_object($result_lva)) @@ -419,12 +420,12 @@ if ($typ == 'xls') } } //keine Nachprüfung aber negativ - 1. Antritt Farbe wenn es eine Notenanmerkung gibt - else if (!$noten_positiv[$note] && $noten_arr[$note] != '' && isset($noten_arr[$note])) + elseif (!$noten_positiv[$note] && $noten_arr[$note] != '' && isset($noten_arr[$note])) { reset($pruefungsart_farben); $format = $format_colored[key($pruefungsart_farben)]; } - else if (isset($format_colored[$note])) + elseif (isset($format_colored[$note])) $format = $format_colored[$note]; $worksheet->write($zeile, ++$spalte, $noten_arr[$note], $format); @@ -523,13 +524,18 @@ if ($typ == 'xls') foreach ($termine as $termin) $bezeichnungen[$termin->pruefungstyp_kurzbz] = $termin->beschreibung; - $worksheet->setMerge($legendzeile, $startcolumn, $legendzeile, $startcolumn + 4); + $totalmergefarb = 4; + $worksheet->write($legendzeile, $startcolumn, "Farblegende Prüfungsantritte", $format_bold_center); - $worksheet->write($legendzeile, $startcolumn + 4, "", $format_bold_center); + $worksheet->setMerge($legendzeile, $startcolumn, $legendzeile, $startcolumn + $totalmergefarb); + //In manchen Excelversionen wird border nicht dargestellt -> alle verbundenen zellen nachformatieren + for($i = 1; $i <= $totalmergefarb; $i++) + $worksheet->write($legendzeile, $startcolumn + $i, "", $format_bold_center); $legendzeile++; $worksheet->write($legendzeile, $startcolumn, "Termin", $format_bold_center); $worksheet->setMerge($legendzeile, $startcolumn + 1, $legendzeile, $startcolumn + 2); $worksheet->write($legendzeile, $startcolumn + 1, "positiv", $format_bold_center); + $worksheet->write($legendzeile, $startcolumn + 2, "", $format_bold_center); $worksheet->setMerge($legendzeile, $startcolumn + 3, $legendzeile, $startcolumn + 4); $worksheet->write($legendzeile, $startcolumn + 3, "negativ", $format_bold_center); $worksheet->write($legendzeile, $startcolumn + 4, "", $format_bold_center); @@ -541,6 +547,7 @@ if ($typ == 'xls') $worksheet->write($legendzeile, $startcolumn, $bezeichnung, $format_bold); $worksheet->setMerge($legendzeile, $startcolumn + 1, $legendzeile, $startcolumn + 2); $worksheet->write($legendzeile, $startcolumn + 1, "", $format_colored[$name.'Pos']); + $worksheet->write($legendzeile, $startcolumn + 2, "", $format_colored[$name.'Pos']); $worksheet->setMerge($legendzeile, $startcolumn + 3, $legendzeile, $startcolumn + 4); $worksheet->write($legendzeile, $startcolumn + 3, "", $format_colored[$name]); $worksheet->write($legendzeile, $startcolumn + 4, "", $format_colored[$name]); @@ -548,13 +555,13 @@ if ($typ == 'xls') } $worksheet->write($legendzeile, $startcolumn, "nicht eingetragen", $format_bold); $worksheet->setMerge($legendzeile, $startcolumn + 1, $legendzeile, $startcolumn + 4); - $worksheet->write($legendzeile, $startcolumn + 1, "", $format_colored_nichteingetragen); - $worksheet->write($legendzeile, $startcolumn + 4, "", $format_colored_nichteingetragen); + for($i = 1; $i <= $totalmergefarb; $i++) + $worksheet->write($legendzeile, $startcolumn + $i, "", $format_colored_nichteingetragen); $legendzeile++; $worksheet->write($legendzeile, $startcolumn, "nicht zugeteilt", $format_bold); $worksheet->setMerge($legendzeile, $startcolumn + 1, $legendzeile, $startcolumn + 4); - $worksheet->write($legendzeile, $startcolumn + 1, "", $format_colored_nichtzugeteilt); - $worksheet->write($legendzeile, $startcolumn + 4, "", $format_colored_nichtzugeteilt); + for($i = 1; $i <= $totalmergefarb; $i++) + $worksheet->write($legendzeile, $startcolumn + $i, "", $format_colored_nichtzugeteilt); $startcolumn = $currentcolumn = 9; @@ -574,7 +581,7 @@ if ($typ == 'xls') { $groesse++; } - else if ($currentcolumn < 3 + $anzahl_lvspalten + 2) + elseif ($currentcolumn < 3 + $anzahl_lvspalten + 2) { $groesse += 4; } @@ -589,6 +596,7 @@ if ($typ == 'xls') $index++; } + // all merges for 4 columns of Notenlegende $allmerges = array($beschrColumnMerges[0], 1, $beschrColumnMerges[1], 1); $headingmerge = array_sum($allmerges) - 1; $positivmerge = $allmerges[0] + $allmerges[1] - 1; @@ -596,12 +604,18 @@ if ($typ == 'xls') $worksheet->setMerge($zeile, $startcolumn, $zeile, $startcolumn + $headingmerge); $worksheet->write($zeile, $startcolumn, "Notenlegende", $format_bold_center); + for($i = 1; $i < $headingmerge; $i++) + $worksheet->write($zeile, $startcolumn + $i, "", $format_bold_center); $worksheet->write($zeile++, $startcolumn + $headingmerge, "", $format_bold_center); $worksheet->setMerge($zeile, $startcolumn, $zeile, $startcolumn + $positivmerge); $worksheet->write($zeile, $startcolumn, "positiv", $format_bold_center); + for($i = 1; $i <= $positivmerge; $i++) + $worksheet->write($zeile, $startcolumn + $i, "", $format_bold_center); $worksheet->setMerge($zeile, $startcolumn + $positivmerge + 1, $zeile, $startcolumn + $headingmerge); - $worksheet->write($zeile, $startcolumn + $headingmerge, "", $format_bold_center); - $worksheet->write($zeile++, $startcolumn + $positivmerge + 1, "negativ", $format_bold_center); + $worksheet->write($zeile, $startcolumn + $positivmerge + 1, "negativ", $format_bold_center); + for($i = 1; $i <= $negativmerge; $i++) + $worksheet->write($zeile, $startcolumn + $positivmerge + $i + 1, "", $format_bold_center); + $worksheet->write($zeile++, $startcolumn + $headingmerge, "", $format_bold_center); $tempzeile = $zeile; foreach ($noten_arr as $note => $anmerkung) { @@ -611,12 +625,16 @@ if ($typ == 'xls') { $worksheet->setMerge($zeile, $startcolumn, $zeile, $startcolumn + $positivmerge - 1); $worksheet->write($zeile, $startcolumn, $noten_bezeichnungen[$note], $format_bold); + for($i = 1; $i <= $positivmerge; $i++) + $worksheet->write($zeile, $startcolumn + $i, "", $format_bold_center); $worksheet->write($zeile++, $startcolumn + $positivmerge, $anmerkung, $format_bold_center); } else { $worksheet->setMerge($tempzeile, $startcolumn + $positivmerge + 1, $tempzeile, $startcolumn + $headingmerge - 1); $worksheet->write($tempzeile, $startcolumn + $positivmerge + 1, $noten_bezeichnungen[$note], $format_bold); + for($i = 1; $i <= $negativmerge; $i++) + $worksheet->write($tempzeile, $startcolumn + $positivmerge + $i + 1, "", $format_bold_center); $worksheet->write($tempzeile++, $startcolumn + $headingmerge, $anmerkung, $format_bold_center); } } @@ -629,6 +647,10 @@ if ($typ == 'xls') //Zellen der 1. Zeile verbinden $worksheet->setMerge(0, 0, 0, $spalte); + //Alle verbundenen Zellen formatieren - in best. Excelversionen border sonst falsch + for($i = 1; $i <= $spalte; $i++) + $worksheet->write(0, $i, "", $format_bold_center); + //Hoehe der 2. Zeile anpassen damit die LVs alle sichtbar sind $worksheet->setRow(1, $maxheaderheight * 5); From 73fcebeb70755479ea669ec468b32e3c24130d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 14 Dec 2017 19:03:54 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Oeffnen=20der=20Mailverteiler=20pr=C3=BCft?= =?UTF-8?q?=20jetzt=20auch=20den=20Returnwert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/open_grp.php | 136 ++++++++++++++++++--------------- locale/de-AT/mailverteiler.php | 3 +- locale/en-US/mailverteiler.php | 1 + 3 files changed, 76 insertions(+), 64 deletions(-) diff --git a/cis/private/open_grp.php b/cis/private/open_grp.php index db526c396..2973ac7cd 100644 --- a/cis/private/open_grp.php +++ b/cis/private/open_grp.php @@ -16,8 +16,8 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Karl Burkhart . + * Andreas Oesterreicher and + * Karl Burkhart . */ require_once('../../config/cis.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -29,20 +29,20 @@ $sprache = getSprache(); $p = new phrasen($sprache); $uid = get_uid(); $db = new basis_db(); -if(!isset($_REQUEST['grp'])) +if (!isset($_REQUEST['grp'])) die('Falsche Parameter'); - -if(mb_strlen($_REQUEST['grp'])>32) + +if (mb_strlen($_REQUEST['grp'])>32) die('Grp ungueltig'); - + //Pruefen ob es eine gueltige Gruppe ist $gruppe = new gruppe(); -if(!$gruppe->exists($_REQUEST['grp'])) +if (!$gruppe->exists($_REQUEST['grp'])) { //Wenn es keine Gruppe in der DB ist, kann es //noch ein Studierendenverteiler sein //bif_std - if(!preg_match('/^\D\D\D_std$/', $_REQUEST['grp'])) + if (!preg_match('/^\D\D\D_std$/', $_REQUEST['grp'])) { die('Ungueltige Gruppe'); } @@ -52,38 +52,35 @@ function mail_id_generator() mt_srand((double)microtime()*1000000); /* Laenge des Passwortes dem Zufall ueberlassen */ - $length = 6; //mt_rand(6, 6); + $length = 6; $fix_similar = ''; $valid_charset = ""; - /* Stelle ein Charset zusammen */ - if (!$valid_charset) - { - // deactivated, regarding an case sensitive issue - //$valid_charset .= 'ABCDEFGHIJKLMNOPQRSTUVXYZ'; - $valid_charset .= 'abcdefghijklmnopqrstuvxyz'; - $valid_charset .= '0123456789'; - //$valid_charset .= '!@_-'; - } - - $charset_length = mb_strlen($valid_charset); - - if ($charset_length == 0) return false; - - /* Initialisieren - Auswahl von chars bis definierte Anzahl erreicht */ - $mail_id = ""; - while(strlen($mail_id) < $length) - { - /* Waehle einen zufaelligen char aus */ - $char = $valid_charset[mt_rand(0, ($charset_length-1))]; - - /* Abgleich von gleich aussehenden chars */ - if (($fix_similar && !strpos('O01lI5S', $char)) || !$fix_similar) $mail_id .= $char; + /* Stelle ein Charset zusammen */ + if (!$valid_charset) + { + $valid_charset .= 'abcdefghijklmnopqrstuvxyz'; + $valid_charset .= '0123456789'; } - return $mail_id; + + $charset_length = mb_strlen($valid_charset); + + if ($charset_length == 0) return false; + + /* Initialisieren - Auswahl von chars bis definierte Anzahl erreicht */ + $mail_id = ''; + while (strlen($mail_id) < $length) + { + /* Waehle einen zufaelligen char aus */ + $char = $valid_charset[mt_rand(0, ($charset_length-1))]; + + /* Abgleich von gleich aussehenden chars */ + if (($fix_similar && !strpos('O01lI5S', $char)) || !$fix_similar) $mail_id .= $char; + } + return $mail_id; } -echo ' +echo ' @@ -92,48 +89,61 @@ echo ' '; -if(isset($_REQUEST['token']) && isset($_REQUEST['grp'])) +if (isset($_REQUEST['token']) && isset($_REQUEST['grp'])) { echo ' - - - - '; - + + + + '; + /* Generate an random String */ - $mail_id=mail_id_generator(); + $mail_id = mail_id_generator(); /* Command to unlock Mailgroup */ $command = "ssh -i /etc/apache2/id_mail_provisioning mailadmins@bifrost2 ".$_REQUEST['grp'] . " " . $mail_id; - exec($command); - /* ffe, 20051020 - do a little logging */ - $message= date("F j G:i:s") . " mailgroup: [" . $_REQUEST['grp'] . "] (using " . $mail_id . ") requested by [" . $uid . "]\n"; + $output = array(); + exec($command, $output, $retval); - $filet = fopen(LOG_PATH.'.htmlistopen.log', "a"); - fwrite($filet, $message, mb_strlen($message)); - fclose($filet); + if ($retval === 0) + { + // Add Log Message + $message= date("F j G:i:s") . " mailgroup: [" . $_REQUEST['grp'] . "] (using " . $mail_id . ") requested by [" . $uid . "]\n"; - // for the users - echo " - - - - - - - -
'.$p->t('mailverteiler/mailverteiler').''.$p->t('mailverteiler/status').'
'.$p->t('mailverteiler/mailverteiler').''.$p->t('mailverteiler/status').'
".$db->convert_html_chars($_REQUEST['desc'])."".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.")
-

".$p->t('mailverteiler/klickenZumSchicken')."

+ $filet = fopen(LOG_PATH.'.htmlistopen.log', "a"); + fwrite($filet, $message, mb_strlen($message)); + fclose($filet); -

".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."

-
- "; + echo " + + ".$db->convert_html_chars($_REQUEST['desc'])." + ".$p->t('mailverteiler/geoeffnet')." (Code: ".$mail_id.") + + + +

".$p->t('mailverteiler/klickenZumSchicken')."

+ +

".$p->t('mailverteiler/infoBenutzung',array($_REQUEST['grp'].$mail_id."@".DOMAIN))."

+ + + "; + } + else + { + echo ' + + + '.$p->t('mailverteiler/oeffnenFehlgeschlagen').' + + '; + } + echo ''; } else { - if($_REQUEST['grp']=="") + if ($_REQUEST['grp'] == '') { exit(); } @@ -142,7 +152,7 @@ else echo $p->t('mailverteiler/bestaetigeOeffnen',array($_REQUEST['grp']))." : convert_html_chars($_REQUEST['desc'])."&token=1\">".$p->t('mailverteiler/bestaetige').""; } } - + echo ' '; ?> diff --git a/locale/de-AT/mailverteiler.php b/locale/de-AT/mailverteiler.php index e45e6cb85..73ebfc052 100644 --- a/locale/de-AT/mailverteiler.php +++ b/locale/de-AT/mailverteiler.php @@ -19,9 +19,10 @@ $this->phrasen['mailverteiler/mailverteiler']='Mailverteiler'; $this->phrasen['mailverteiler/oeffnenEinesVerteilers']='Öffnen eines Mailverteilers'; $this->phrasen['mailverteiler/status']='Status'; $this->phrasen['mailverteiler/geoeffnet']='Geöffnet'; -$this->phrasen['mailverteiler/klickenZumSchicken']='Um ein Mail an den Verteiler zu senden klicken Sie bitte auf den obigen Link. Ihr Mailprogramm öffnet automatisch eine Vorlage für ein neues Mail, welche bereits die korrekte Adresse enthält.'; +$this->phrasen['mailverteiler/klickenZumSchicken']='Um ein Mail an den Verteiler zu senden klicken Sie bitte auf den angezeigten Link. Ihr Mailprogramm öffnet automatisch eine Vorlage für ein neues Mail, welche bereits die korrekte Adresse enthält.'; $this->phrasen['mailverteiler/infoBenutzung']='Das Senden ist für den Zeitraum von 2 Stunden bzw. für die einmalige Benutzung unter der Adresse %1$s möglich.'; $this->phrasen['mailverteiler/bestaetigeOeffnen']='Bitte bestätigen Sie das Öffnen des Verteilers %1$s'; $this->phrasen['mailverteiler/bestaetige']='Bestätige'; $this->phrasen['mailverteiler/personenImVerteiler']='Personen im Mailverteiler'; +$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Beim Freischalten des Verteilers ist ein Fehler aufgetreten.
Bitte Informieren Sie den Administrator'; ?> diff --git a/locale/en-US/mailverteiler.php b/locale/en-US/mailverteiler.php index 7c625116a..502846583 100644 --- a/locale/en-US/mailverteiler.php +++ b/locale/en-US/mailverteiler.php @@ -24,4 +24,5 @@ $this->phrasen['mailverteiler/infoBenutzung']='You can use the Mailinglist durin $this->phrasen['mailverteiler/bestaetigeOeffnen']='Please confirm to unlock the Mailing list %1$s'; $this->phrasen['mailverteiler/bestaetige']='Confirm'; $this->phrasen['mailverteiler/personenImVerteiler']='People in this mailing list'; +$this->phrasen['mailverteiler/oeffnenFehlgeschlagen']='Failed to open mailing list. Please inform your administrator.'; ?>