, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Administrationsseite fuer das Testtool */ header('Content-type: application/xhtml+xml'); require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/frage.class.php'); require_once('../../../include/vorschlag.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/studiengang.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); $PHP_SELF = $_SERVER['PHP_SELF']; session_cache_limiter('none'); session_start(); $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if (!$rechte->isBerechtigt('basis/testtool', null, 's')) die($rechte->errormsg); $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:'-1'); if (isset($_GET['gebiet_id'])) { $gebiet_id = $_GET['gebiet_id']; } else { $gebiet_id = ''; } if (isset($_GET['nummer'])) { $nummer = $_GET['nummer']; } else { $nummer = '0'; } if (isset($_GET['frage_id'])) { $frage_id = $_GET['frage_id']; } else { $frage_id = ''; } if (isset($_GET['vorschlag_id'])) { $vorschlag_id = $_GET['vorschlag_id']; } else { $vorschlag_id = ''; } $filter = isset($_GET['filter'])?$_GET['filter']:''; $save_vorschlag_error = false; /**/ echo ''; ?> Testtool-Administration

Testtool - Administrationsseite
Ablauf | Gebietübersicht | Fragenübersicht | Auswertung | Hilfe

isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); if (isset($_FILES['bild']['tmp_name'])) { //Extension herausfiltern $ext = explode('.', $_FILES['bild']['name']); $ext = mb_strtolower($ext[count($ext) - 1]); //--check that it's a jpeg or gif or png if ($ext == 'gif' || $ext == 'png' || $ext == 'jpg' || $ext == 'jpeg') { $filename = $_FILES['bild']['tmp_name']; //File oeffnen $fp = fopen($filename, 'r'); //auslesen $content = fread($fp, filesize($filename)); fclose($fp); //base64 codieren $content = base64_encode($content); $frage = new frage(); if ($frage->getFrageSprache($_GET['frage_id'], $sprache)) { //HEX Wert in die Datenbank speichern $frage->bild = $content; $frage->new = false; if ($frage->save_fragesprache()) echo "Bild gespeichert
"; else echo ''.$frage->errormsg.'
'; } else echo ''.$frage->errormsg.'
'; } else echo "File ist kein gueltiges Bild
"; } } //Bei Upload eines Audiofiles if (isset($_POST['submitaudio'])) { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); if (isset($_FILES['audio']['tmp_name'])) { //Extension herausfiltern $ext = explode('.', $_FILES['audio']['name']); $ext = mb_strtolower($ext[count($ext) - 1]); //--check that it's a mp3 if ($ext == 'mp3' || $ext == 'ogg') { $filename = $_FILES['audio']['tmp_name']; //File oeffnen $content = file_get_contents($filename); /*$fp = fopen($filename,'r'); //auslesen $content = fread($fp, filesize($filename)); fclose($fp);*/ //die('

'.$content); //base64 codieren $content = base64_encode($content); $frage = new frage(); if ($frage->getFrageSprache($_GET['frage_id'], $sprache)) { //HEX Wert in die Datenbank speichern $frage->audio = $content; $frage->new = false; if ($frage->save_fragesprache()) echo "Audio gespeichert
"; else echo ''.$frage->errormsg.'
'; } else echo ''.$frage->errormsg.'
'; } else echo "Es duerfen nur mp3 Dateien hochgeladen werden
"; } } //Loeschen eines Bildes if (isset($_POST['deletePicture']) || isset($_POST['deleteAudio'])) { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); $frage = new frage(); if ($frage->load($_GET['frage_id'])) { $frage->new = false; if ($frage->getFrageSprache($frage->frage_id, $sprache)) { $frage->new = false; } else $frage->new = true; if (isset($_POST['deletePicture'])) $frage->bild = ''; elseif (isset($_POST['deleteAudio'])) $frage->audio = ''; if ($frage->save_fragesprache()) { echo "File erfolgreich gelöscht
"; $nummer = $frage->nummer; } else echo 'Fehler:'.$frage->errormsg.'
'; } else echo ''.$frage->errormsg.'
'; } //Speichern der Frage-Daten if (isset($_POST['submitdata'])) { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); $frage = new frage(); if ($frage->load($_GET['frage_id'])) { $frage->demo = isset($_POST['demo']); $frage->nummer = $_POST['nummer']; $frage->level = $_POST['level']; $frage->aktiv = isset($_POST['aktiv'])?true:false; $frage->new = false; if ($frage->save()) { if ($frage->getFrageSprache($frage->frage_id, $sprache)) { $frage->new = false; } else $frage->new = true; if (isset($_POST['text'])) $frage->text = $_POST['text']; $frage->sprache = $sprache; $xml = ''.$frage->text.''; libxml_use_internal_errors(true); if (simplexml_load_string($xml) || $_POST['text'] == '') { if ($frage->save_fragesprache()) { echo "Daten gespeichert
"; $nummer = $frage->nummer; } else echo 'Fehler:'.$frage->errormsg.'
'; } else { $frage_error_text = $frage->text; echo 'Fehler: Text ist kein gueltiges XML:
'; foreach (libxml_get_errors() as $error) { echo $error->message.'
'; } echo '

'; } } else echo ''.$frage->errormsg.'
'; } else echo ''.$frage->errormsg.'
'; } //Speichern eines Vorschlages if (isset($_POST['submitvorschlag'])) { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); $bildcontent = ''; if (isset($_FILES['bild']['tmp_name']) && is_uploaded_file($_FILES['bild']['tmp_name'])) { //Extension herausfiltern $ext = explode('.', $_FILES['bild']['name']); $ext = mb_strtolower($ext[count($ext) - 1]); //--check that it's a jpeg or gif or png if ($ext == 'gif' || $ext == 'png' || $ext == 'jpg' || $ext == 'jpeg') { $filename = $_FILES['bild']['tmp_name']; //File oeffnen $fp = fopen($filename, 'r'); //auslesen $bildcontent = fread($fp, filesize($filename)); fclose($fp); //base64 codieren $bildcontent = base64_encode($bildcontent); } else echo "Datei ist kein Bild!
"; } $audiocontent = ''; if (isset($_FILES['audio']['tmp_name']) && is_uploaded_file($_FILES['audio']['tmp_name'])) { //Extension herausfiltern $ext = explode('.', $_FILES['audio']['name']); $ext = mb_strtolower($ext[count($ext) - 1]); //--check that it's a jpeg or gif or png if ($ext == 'mp3') { $filename = $_FILES['audio']['tmp_name']; //File oeffnen $fp = fopen($filename, 'r'); //auslesen $audiocontent = fread($fp, filesize($filename)); fclose($fp); //base64 codieren $audiocontent = base64_encode($audiocontent); } else echo "Datei ist kein Bild!
"; } $vorschlag = new vorschlag(); $error = false; if ($_POST['vorschlag_id'] != '') { if ($vorschlag->load($_POST['vorschlag_id'])) { $vorschlag->new = false; $vorschlag->vorschlag_id = $_POST['vorschlag_id']; } else { echo 'Fehler beim Laden des Datensatzes
'; $error = true; } } else { $vorschlag->new = true; $vorschlag->insertamum = date('Y-m-d H:i:s'); $vorschlag->insertvon = $user; } if ($_POST['nummer'] == '' || !is_numeric($_POST['nummer'])) { $error = true; echo 'Nummer ist ungueltig
'; } if (!$error) { $vorschlag->bild = $bildcontent; $vorschlag->audio = $audiocontent; $vorschlag->frage_id = $_GET['frage_id']; $vorschlag->nummer = $_POST['nummer']; $vorschlag->punkte = $_POST['punkte']; $vorschlag->text = $_POST['text']; $vorschlag->sprache = $sprache; $vorschlag->updateamum = date('Y-m-d H:i:s'); $vorschlag->updatevon = $user; $vorschlag->aktiv = isset($_POST['aktiv'])?true:false; $xml = ''.$vorschlag->text.''; libxml_use_internal_errors(true); if (simplexml_load_string($xml) || $_POST['text'] == '') { if ($vorschlag->save()) { if ($vorschlag->save_vorschlagsprache()) { echo "Vorschlag gespeichert
"; } else { $save_vorschlag_error = true; echo "Fehler beim Speichern von Vorschlagsprache: $vorschlag->errormsg
"; } } else { $save_vorschlag_error = true; echo ''.$vorschlag->errormsg.'
'; } } else { $vorschlag_error_text = $vorschlag->text; echo 'Fehler: Text ist kein gueltiges XML:
'; foreach (libxml_get_errors() as $error) { echo $error->message.'
'; } echo '

'; } } else $save_vorschlag_error = true; } //Vorschlag loeschen if (isset($_GET['type']) && $_GET['type'] == 'delete' && isset($_GET['vorschlag_id'])) { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); $vs = new vorschlag(); if (!$vs->delete($_GET['vorschlag_id'])) echo ''.$vs->errormsg.'
'; $vorschlag_id = ''; } if (isset($_POST['type']) && $_POST['type'] == 'deleteFrage') { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); $frage = new frage(); if (!$frage->delete($_GET['frage_id'])) { echo "Löschen fehlgeschlagen:".$frage->errormsg; } $nummer = ''; } // anlegen einer neuen Frage if (isset($_GET['type']) && $_GET['type'] == 'neuefrage') { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); $frage_obj = new frage(); $nummer = $frage_obj->getMaxNummer($gebiet_id) + 1; $frage_obj->gebiet_id = $_GET['gebiet_id']; $frage_obj->nummer = $nummer; $frage_obj->demo = false; $frage_obj->insertamum = date('Y-m-d H:i:s'); $frage_obj->insertvon = $user; $frage_obj->sprache = $sprache; $frage_obj->aktiv = true; $frage_obj->new = true; if ($frage_obj->save()) { if ($frage_obj->save_fragesprache()) { echo 'Frage wurde erfolgreich angelegt'; } else { echo 'Fehler beim Speichern der FrageSprache: '.$frage_obj->errormsg.''; } } else { echo 'Fehler beim Speichern der Frage: '.$frage_obj->errormsg.''; } } //Gebiet pruefen if (isset($_GET['type']) && $_GET['type'] == 'gebietpruefen' && isset($_GET['gebiet_id'])) { $gebiet = new gebiet($gebiet_id); if ($gebiet->check_gebiet($gebiet_id) && $gebiet->warningmsg == '') { echo "Das Gebiet $gebiet->bezeichnung wurde erfolgreich ueberprueft"; } else { if ($gebiet->errormsg != '') { echo "Bei der Ueberpruefung des Gebiets '$gebiet->bezeichnung' sind folgende Fehler aufgetreten:
"; echo "".nl2br($gebiet->errormsg).""; echo '

'; } if ($gebiet->warningmsg != '') { echo "Folgende Warnungen sind aufgetreten:
"; echo nl2br($gebiet->warningmsg); echo '

'; } } $maxpunkte = $gebiet->berechneMaximalpunkte($gebiet_id); if ($gebiet->maxpunkte != $maxpunkte) { echo '
die empfohlene Punkteanzahl betraegt '.$maxpunkte.' Punkte anstatt '.$gebiet->maxpunkte.' Punkte'; } } //Vorschlaege aktiv und inaktiv setzen if (isset($_GET['type']) && $_GET['type'] == 'vorschlaegeaktiv') { if (isset($_POST['allevorschlaege'])) { $vs = new vorschlag(); $vs->new = false; if (isset($_POST['vorschlagaktiv'])) { $vorschlaegeAktiv = array(); $vorschlaegeInaktiv = array(); $checkedVorschlaege = $_POST['vorschlagaktiv']; $allevorschlaege = array(); $allevorschlaege = explode(",", rtrim($_POST['allevorschlaege'], ",")); foreach ($allevorschlaege as $vorschlag) { $vs->load($vorschlag, $sprache); if (in_array($vorschlag, $checkedVorschlaege)) { $vs->aktiv = true; $vs->save(); } else { $vs->aktiv = false; $vs->save(); } } } else { $allevorschlaege = array(); $allevorschlaege = explode(",", rtrim($_POST['allevorschlaege'], ",")); foreach ($allevorschlaege as $vorschlag) { $vs->load($vorschlag, $sprache); $vs->aktiv = false; $vs->save(); } } } } echo '
'; //Liste der Studiengänge echo 'Studiengang: '; //Liste der Gebiete $qry = "SELECT * FROM testtool.tbl_ablauf WHERE studiengang_kz=".$db->db_add_param($stg_kz); $anzahl = $db->db_num_rows($db->db_query($qry)); if ($stg_kz !== "-1" && $anzahl !== 0) { $qry = "SELECT * FROM testtool.tbl_gebiet LEFT JOIN testtool.tbl_ablauf USING (gebiet_id) WHERE studiengang_kz=".$db->db_add_param($stg_kz)." ORDER BY semester,reihung"; } else $qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung"; if (($anzahl !== 0) || ($stg_kz == '-1') && ($stg_kz !== '')) { if ($result = $db->db_query($qry)) { echo ' Gebiet:'; while ($row = $db->db_fetch_object($result)) { if ($gebiet_id == '') $gebiet_id = $row->gebiet_id; if ($gebiet_id == $row->gebiet_id) $selected = 'selected="selected"'; else $selected = ''; if ($stg_kz == "-1") echo ''."\n"; else echo ''."\n"; } echo ''; } echo " Prüfen | "; echo " Bearbeiten |"; echo " Neues Gebiet | "; echo " Gebiet kopieren"; //echo " PDF exportieren"; //echo "
Gebiet_id=".$gebiet_id.""; echo '
'; //Liste der Sprachen $qry = "SELECT sprache FROM public.tbl_sprache WHERE content ORDER BY sprache DESC"; if ($result = $db->db_query($qry)) { while ($row = $db->db_fetch_object($result)) { if ($sprache == '') $sprache = $row->sprache; if ($sprache == $row->sprache) $selected = 'style="border:1px solid black;"'; else $selected = ''; echo " $row->sprache"; } } echo '
'; echo '
'; // Liste der Fragen if ($filter == 'aktiv') { $qry = "SELECT distinct nummer, aktiv, level, demo FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." AND aktiv ORDER BY nummer"; } elseif ($filter == 'inaktiv') { $qry = "SELECT distinct nummer, aktiv, level, demo FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." AND NOT aktiv ORDER BY nummer"; } else { $qry = "SELECT distinct nummer, aktiv, level, demo FROM testtool.tbl_frage WHERE gebiet_id=".$db->db_add_param($gebiet_id)." ORDER BY nummer"; } if ($result = $db->db_query($qry)) { $resultArray = array(); $i = 0; while ($row = $db->db_fetch_object($result)) { $resultArray[$i]['nummer'] = $row->nummer; $resultArray[$i]['aktiv'] = $row->aktiv; $resultArray[$i]['level'] = $row->level; $resultArray[$i]['demo'] = $row->demo; $i++; } // Aktiv / Inaktiv Checkboxes $aktivchecked = ($filter == 'aktiv' || $filter == '')?'checked="checked"':''; $inaktivchecked = ($filter == 'inaktiv' || $filter == '')?'checked="checked"':''; if ($filter == 'aktiv') { $link = ""; echo ' aktiv inaktiv'; } elseif ($filter == 'inaktiv') { echo ' aktiv inaktiv'; } elseif ($filter == '') { echo ' aktiv inaktiv'; } echo '
'; $counter = 0; $maxPerTable = 50; $totalItems = count($resultArray); // Erste Tabelle öffnen echo ''; foreach ($resultArray AS $key=>$value) { // Neue Tabelle starten, wenn 50 Einträge erreicht sind if ($counter > 0 && $counter % $maxPerTable == 0) { // Aktuelle Tabelle schließen echo ''; // Level-Zeile für die vorherigen Einträge $startIndex = $counter - $maxPerTable; $endIndex = $counter; $tempArray = array_slice($resultArray, $startIndex, $maxPerTable, true); foreach ($tempArray AS $tempKey=>$tempValue) { $leveltext = ''; if ($tempValue['level'] == '') { $leveltext = '-'; } else { $leveltext = $tempValue['level']; if ($tempValue['demo'] == 't') { $leveltext .= '*'; } } echo ''; } echo '
Nummer:
Level:'.$leveltext.'

'; // Neue Tabelle starten echo ''; } if ($nummer == '') $nummer = $value['nummer']; $style = ''; if ($db->db_parse_bool($value['aktiv']) == false) $style = 'style="color: lightgrey"'; $styleSelected = ''; if ($nummer == $value['nummer']) { $styleSelected = 'style="background-color: lightblue"'; } echo ''; $counter++; } // Letzte Tabelle schließen echo ''; // Level-Zeile für die letzten Einträge $remainingItems = $counter % $maxPerTable; if ($remainingItems == 0) $remainingItems = $maxPerTable; $startIndex = $counter - $remainingItems; $tempArray = array_slice($resultArray, $startIndex, $remainingItems, true); foreach ($tempArray AS $tempKey=>$tempValue) { $leveltext = ''; if ($tempValue['level'] == '') { $leveltext = '-'; } else { $leveltext = $tempValue['level']; if ($tempValue['demo'] == 't') { $leveltext .= '*'; } } echo ''; } echo '
Nummer:'.$value['nummer'].'
Level:'.$leveltext.'
'; echo " neue Frage hinzufuegen"; $frage_obj = new frage(); if ($filter == 'aktiv') { $nextNummer = $frage_obj->getNextFrageNummer($nummer, $gebiet_id, true); } elseif ($filter == 'inaktiv') { $nextNummer = $frage_obj->getNextFrageNummer($nummer, $gebiet_id, false); } else { $nextNummer = $frage_obj->getNextFrageNummer($nummer, $gebiet_id); } //if ($nummer<$db->db_num_rows($result)-1) if ($nextNummer != '') echo " - Weiter >>"; } echo "\n\n
"; //Fragen holen $frage = new frage(); $frage->getFragen($gebiet_id, $nummer); if (count($frage->result) == 1) { $frage_id = $frage->result[0]->frage_id; } else { //Wenn fuer diese Nummer mehrere Fragen vorhanden sind, //koennen diese extra ausgewaehlt werden echo 'FrageID: '; foreach ($frage->result as $row) { if ($frage_id == '') $frage_id = $row->frage_id; if ($frage_id == $row->frage_id) echo "$row->frage_id -"; else echo "$row->frage_id -"; } } } else { echo ' Keine Gebiete in diesem Studiengang '; echo ''; } if ($frage_id != '') { $frage->load($frage_id); $frage->getFrageSprache($frage_id, $sprache); echo '"; //Vorschau fuer das Text-Feld echo ""; echo "
'; echo '
'; //Fragen echo ""; echo ""; //Upload Feld fuer Bild echo ""; //Wenn ein Bild vorhanden ist, dann anzeigen if ($frage->bild != '') { echo "\n'; //Zusaetzliche EingabeFelder anzeigen echo ""; echo ""; echo "
Bild:
Audio:
"; echo "\n
"; echo "\n
"; echo "\n
"; } else { echo "\n
\n"; if ($frage->audio == '') echo "Kein Bild vorhanden\n"; } $timestamp = time(); if ($frage->audio != '') { echo ' '; echo "\n
"; echo "\n
"; echo "\n
"; } echo '
"; echo "
"; echo ""; //Bei Aenderungen im Textfeld werden diese sofort in der Vorschau angezeigt //Wenn beim Speichern der Text kein Gueltiges XML ist, wird der vorige Text erneut angezeigt echo ""; echo "
\n\n
"; echo "
"; echo ""; echo "

"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "Operatoren:

"; echo " "; echo " "; echo " "; echo ""; echo "

Weitere

"; echo ""; echo "

Demo demo?'checked="true"':'')." /> Level Nummer Aktiv aktiv == true?'checked="true"':'')." />
"; echo ""; echo "
Vorschau:
$frage->text
Derzeit:
$frage->text
"; echo ''; $vorschlag = new vorschlag(); if ($vorschlag_id != '') if (!$vorschlag->load($vorschlag_id, $sprache)) die($vorschlag->errormsg); if ($save_vorschlag_error) { $vorschlag->vorschlag_id = (isset($_POST['vorschlag_id'])?$_POST['vorschlag_id']:''); $vorschlag->frage_id = $_GET['frage_id']; $vorschlag->nummer = $_POST['nummer']; $vorschlag->punkte = $_POST['punkte']; $vorschlag->text = $_POST['text']; $vorschlag->bild = ''; } //Vorschlag echo 'Vorschlag'.($vorschlag_id != ''?' Edit':'').'

'; echo "
"; echo ""; echo ''; if (!isset($vorschlag_id) || $vorschlag_id != '') { echo ""; echo ''; echo ""; echo ''; echo ''; echo '"; echo ""; echo ''; //Upload Feld fuer Bild echo ""; echo ''; echo ''; //Upload Feld fuer Audio echo ""; //Aktiv Checkbox echo ""; echo ""; //Vorschau fuer das Text-Feld echo ""; echo "
Nummer:"; } else { if (isset($_GET['gebiet_id']) && isset($_GET['nummer'])) { $fragef1 = new frage(); $fragef1->getFragen($_GET['gebiet_id'], $_GET['nummer']); if(isset($fragef1->result[0])) { $vorschlag->getVorschlag($fragef1->result[0]->frage_id, $sprache, false, false); echo "
Nummer:"; //@Todo: Count ($vorschlag->result) liefert die naechste Nummer nur dann richtig, falls keine Zahl dazwischen fehlt (1,3,4,..). Hier sollte die letzte Nummer ermittelt werden. } else echo "
Nummer:"; } else { echo "
Nummer:"; } } echo ""; echo ""; echo ""; echo "
Punkte:"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
Text:\n"; echo ""; echo "

"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "
"; echo "Operatoren:

"; echo " "; echo " "; echo " "; echo ""; echo "

Bild:
Audio:
Aktivaktiv == true || is_null($vorschlag->aktiv)) { echo "checked='checked'"; } elseif ($vorschlag->aktiv == false) { echo ""; } echo "/>
".($vorschlag_id != ''?"frage_id'\" />":'')."
Vorschau:
$vorschlag->text
Derzeit:
$vorschlag->text
"; echo "
"; echo ''; $vorschlag = new vorschlag(); $vorschlag->getVorschlag($frage_id, $sprache, false, false); $i = 0; $allevorschlaege = ''; if (count($vorschlag->result) > 0) { echo '
'; echo ''; $a = array(); foreach ($vorschlag->result as $vs) { $i++; echo ""; if ($vs->punkte >= 0) { echo ""; $allevorschlaege .= $vs->vorschlag_id.","; } echo ''; echo '
NummerPunkteTextBildAudioAktiv
$vs->nummer$vs->punkte"; } else echo "$vs->punkte"; echo "$vs->text ".($vs->bild != ''?"":"")." "; $a[] = $vs->punkte; if ($vs->audio != '') { echo ' '; } echo " edit delete load($vs->vorschlag_id); if ($vss->aktiv == true) echo "checked='checked'"; echo "/>
Summe:'.number_format(array_sum($a), 2, ".", "").'  













'; } echo ""; } ?>