mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
This commit is contained in:
@@ -0,0 +1,299 @@
|
||||
<?php
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
require_once('../../config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/moodle_course.class.php');
|
||||
require_once('../../../include/moodle_user.class.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
|
||||
if(!$conn = pg_pconnect(CONN_STRING))
|
||||
die('Fehler beim Connecten zur DB');
|
||||
|
||||
//$conn_moodle='';
|
||||
if(!$conn_moodle = pg_pconnect(CONN_STRING_MOODLE))
|
||||
die('Fehler beim Connecten zur DB');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
if(isset($_GET['lvid']))
|
||||
$lvid=$_GET['lvid'];
|
||||
else
|
||||
die('lvid muss uebergeben werden');
|
||||
|
||||
if(isset($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die('Es wurde kein Studiensemester uebergeben');
|
||||
|
||||
$art = (isset($_POST['art'])?$_POST['art']:'le');
|
||||
|
||||
$berechtigt = false;
|
||||
|
||||
//Pruefen ob Rechte fuer diese LV vorhanden sind
|
||||
$qry = "SELECT distinct vorname, nachname, tbl_benutzer.uid as uid FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_benutzer, public.tbl_person WHERE tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND tbl_person.person_id=tbl_benutzer.person_id AND lehrveranstaltung_id='$lvid' AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%' AND tbl_person.aktiv=true AND studiensemester_kurzbz='$stsem' ORDER BY nachname, vorname";
|
||||
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row_lector = pg_fetch_object($result))
|
||||
{
|
||||
if($user==$row_lector->uid)
|
||||
$berechtigt=true;
|
||||
}
|
||||
}
|
||||
|
||||
$rechte = new benutzerberechtigung($conn);
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$berechtigt=true;
|
||||
|
||||
$lv = new lehrveranstaltung($conn);
|
||||
$lv->load($lvid);
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
<!--
|
||||
function togglediv()
|
||||
{
|
||||
var block = "table-row";
|
||||
if (navigator.appName.indexOf("Microsoft") > -1)
|
||||
block = "block";
|
||||
|
||||
if(document.getElementById("radiole").checked)
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = block;
|
||||
else
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = "none";
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body onload="togglediv()">
|
||||
<table class="tabcontent" height="100%" id="inhalt">
|
||||
<tr>
|
||||
<td class="tdwidth10"> </td>
|
||||
<td class="ContentHeader"><font class="ContentHeader">'.$lv->bezeichnung.' ('.$stsem.')</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tdvertical"> </td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tdvertical"> </td>
|
||||
<td class="tdvertical">
|
||||
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td>';
|
||||
if(isset($_POST['neu']))
|
||||
{
|
||||
if($_POST['bezeichnung']=='')
|
||||
{
|
||||
echo '<span class="error">Bezeichnung muss angegeben werden</span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung($conn);
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang($conn);
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
//Gesamte LV zu einem Moodle Kurs zusammenlegen
|
||||
if($art=='lv')
|
||||
{
|
||||
$mdl_course = new moodle_course($conn, $conn_moodle);
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
|
||||
//Moodlekurs anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//Eintrag in der Vilesci DB
|
||||
$mdl_course->create_vilesci();
|
||||
|
||||
$mdl_user = new moodle_user($conn, $conn_moodle);
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle_user($conn, $conn_moodle);
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten
|
||||
{
|
||||
$lehreinheiten=array();
|
||||
|
||||
foreach ($_POST as $key=>$value)
|
||||
{
|
||||
if(strstr($key, 'lehreinheit_'))
|
||||
{
|
||||
$lehreinheiten[]=$value;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($lehreinheiten)>0)
|
||||
{
|
||||
$mdl_course = new moodle_course($conn, $conn_moodle);
|
||||
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->lehreinheit_id=$lehreinheiten[0];
|
||||
|
||||
//Kurs im Moodle anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//fuer jede Lehreinheit einen Eintrag in VilesciDB anlegen
|
||||
foreach ($lehreinheiten as $value)
|
||||
{
|
||||
$mdl_course->lehreinheit_id = $value;
|
||||
if(!$mdl_course->create_vilesci())
|
||||
echo '<br>Fehler beim Anlegen:'.$mdl_course->errormsg;
|
||||
}
|
||||
|
||||
$mdl_user = new moodle_user($conn, $conn_moodle);
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle_user($conn, $conn_moodle);
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">Es muss mindestens eine Lehreinheit markiert sein</span><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
die('art ist unbekannt');
|
||||
}
|
||||
}
|
||||
|
||||
$mdl_course = new moodle_course($conn, $conn_moodle);
|
||||
if($mdl_course->course_exists_for_lv($lvid, $stsem) || $mdl_course->course_exists_for_allLE($lvid, $stsem))
|
||||
{
|
||||
echo 'Es ist bereits ein Moodle Kurs für die Gesamt LV vorhanden';
|
||||
}
|
||||
else
|
||||
{
|
||||
//wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass
|
||||
//anlegen fuer die Lehrveranstaltung verhindern
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id='".addslashes($lvid)."'
|
||||
AND studiensemester_kurzbz='".addslashes($stsem)."')";
|
||||
$disable_lv='';
|
||||
if($result = pg_query($conn, $qry))
|
||||
if(pg_num_rows($result)>0)
|
||||
$disable_lv='disabled="true"';
|
||||
|
||||
echo 'Moodle Kurs anlegen: <br><br>
|
||||
<form action="'.$_SERVER['PHP_SELF'].'?lvid='.$lvid.'&stsem='.$stsem.'" method="POST">
|
||||
<input type="radio" '.$disable_lv.' name="art" value="lv" onclick="togglediv()" '.($art=='lv'?'checked':'').'>einen Moodle Kurs für die gesamte LV anlegen<br>
|
||||
<input type="radio" id="radiole" name="art" value="le" onclick="togglediv()" '.($art=='le'?'checked':'').'>einen Moodle Kurs für einzelne Lehreinheiten anlegen
|
||||
';
|
||||
|
||||
$le = new lehreinheit($conn);
|
||||
$le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem);
|
||||
echo '<div id="lehreinheitencheckboxen" style="display:none">';
|
||||
foreach ($le->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
|
||||
$lehreinheitgruppe = new lehreinheitgruppe($conn);
|
||||
$lehreinheitgruppe->getLehreinheitgruppe($row->lehreinheit_id);
|
||||
foreach ($lehreinheitgruppe->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren = '';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter($conn);
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
if($mdl_course->course_exists_for_le($row->lehreinheit_id))
|
||||
$disabled='disabled';
|
||||
else
|
||||
$disabled='';
|
||||
echo '
|
||||
<input type="checkbox" name="lehreinheit_'.$row->lehreinheit_id.'" value="'.$row->lehreinheit_id.'" '.$disabled.'>'.$row->lehrform_kurzbz.' '.$gruppen.' '.$lektoren;
|
||||
echo '<br>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
echo '<br>Kursbezeichnung: <input type="text" name="bezeichnung" maxlength="254" size="40" value="'.$lv->bezeichnung.'"><br><br>';
|
||||
echo '<input type="submit" name="neu" value="Kurs anlegen">
|
||||
</form>';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
echo '<td valign="top">';
|
||||
echo '<b>Vorhandene Moodle Kurse für diese LV</b>';
|
||||
if(!$mdl_course->getAll($lvid, $stsem))
|
||||
echo $mdl_course->errormsg;
|
||||
echo '<br>';
|
||||
foreach ($mdl_course->result as $course)
|
||||
{
|
||||
echo '<br><a href="'.MOODLE_PATH.'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$course->mdl_fullname.'</a>';
|
||||
}
|
||||
echo '</td></tr></table>';
|
||||
|
||||
|
||||
|
||||
echo '</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -182,7 +182,8 @@ mehrere Studenten auf einmal möglich sein<br>
|
||||
<tr>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td><br>
|
||||
<td>Bei Lehreinheiten in der Übersichtsliste eine Spalte mit
|
||||
der Anzahl teilnehmenden der Studenten anzeigen<br>
|
||||
</td>
|
||||
<td align="center"><span style="font-weight: bold;"></span><br>
|
||||
</td>
|
||||
@@ -272,7 +273,7 @@ alle Lektoren eines Studienganges </td>
|
||||
<th>Aufwand [h] </th>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td><br>
|
||||
<td>Lehrfächer im DropDown nach der Bezeichnung sortieren<br>
|
||||
</td>
|
||||
<td align="center"><br>
|
||||
</td>
|
||||
|
||||
@@ -807,7 +807,7 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
// LE loeschen
|
||||
// Loeschen verhindern wenn diese Lehreinheit schon verplant ist
|
||||
$qry = "SELECT stundenplandev_id as id FROM lehre.tbl_stundenplandev WHERE lehreinheit_id='".$_POST['lehreinheit_id']."'
|
||||
UNION
|
||||
SELECT stundenplan_id as id FROM lehre.tbl_stundenplan WHERE lehreinheit_id='".$_POST['lehreinheit_id']."'";
|
||||
@@ -820,14 +820,27 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($leDAO->delete($_POST['lehreinheit_id']))
|
||||
//Loeschen verhindern wenn ein MoodleKurs existiert
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."'";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Loeschen der Lehreinheit '.$leDAO->errormsg;
|
||||
if(pg_num_rows($result)>0)
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Lehreinheit kann nicht geloescht werden, da dazu bereits ein Moodle-Kurs angelegt wurde';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($leDAO->delete($_POST['lehreinheit_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Loeschen der Lehreinheit '.$leDAO->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+59
-27
@@ -29,6 +29,7 @@ require_once('../vilesci/config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/xslfo2pdf/xslfo2pdf.php');
|
||||
require_once('../include/fop.class.php');
|
||||
require_once('../include/akte.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
@@ -176,7 +177,7 @@ $rechte->getBerechtigungen($user);
|
||||
// die("Keine Berechtigung");
|
||||
|
||||
$xml_url=XML_ROOT.$xml.$params;
|
||||
//echo $xml_url;
|
||||
|
||||
// Load the XML source
|
||||
$xml_doc = new DOMDocument;
|
||||
|
||||
@@ -195,26 +196,9 @@ if(!$result = pg_query($conn, $qry))
|
||||
if(!$row = pg_fetch_object($result))
|
||||
die('Vorlage wurde nicht gefunden'.$qry);
|
||||
|
||||
// Load the XSL source
|
||||
$xsl_doc = new DOMDocument;
|
||||
//if(!$xsl_doc->load('../../../../xsl/collection.xsl'))
|
||||
if(!$xsl_doc->loadXML($row->text))
|
||||
die('unable to load xsl');
|
||||
//echo 'XSL:'.$xsl_doc->saveXML().':';
|
||||
|
||||
|
||||
// Configure the transformer
|
||||
$proc = new XSLTProcessor;
|
||||
$proc->importStyleSheet($xsl_doc); // attach the xsl rules
|
||||
|
||||
$buffer = $proc->transformToXml($xml_doc);
|
||||
//in $buffer steht nun das xsl-fo file mit den daten
|
||||
/*$buffer = '<?xml version="1.0" encoding="ISO-8859-15" ?>'.substr($buffer, strpos($buffer,"\n"),strlen($buffer));*/
|
||||
//$buffer = html_entity_decode($buffer);
|
||||
//echo "XSL-FO: $buffer";
|
||||
$xsl_content = $row->text;
|
||||
|
||||
//Pdf erstellen
|
||||
$fo2pdf = new XslFo2Pdf();
|
||||
|
||||
//wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen
|
||||
$nachname='';
|
||||
@@ -235,10 +219,35 @@ $filename=$xsl.$nachname;
|
||||
|
||||
if (!isset($_REQUEST["archive"]))
|
||||
{
|
||||
if (!$fo2pdf->generatePdf($buffer, $filename, "D"))
|
||||
{
|
||||
echo('Failed to generate PDF');
|
||||
}
|
||||
if(PDF_CREATE_FUNCTION=='FOP')
|
||||
{
|
||||
$fop = new fop();
|
||||
$xml = $xml_doc->saveXML();
|
||||
//$xml = '<personen></personen>';
|
||||
//$xsl='foobar';
|
||||
$fop->generatePdf($xml, $xsl_content, $filename, "D");
|
||||
}
|
||||
else
|
||||
{
|
||||
$fo2pdf = new XslFo2Pdf();
|
||||
|
||||
// Load the XSL source
|
||||
$xsl_doc = new DOMDocument;
|
||||
|
||||
if(!$xsl_doc->loadXML($xsl_content))
|
||||
die('unable to load xsl');
|
||||
|
||||
// Configure the transformer
|
||||
$proc = new XSLTProcessor;
|
||||
$proc->importStyleSheet($xsl_doc); // attach the xsl rules
|
||||
|
||||
$buffer = $proc->transformToXml($xml_doc);
|
||||
|
||||
if (!$fo2pdf->generatePdf($buffer, $filename, "D"))
|
||||
{
|
||||
echo('Failed to generate PDF');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -267,12 +276,35 @@ else
|
||||
if($rechte->isBerechtigt('admin', $studiengang_kz, 'suid') || $rechte->isBerechtigt('assistenz', $studiengang_kz, 'suid'))
|
||||
{
|
||||
|
||||
$filename = $user;
|
||||
if (!$fo2pdf->generatePdf($buffer, $filename, 'F'))
|
||||
|
||||
if(PDF_CREATE_FUNCTION=='FOP')
|
||||
{
|
||||
echo('Failed to generate PDF');
|
||||
$fop = new fop();
|
||||
$file = $fop->generatePdf($xml_doc->saveXML(), $xsl_content, $filename, "F");
|
||||
}
|
||||
else
|
||||
{
|
||||
$filename = $user;
|
||||
$fo2pdf = new XslFo2Pdf();
|
||||
|
||||
// Load the XSL source
|
||||
$xsl_doc = new DOMDocument;
|
||||
//if(!$xsl_doc->load('../../../../xsl/collection.xsl'))
|
||||
if(!$xsl_doc->loadXML($xsl_content))
|
||||
die('unable to load xsl');
|
||||
//echo 'XSL:'.$xsl_doc->saveXML().':';
|
||||
|
||||
// Configure the transformer
|
||||
$proc = new XSLTProcessor;
|
||||
$proc->importStyleSheet($xsl_doc); // attach the xsl rules
|
||||
|
||||
$buffer = $proc->transformToXml($xml_doc);
|
||||
if (!$fo2pdf->generatePdf($buffer, $filename, 'F'))
|
||||
{
|
||||
echo('Failed to generate PDF');
|
||||
}
|
||||
$file = "/tmp/".$filename.".pdf";
|
||||
}
|
||||
$file = "/tmp/".$filename.".pdf";
|
||||
$handle = fopen($file, "rb");
|
||||
$string = fread($handle, filesize($file));
|
||||
fclose($handle);
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/*
|
||||
$xml = file_get_contents('/path/to/your/xmlfile.xml');
|
||||
$xsl = file_get_contenst('/path/to/your/xslfile.xsl');
|
||||
|
||||
$fop = new fop();
|
||||
$pdf_filename = $fop->create_pdf($xml, $xsl);
|
||||
*/
|
||||
class fop
|
||||
{
|
||||
var $xml;
|
||||
var $xsl;
|
||||
|
||||
function fop()
|
||||
{
|
||||
//Apache FOP
|
||||
}
|
||||
|
||||
function generatePdf($xml, $xsl, $filename, $destination)
|
||||
{
|
||||
$tmppdf = tempnam('/tmp', 'FAS_FOP');
|
||||
|
||||
$tmpxml = tempnam('/tmp', 'FAS_FOP');
|
||||
$tmpxsl = tempnam('/tmp', 'FAS_FOP');
|
||||
|
||||
file_put_contents($tmpxml, $xml);
|
||||
file_put_contents($tmpxsl, $xsl);
|
||||
|
||||
|
||||
exec("fop -xml {$tmpxml} -xsl {$tmpxsl} -pdf {$tmppdf} 2>&1", $output);
|
||||
|
||||
@unlink($tmpxml);
|
||||
@unlink($tmpxsl);
|
||||
|
||||
switch($destination)
|
||||
{
|
||||
case "D": // Download
|
||||
$buffer = file_get_contents($tmppdf);
|
||||
if(headers_sent())
|
||||
{
|
||||
echo 'Some data has already been output to browser, can\'t send PDF file';
|
||||
break;
|
||||
}
|
||||
|
||||
if(isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'))
|
||||
header('Content-Type: application/force-download');
|
||||
else
|
||||
header('Content-Type: application/octet-stream');
|
||||
|
||||
header('Content-Length: '.strlen($buffer));
|
||||
header('Content-disposition: attachment; filename="'.$filename.'.pdf"');
|
||||
|
||||
|
||||
echo $buffer;
|
||||
unlink($tmppdf);
|
||||
break;
|
||||
case "F": // im Filesystem speichern
|
||||
break;
|
||||
|
||||
case "I": //auf Stdout ausgeben
|
||||
echo file_get_contents($tmppdf);
|
||||
break;
|
||||
}
|
||||
|
||||
return($tmppdf);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1,652 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/*
|
||||
*
|
||||
*/
|
||||
class moodle_course
|
||||
{
|
||||
var $conn;
|
||||
var $conn_moodle;
|
||||
var $errormsg;
|
||||
var $result = array();
|
||||
|
||||
//Vilesci Attribute
|
||||
var $moodle_id;
|
||||
var $mdl_course_id;
|
||||
var $lehreinheit_id;
|
||||
var $lehrveranstaltung_id;
|
||||
var $studiensemester_kurzbz;
|
||||
var $insertamum;
|
||||
var $insertvon;
|
||||
|
||||
//Moodle Attribute
|
||||
var $mdl_fullname;
|
||||
var $mdl_shortname;
|
||||
|
||||
var $mdl_context_id;
|
||||
var $mdl_context_level;
|
||||
var $mdl_context_instanceid;
|
||||
var $mdl_context_path;
|
||||
var $mdl_context_depth;
|
||||
|
||||
// **********************************************
|
||||
// * moodle_course
|
||||
// * @param $conn Connection zur Vilesci DB
|
||||
// * $conn_moodle Connection zur Moodle DB
|
||||
// **********************************************
|
||||
function moodle_course($conn, $conn_moodle)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$this->conn_moodle = $conn_moodle;
|
||||
|
||||
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
|
||||
pg_query($this->conn_moodle, $qry);
|
||||
}
|
||||
|
||||
// **********************************************
|
||||
// * Laedt alle MoodleKurse die zu einer LV/Stsem
|
||||
// * plus die MoodleKurse die auf dessen LE haengen
|
||||
// * @param lehrveranstaltung_id
|
||||
// * studiensemester_kurzbz
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// **********************************************
|
||||
function getAll($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT distinct on(mdl_course_id) *
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lehrveranstaltung_id)."' AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND
|
||||
((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id AND tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz)
|
||||
OR
|
||||
(tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id)
|
||||
)";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row=pg_fetch_object($result))
|
||||
{
|
||||
$obj = new moodle_course($this->conn, $this->conn_moodle);
|
||||
$obj->moodle_id = $row->moodle_id;
|
||||
$obj->mdl_course_id = $row->mdl_course_id;
|
||||
$obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
|
||||
$qry_mdl = "SELECT * FROM public.mdl_course WHERE id='".addslashes($row->mdl_course_id)."'";
|
||||
if($result_mdl = pg_query($this->conn_moodle, $qry_mdl))
|
||||
{
|
||||
if($row_mdl = pg_fetch_object($result_mdl))
|
||||
{
|
||||
$obj->mdl_fullname = $row_mdl->fullname;
|
||||
$obj->mdl_shortname = $row_mdl->shortname;
|
||||
}
|
||||
}
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// **********************************************
|
||||
// * Schaut ob fuer diese LV/StSem schon ein
|
||||
// * Moodle Kurs existiert
|
||||
// * @param lehrveranstaltung_id
|
||||
// * studiensemester_kurzbz
|
||||
// * @return true wenn vorhanden, false wenn nicht
|
||||
// **********************************************
|
||||
function course_exists_for_lv($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_lv';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// **********************************************
|
||||
// * Schaut ob fuer diese LE schon ein Moodle
|
||||
// * Kurs existiert
|
||||
// * @param lehreinheit_id
|
||||
// * @return true wenn vorhanden, false wenn nicht
|
||||
// **********************************************
|
||||
function course_exists_for_le($lehreinheit_id)
|
||||
{
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id='".addslashes($lehreinheit_id)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_le';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// **********************************************
|
||||
// * Schaut ob fuer diese LV/StSem schon ein
|
||||
// * Moodle Kurs existiert
|
||||
// * @param lehrveranstaltung_id
|
||||
// * studiensemester_kurzbz
|
||||
// * @return true wenn vorhanden, false wenn nicht
|
||||
// **********************************************
|
||||
function course_exists_for_allLE($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT 1 FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."'
|
||||
AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'
|
||||
AND lehreinheit_id NOT IN (SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_allLE';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * wenn $var '' ist wird "null" zurueckgegeben
|
||||
// * wenn $var !='' ist werden datenbankkritische
|
||||
// * Zeichen mit backslash versehen und das Ergebnis
|
||||
// * unter Hochkomma gesetzt.
|
||||
// ************************************************
|
||||
function addslashes($var)
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * Legt einen Eintrag in der tbl_moodle an
|
||||
// * @return true wenn ok, false im Fehlerfall
|
||||
// ************************************************
|
||||
function create_vilesci()
|
||||
{
|
||||
if($this->mdl_course_id=='')
|
||||
{
|
||||
$this->errormsg='mdl_course_id muss angegeben sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = 'BEGIN; INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
|
||||
studiensemester_kurzbz, insertamum, insertvon)
|
||||
VALUES('.
|
||||
$this->addslashes($this->mdl_course_id).','.
|
||||
$this->addslashes($this->lehreinheit_id).','.
|
||||
$this->addslashes($this->lehrveranstaltung_id).','.
|
||||
$this->addslashes($this->studiensemester_kurzbz).','.
|
||||
$this->addslashes($this->insertamum).','.
|
||||
$this->addslashes($this->insertvon).');';
|
||||
|
||||
if(pg_query($this->conn, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('lehre.tbl_moodle_moodle_id_seq') as id;";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->moodle_id = $row->id;
|
||||
pg_query($this->conn, 'COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Einfuegen des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ***********************************************
|
||||
// * Legt einen Kurs im Moodle an
|
||||
// ***********************************************
|
||||
function create_moodle()
|
||||
{
|
||||
pg_query($this->conn_moodle, 'BEGIN;');
|
||||
|
||||
//CourseCategorie ermitteln
|
||||
|
||||
//lehrveranstalung ID holen falls die nur die lehreinheit_id angegeben wurde
|
||||
if($this->lehrveranstaltung_id=='')
|
||||
{
|
||||
$qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehreinheit_id='".addslashes($this->lehreinheit_id)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$lvid = $row->lehrveranstaltung_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
$lvid = $this->lehrveranstaltung_id;
|
||||
|
||||
//Studiengang und Semester holen
|
||||
$qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE lehrveranstaltung_id='$lvid'";
|
||||
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$semester = $row->semester;
|
||||
$stg = $row->stg;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Studiensemester Categorie holen
|
||||
if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0'))
|
||||
{
|
||||
$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0');
|
||||
}
|
||||
//Studiengang Categorie holen
|
||||
if(!$id_stg = $this->getCategorie($stg, $id_stsem))
|
||||
{
|
||||
if(!$id_stg = $this->createCategorie($stg, $id_stsem))
|
||||
echo "<br>$this->errormsg";
|
||||
}
|
||||
//Semester Categorie holen
|
||||
if(!$id_sem = $this->getCategorie($semester, $id_stg))
|
||||
{
|
||||
if(!$id_sem = $this->createCategorie($semester, $id_stg))
|
||||
echo "<br>$this->errormsg";
|
||||
}
|
||||
|
||||
//CourseCategorie Context holen
|
||||
$this->getContext(40, $id_sem);
|
||||
|
||||
//Eintrag in tbl_mdl_course
|
||||
$qry = "INSERT INTO public.mdl_course(category, sortorder, fullname, shortname, format, showgrades, newsitems)
|
||||
VALUES (".$this->addslashes($id_sem).", (SELECT max(sortorder)+1 FROM public.mdl_course), ".$this->addslashes($this->mdl_fullname).", ".
|
||||
$this->addslashes($this->mdl_shortname).",'weeks', 1, 5);";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_course_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->mdl_course_id = $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim INSERT';
|
||||
return false;
|
||||
}
|
||||
|
||||
//zum vorherigen Pfad die aktuelle id hinzufuegen
|
||||
$path = "(SELECT '$this->mdl_context_path' || '/' || currval('mdl_context_id_seq'))";
|
||||
//vorherige tiefe um 1 erhoehen
|
||||
$depth = $this->mdl_context_depth+1;
|
||||
|
||||
//Context eintragen
|
||||
$qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ".
|
||||
$this->addslashes($this->mdl_course_id).",".$path.",".$this->addslashes($depth).");";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_context_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->mdl_context_id = $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim INSERT';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Bloecke hinzufuegen
|
||||
$qry =
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(20, $this->mdl_course_id, 'course-view', 'l', 0, 1);". //Teilnehmer
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(1, $this->mdl_course_id, 'course-view', 'l', 1, 1);". //Aktivitäten
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(25, $this->mdl_course_id, 'course-view', 'l', 2, 1);". //Forumssuche
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(2, $this->mdl_course_id, 'course-view', 'l', 3, 1);". //Admin
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(9, $this->mdl_course_id, 'course-view', 'l', 4, 1);". //Kursliste
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(18, $this->mdl_course_id, 'course-view', 'r', 0, 1);". //Neueste Nachrichten
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(8, $this->mdl_course_id, 'course-view', 'r', 1, 1);". //Kalender / Bald aktuell...
|
||||
"INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(22, $this->mdl_course_id, 'course-view', 'r', 2, 1);"; //Neueste Aktivitäten
|
||||
|
||||
if(!pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim INSERT der bloecke';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT');
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ************************************************************
|
||||
// * Laedt eine CourseCategorie anhand der Bezeichnung und der
|
||||
// * ParentID
|
||||
// ************************************************************
|
||||
function getCategorie($bezeichnung, $parent)
|
||||
{
|
||||
if($bezeichnung=='')
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung muss angegeben werden';
|
||||
return false;
|
||||
}
|
||||
if($parent=='')
|
||||
{
|
||||
$this->errormsg = 'getCategorie: parent wurde nicht uebergeben';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT id FROM public.mdl_course_categories WHERE name='".addslashes($bezeichnung)."' AND parent='".addslashes($parent)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der KursKategorie';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der KursKategorie';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************
|
||||
// * Erzeugt eine CourseCategorie anhand der Bezeichnung und der
|
||||
// * ParentID
|
||||
// ************************************************************
|
||||
function createCategorie($bezeichnung, $parent)
|
||||
{
|
||||
if($bezeichnung=='')
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung muss angegeben werden';
|
||||
return false;
|
||||
}
|
||||
if($parent=='')
|
||||
{
|
||||
$this->errormsg = 'createCategorie: parent wurde nicht uebergeben';
|
||||
return false;
|
||||
}
|
||||
//Parent laden
|
||||
$qry = "SELECT * FROM public.mdl_course_categories WHERE id='".addslashes($parent)."'";
|
||||
echo $qry;
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$depth = $row->depth;
|
||||
$path = $row->path;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der KursKategorie';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der KursKategorie';
|
||||
return false;
|
||||
}
|
||||
|
||||
//KursKategorie anlegen
|
||||
$qry = "BEGIN; INSERT INTO public.mdl_course_categories(name, parent, sortorder,
|
||||
coursecount, visible, timemodified, depth, path, theme)
|
||||
VALUES(".$this->addslashes($bezeichnung).",".$this->addslashes($parent).",".
|
||||
"'999',0,1,0,".$this->addslashes($depth+1).
|
||||
", (SELECT ".$this->addslashes($path.'/')." || currval('mdl_course_categories_id_seq')), null);";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_course_categories_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$coursecatid = $row->id;
|
||||
|
||||
//Context anlegen
|
||||
//wenn Parent 0 ist, dann den SYSTEM Eintrag holen
|
||||
if($parent!='0')
|
||||
$qry = "SELECT path, depth FROM public.mdl_context WHERE contextlevel='40' AND instanceid='".addslashes($parent)."'";
|
||||
else
|
||||
$qry = "SELECT path, depth FROM public.mdl_context WHERE contextlevel='10' AND instanceid='".addslashes($parent)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$path = $row->path;
|
||||
$depth = $row->depth;
|
||||
|
||||
//zum vorherigen Pfad die aktuelle id hinzufuegen
|
||||
$path = "(SELECT '$path' || '/' || currval('mdl_context_id_seq'))";
|
||||
//vorherige tiefe um 1 erhoehen
|
||||
$depth=$depth+1;
|
||||
|
||||
//Context eintragen
|
||||
$qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('40', ".
|
||||
$this->addslashes($coursecatid).",".$path.",".$this->addslashes($depth).");";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_context_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle,'COMMIT;');
|
||||
return $coursecatid;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim INSERT';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen des Contextes'.$qry;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen des Contextes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Speichern der KursKategorie';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************
|
||||
// * Laedt einen Context anhand des contextlevels und der instanceid
|
||||
// ************************************************************
|
||||
function getContext($contextlevel, $instanceid)
|
||||
{
|
||||
$qry ="SELECT * FROM public.mdl_context WHERE contextlevel='".addslashes($contextlevel)."'
|
||||
AND instanceid='".addslashes($instanceid)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->mdl_context_id = $row->id;
|
||||
$this->mdl_context_contextlevelid = $row->id;
|
||||
$this->mdl_context_instanceid = $row->instanceid;
|
||||
$this->mdl_context_path = $row->path;
|
||||
$this->mdl_context_depth = $row->depth;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Eintrag wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen des Contexts';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,463 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/*
|
||||
* requires moodle_course.class.php
|
||||
*/
|
||||
class moodle_user
|
||||
{
|
||||
var $conn;
|
||||
var $conn_moodle;
|
||||
var $errormsg;
|
||||
var $log=''; //log message fuer Syncro
|
||||
var $sync_create=0; //anzahl der durchgefuehrten zuteilungen beim syncro
|
||||
|
||||
var $mdl_user_id;
|
||||
var $mdl_user_username;
|
||||
|
||||
|
||||
// **********************************************
|
||||
// * moodle_user
|
||||
// * @param $conn Connection zur Vilesci DB
|
||||
// * $conn_moodle Connection zur Moodle DB
|
||||
// **********************************************
|
||||
function moodle_user($conn, $conn_moodle)
|
||||
{
|
||||
$this->conn = $conn;
|
||||
$this->conn_moodle = $conn_moodle;
|
||||
|
||||
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
|
||||
pg_query($this->conn_moodle, $qry);
|
||||
}
|
||||
|
||||
function loaduser($uid)
|
||||
{
|
||||
$qry = "SELECT * FROM public.mdl_user WHERE username='".addslashes($uid)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->mdl_user_id = $row->id;
|
||||
$this->mdl_user_username = $row->username;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'User wurde nicht gefunden: '.$uid;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * Synchronisiert die Lektoren der Lehreinheiten
|
||||
// * mit denen des Moodle Kurses
|
||||
// * @param $mdl_course_id ID des MoodleKurses
|
||||
// * @return true wenn ok, false wenn Fehler
|
||||
// ************************************************
|
||||
function sync_lektoren($mdl_course_id)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
$mitarbeiter='';
|
||||
if($result_ma = pg_query($this->conn, $qry))
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle_course($this->conn, $this->conn_moodle);
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row_ma = pg_fetch_object($result_ma))
|
||||
{
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if(!$this->loaduser($row_ma->mitarbeiter_uid))
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_ma->mitarbeiter_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_ma->mitarbeiter_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($mitarbeiter!='')
|
||||
$mitarbeiter.=',';
|
||||
$mitarbeiter.=$this->mdl_user_id;
|
||||
|
||||
//Nachschauen ob dieser Lektor bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Mitarbeiter ist noch nicht zugeteilt.
|
||||
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 3))
|
||||
{
|
||||
$this->log.="\nerzeuge Lektoren-Zuteilung für User $this->mdl_user_id zum Context $mdlcourse->mdl_context_id";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Lektoren-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Lektoren loeschen die nicht mehr zugeordnet sind
|
||||
/* Derzeit werden zugeteilte Personen nicht geloescht
|
||||
$qry = "SELECT * FROM mdl_role_assignments
|
||||
WHERE
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
|
||||
userid NOT in ($mitarbeiter)";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Lektoren die nicht mehr zugeteilt sind';
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * Synchronisiert die Studenten der Lehreinheiten
|
||||
// * mit denen des Moodle Kurses
|
||||
// * @param $mdl_course_id ID des MoodleKurses
|
||||
// * @return true wenn ok, false wenn Fehler
|
||||
// ************************************************
|
||||
function sync_studenten($mdl_course_id)
|
||||
{
|
||||
//Studentengruppen laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
$studenten='';
|
||||
if($result_std = pg_query($this->conn, $qry))
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle_course($this->conn, $this->conn_moodle);
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row_std = pg_fetch_object($result_std))
|
||||
{
|
||||
//Studenten dieser Gruppe holen
|
||||
|
||||
if($row_std->gruppe_kurzbz=='') //LVB Gruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct student_uid
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE
|
||||
studiensemester_kurzbz='$row_std->studiensemester_kurzbz' AND
|
||||
studiengang_kz = '$row_std->studiengang_kz' AND
|
||||
semester = '$row_std->semester'";
|
||||
if(trim($row_std->verband)!='')
|
||||
{
|
||||
$qry.=" AND verband = '$row_std->verband'";
|
||||
if(trim($row_std->gruppe)!='')
|
||||
{
|
||||
$qry.=" AND gruppe = '$row_std->gruppe'";
|
||||
}
|
||||
}
|
||||
}
|
||||
else //Spezialgruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct uid as student_uid
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
gruppe_kurzbz='$row_std->gruppe_kurzbz' AND
|
||||
studiensemester_kurzbz='$row_std->studiensemester_kurzbz'
|
||||
";
|
||||
}
|
||||
|
||||
if($result_user = pg_query($this->conn, $qry))
|
||||
{
|
||||
while($row_user = pg_fetch_object($result_user))
|
||||
{
|
||||
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if(!$this->loaduser($row_user->student_uid))
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_user->student_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($studenten!='')
|
||||
$studenten.=',';
|
||||
$studenten.=$this->mdl_user_id;
|
||||
|
||||
//Nachschauen ob dieser Student bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Student ist noch nicht zugeteilt.
|
||||
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 5))
|
||||
{
|
||||
$this->log.="\nerzeuge Studenten-Zuteilung für User $this->mdl_user_id zum Context $mdlcourse->mdl_context_id";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Studenten loeschen die nicht mehr zugeordnet sind
|
||||
/* Derzeit werden zugeteilte Personen nicht geloescht
|
||||
$qry = "SELECT * FROM mdl_role_assignments
|
||||
WHERE
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
|
||||
userid NOT in ($studenten)";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Studenten die nicht mehr zugeteilt sind';
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************
|
||||
// * wenn $var '' ist wird "null" zurueckgegeben
|
||||
// * wenn $var !='' ist werden datenbankkritische
|
||||
// * Zeichen mit backslash versehen und das Ergebnis
|
||||
// * unter Hochkomma gesetzt.
|
||||
// ************************************************
|
||||
function addslashes($var)
|
||||
{
|
||||
return ($var!=''?"'".addslashes($var)."'":'null');
|
||||
}
|
||||
|
||||
// ********************************************
|
||||
// * Legt einen User im Moodle an
|
||||
// * @param $uid UID der Person die angelegt werden soll
|
||||
// * @return true wenn ok, false wenn Fehler
|
||||
// ********************************************
|
||||
function createUser($uid)
|
||||
{
|
||||
$qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'";
|
||||
if($result = pg_query($this->conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$username = $row->uid;
|
||||
$vorname = $row->vorname;
|
||||
$nachname = $row->nachname;
|
||||
|
||||
$qry = "BEGIN; INSERT INTO public.mdl_user(auth, username, idnumber, firstname, lastname, email, mnethostid, confirmed, lang)
|
||||
VALUES('ldap', ".
|
||||
$this->addslashes($username).", ".
|
||||
$this->addslashes($username).",".
|
||||
$this->addslashes($vorname).",".
|
||||
$this->addslashes($nachname).",".
|
||||
$this->addslashes($username.'@'.DOMAIN).", 1, 1, 'de_utf8');";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry ="SELECT currval('mdl_user_id_seq') as id;";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT;');
|
||||
$this->mdl_user_id = $row->id;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Anlegen des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'User wurde nicht gefunden: '.$uid;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// *********************************************
|
||||
// * Teilt den User mit der ID $mdl_user_id zum
|
||||
// * Kurs mit der ContextID $mdl_context_id zu.
|
||||
// * @param $mdl_user_id Moodle ID des Users
|
||||
// * $mdl_context_id ContextID des Kurses
|
||||
// * $role Rolle der Zuteilung (1=Admin/3=Lektor/5=Student)
|
||||
// * @return true wenn ok, false wenn Fehler
|
||||
// *********************************************
|
||||
function createZuteilung($mdl_user_id, $mdl_context_id, $role)
|
||||
{
|
||||
$qry = "INSERT INTO public.mdl_role_assignments(roleid, contextid, userid)
|
||||
VALUES(".
|
||||
$this->addslashes($role).",".
|
||||
$this->addslashes($mdl_context_id).",".
|
||||
$this->addslashes($mdl_user_id).");";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// *************************************************
|
||||
// * Loescht die Zuteilung eines Users zu einem Kurs
|
||||
// * @param $mdl_user_id MoodleID des Users
|
||||
// * $mdl_context_id ContextID des Users
|
||||
// * @return true wenn ok, false wenn Fehler
|
||||
// *************************************************
|
||||
function deleteZuteilung($mdl_user_id, $mdl_context_id)
|
||||
{
|
||||
$qry = "DELETE FROM public.mdl_role_assignments
|
||||
WHERE userid='".addslashes($mdl_user_id)."' AND contextid='".addslashes($mdl_context_id)."'";
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+110
-80
@@ -26,6 +26,46 @@
|
||||
?>
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td class="tdvertical" align="center">
|
||||
|
||||
<?php
|
||||
|
||||
//Lehrveranstaltungsinformation
|
||||
|
||||
echo "<img src=\"../../../skin/images/button_i.jpg\" width=\"67\" height=\"45\"><br><strong>Lehrveranstaltungsinformation</strong><br>";
|
||||
|
||||
$qry = "SELECT * FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$lvid' AND genehmigt=true AND sprache='German' AND aktiv=true";
|
||||
$need_br=false;
|
||||
|
||||
if($result=pg_query($sql_conn,$qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
{
|
||||
echo "<a href=\"#\" class='Item' onClick=\"javascript:window.open('ects/preview.php?lv=$lvid&language=de','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">Deutsch </a>";
|
||||
$need_br=true;
|
||||
}
|
||||
}
|
||||
$qry = "SELECT * FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$lvid' AND genehmigt=true AND sprache='English' AND aktiv=true";
|
||||
if($result=pg_query($sql_conn,$qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
{
|
||||
$row1=pg_fetch_object($result);
|
||||
echo "<a href=\"#\" class='Item' onClick=\"javascript:window.open('ects/preview.php?lv=$lvid&language=en','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">Englisch</a>";
|
||||
$need_br=true;
|
||||
}
|
||||
}
|
||||
|
||||
if($user_is_allowed_to_upload || $rechte->isBerechtigt('admin',$course_id) || $rechte->isBerechtigt('lehre',$course_id))
|
||||
{
|
||||
if($need_br)
|
||||
echo "<br>";
|
||||
echo "<a href='ects/index.php?lvid=$lvid' target='_blank' class='Item'>Bearbeiten</a>";
|
||||
}
|
||||
?>
|
||||
|
||||
<p> </p>
|
||||
</td>
|
||||
<td class="tdvertical" align="center">
|
||||
<?php
|
||||
|
||||
@@ -149,7 +189,7 @@
|
||||
|
||||
if(isset($dir_empty) && $dir_empty == false)
|
||||
{
|
||||
echo '<a href="'.$dest_dir->path.'/" target="_blank">';
|
||||
echo '<a href="'.$dest_dir->path.'/" target="_blank" class="Item">';
|
||||
echo '<img src="../../../skin/images/button_dl.jpg" width="67" height="45"><br>';
|
||||
echo '<strong>Download</strong>';
|
||||
echo '</a>';
|
||||
@@ -249,8 +289,23 @@
|
||||
|
||||
<p> </p>
|
||||
</td>
|
||||
<td class="tdvertical" align="center">
|
||||
<td class="tdvertical" align="center">
|
||||
<?php
|
||||
//Keine Newsgroups fuer Studiengang '0' (Freifaecher) anzeigen
|
||||
if($course_id!='0')
|
||||
{
|
||||
echo '<a href="news://cis.technikum-wien.at/'.strtolower($stg_obj->kurzbzlang).'.'.$term_id.'sem.'.strtolower($short_short_name).'" class="Item">
|
||||
<img src="../../../skin/images/button_ng.jpg" width="67" height="45"><br>
|
||||
<strong>Newsgroups</strong>
|
||||
</a>';
|
||||
}
|
||||
?>
|
||||
<p> </p>
|
||||
</td>
|
||||
|
||||
<?php
|
||||
/*
|
||||
echo '<td class="tdvertical" align="center">'
|
||||
//Studentenabgabe
|
||||
$dest_dir = @dir('../../../documents/'.strtolower($kurzbz).'/'.$term_id.'/'.strtolower($short_short_name).'/upload');
|
||||
|
||||
@@ -343,95 +398,70 @@
|
||||
</a>";
|
||||
}
|
||||
}
|
||||
echo '<p> </p>
|
||||
</td>';
|
||||
*/
|
||||
?>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tdvertical" align="center">
|
||||
<td class="tdvertical" align="center">
|
||||
<?php
|
||||
//FEEDBACK
|
||||
echo '<a href="feedback.php?lvid='.$lvid.'" target="_blank"><img border="0" src="../../../skin/images/button_fb.jpg" width="67" height="45"><br><strong>Feedback</strong></a>';
|
||||
echo '<a href="feedback.php?lvid='.$lvid.'" target="_blank" class="Item"><img border="0" src="../../../skin/images/button_fb.jpg" width="67" height="45"><br><strong>Feedback</strong></a>';
|
||||
?>
|
||||
|
||||
<p> </p>
|
||||
</td>
|
||||
|
||||
<td class="tdvertical" align="center">
|
||||
<?php if($is_lector)
|
||||
{
|
||||
if(isset($angezeigtes_stsem))
|
||||
$studiensem = '&stsem='.$angezeigtes_stsem;
|
||||
else
|
||||
$studiensem = '';
|
||||
?>
|
||||
<a href="benotungstool/verwaltung.php?<?php echo "lvid=$lvid$studiensem"?>" >
|
||||
<img src="../../../skin/images/button_kt.jpg" width="67" height="45"><br>
|
||||
<strong>Benotungstool<br>("Kreuzerl"-Tool)</strong></a><br>
|
||||
<a href="lesson.php?handbuch=1&<?php echo "lvid=$lvid$studiensem"?>">Handbuch [PDF]</a>
|
||||
<?php } else { ?>
|
||||
<a href="benotungstool/studentenansicht.php?<?php echo "lvid=$lvid"?>" >
|
||||
<img src="../../../skin/images/button_kt.jpg" width="67" height="45"><br>
|
||||
<strong>"Kreuzerl"-Tool</strong></a>
|
||||
|
||||
<?php } ?>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="tdvertical" align="center">
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
//Lehrveranstaltungsinformation
|
||||
|
||||
echo "<img src=\"../../../skin/images/button_i.jpg\" width=\"67\" height=\"45\"><br><strong>Lehrveranstaltungsinformation</strong><br>";
|
||||
|
||||
$qry = "SELECT * FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$lvid' AND genehmigt=true AND sprache='German' AND aktiv=true";
|
||||
$need_br=false;
|
||||
|
||||
if($result=pg_query($sql_conn,$qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
{
|
||||
echo "<a href=\"#\" class='Item' onClick=\"javascript:window.open('ects/preview.php?lv=$lvid&language=de','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">Deutsch </a>";
|
||||
$need_br=true;
|
||||
}
|
||||
}
|
||||
$qry = "SELECT * FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$lvid' AND genehmigt=true AND sprache='English' AND aktiv=true";
|
||||
if($result=pg_query($sql_conn,$qry))
|
||||
{
|
||||
if(pg_num_rows($result)>0)
|
||||
{
|
||||
$row1=pg_fetch_object($result);
|
||||
echo "<a href=\"#\" class='Item' onClick=\"javascript:window.open('ects/preview.php?lv=$lvid&language=en','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">Englisch</a>";
|
||||
$need_br=true;
|
||||
}
|
||||
}
|
||||
|
||||
if($user_is_allowed_to_upload || $rechte->isBerechtigt('admin',$course_id) || $rechte->isBerechtigt('lehre',$course_id))
|
||||
{
|
||||
if($need_br)
|
||||
echo "<br>";
|
||||
echo "<a href='ects/index.php?lvid=$lvid' target='_blank' class='Item'>Bearbeiten</a>";
|
||||
}
|
||||
?>
|
||||
<td class="tdvertical" align="center">
|
||||
<?php
|
||||
//Kreuzerltool
|
||||
if($is_lector)
|
||||
{
|
||||
if(isset($angezeigtes_stsem))
|
||||
$studiensem = '&stsem='.$angezeigtes_stsem;
|
||||
else
|
||||
$studiensem = '';
|
||||
|
||||
echo '<a href="benotungstool/verwaltung.php?lvid='.$lvid.$studiensem.'" class="Item">
|
||||
<img src="../../../skin/images/button_kt.jpg" width="67" height="45"><br>
|
||||
<strong>Benotungstool<br>("Kreuzerl"-Tool)</strong></a><br>
|
||||
<a href="lesson.php?handbuch=1&lvid='.$lvid.$studiensem.'" class="Item">Handbuch [PDF]</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<a href="benotungstool/studentenansicht.php?lvid='.$lvid.'" >
|
||||
<img src="../../../skin/images/button_kt.jpg" width="67" height="45"><br>
|
||||
<strong>"Kreuzerl"-Tool</strong></a>';
|
||||
|
||||
}
|
||||
?>
|
||||
<p> </p>
|
||||
</td>
|
||||
<td class="tdvertical" align="center">
|
||||
<?php
|
||||
//Keine Newsgroups fuer Studiengang '0' (Freifaecher) anzeigen
|
||||
if($course_id!='0')
|
||||
{
|
||||
echo '<a href="news://cis.technikum-wien.at/'.strtolower($stg_obj->kurzbzlang).'.'.$term_id.'sem.'.strtolower($short_short_name).'">
|
||||
<img src="../../../skin/images/button_ng.jpg" width="67" height="45"><br>
|
||||
<strong>Newsgroups</strong>
|
||||
</a>';
|
||||
}
|
||||
?>
|
||||
<p> </p>
|
||||
</td>
|
||||
</td>
|
||||
<td class="tdvertical" align="center">
|
||||
<?php
|
||||
//Moodle
|
||||
echo '<a href="'.MOODLE_PATH.'" target="_blank" class="Item" >
|
||||
<img src="../../../skin/images/button_moodle.jpg" width="68" height="45"><br>
|
||||
<strong>Moodle</strong></a><br>';
|
||||
if($is_lector)
|
||||
echo '<a href="moodle_wartung.php?lvid='.$lvid.'&stsem='.$angezeigtes_stsem.'" class="Item">Wartung</a>';
|
||||
|
||||
?>
|
||||
<p> </p>
|
||||
</td>
|
||||
<td class="tdvertical" align="center">
|
||||
<?php
|
||||
//Gesamtnote
|
||||
if($is_lector)
|
||||
{
|
||||
echo '<a href="benotungstool/lvgesamtnoteverwalten.php?lvid='.$lvid.'&stsem='.$angezeigtes_stsem.'" class="Item" >
|
||||
<img src="../../../skin/images/button_endnote.jpg" width="68" height="45"><br>
|
||||
<strong>Gesamtnote</strong></a><br>';
|
||||
}
|
||||
?>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
@@ -0,0 +1,114 @@
|
||||
<?php
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/*
|
||||
* Synchronisiert die Lektoren und Studenten der aktuellen MoodleKurse
|
||||
* wenn kein aktuelles Studiensemester vorhanden ist, wird NICHT Synchronisiert
|
||||
*/
|
||||
require_once('../vilesci/config.inc.php');
|
||||
require_once('../include/moodle_course.class.php');
|
||||
require_once('../include/moodle_user.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
|
||||
if(!$conn = pg_pconnect(CONN_STRING))
|
||||
die('Fehler beim Connecten zur DB');
|
||||
|
||||
if(!$conn_moodle = pg_pconnect(CONN_STRING_MOODLE))
|
||||
die('Fehler beim Connecten zur DB');
|
||||
|
||||
$sync_lektoren_gesamt=0;
|
||||
$sync_studenten_gesamt=0;
|
||||
$fehler=0;
|
||||
$message='';
|
||||
|
||||
//nur Synchronisieren wenn ein aktuelles Studiensemester existiert damit keine
|
||||
//Probleme durch die Vorrueckung entstehen
|
||||
$stsem = new studiensemester($conn);
|
||||
if($stsem_kurzbz=$stsem->getakt())
|
||||
{
|
||||
//nur die Eintraege des aktuellen Studiensemesters syncen
|
||||
$qry = "SELECT distinct mdl_course_id FROM lehre.tbl_moodle WHERE studiensemester_kurzbz='$stsem_kurzbz'";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
//Lektoren
|
||||
$mdluser = new moodle_user($conn, $conn_moodle);
|
||||
if($mdluser->sync_lektoren($row->mdl_course_id))
|
||||
{
|
||||
$sync_lektoren_gesamt+=$mdluser->sync_create;
|
||||
if($mdluser->sync_create>0)
|
||||
{
|
||||
$message.="\nCourse $row->mdl_course_id:\n".$mdluser->log."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
|
||||
//Studenten
|
||||
$mdluser = new moodle_user($conn, $conn_moodle);
|
||||
if($mdluser->sync_studenten($row->mdl_course_id))
|
||||
{
|
||||
$sync_studenten_gesamt+=$mdluser->sync_create;
|
||||
if($mdluser->sync_create>0)
|
||||
{
|
||||
$message.="\nCourse $row->mdl_course_id:\n".$mdluser->log."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
}
|
||||
|
||||
if($sync_lektoren_gesamt>0 || $sync_studenten_gesamt>0 || $fehler>0)
|
||||
{
|
||||
$header = "Dies ist eine automatische Mail!\n";
|
||||
$header.= "Folgende Syncros mit den MoodleKursen wurde durchgeführt:\n\n";
|
||||
$header.= "Anzahl der aktualisierten Lektoren: $sync_lektoren_gesamt\n";
|
||||
$header.= "Anzahl der aktualisierten Studenten: $sync_studenten_gesamt\n";
|
||||
$header.= "Anzahl der Fehler: $fehler\n";
|
||||
|
||||
$to = MAIL_ADMIN;
|
||||
//$to = 'oesi@technikum-wien.at';
|
||||
|
||||
if(mail($to,'Moodle Syncro', $header.$message, 'From: vilesci@'.DOMAIN))
|
||||
echo "Mail wurde an $to versandt:<br>".nl2br($header.$message);
|
||||
else
|
||||
echo "Fehler beim Senden des Mails an $to:<br>".nl2br($header.$message);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Alle Zuteilungen sind auf dem neuesten Stand';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler bei Select:'.$qry;
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "Kein aktuelles Studiensemester vorhanden->kein Syncro";
|
||||
?>
|
||||
@@ -141,6 +141,7 @@ $nachname = (isset($_POST['nachname'])?$_POST['nachname']:'');
|
||||
$vorname = (isset($_POST['vorname'])?$_POST['vorname']:'');
|
||||
$geschlecht = (isset($_POST['geschlecht'])?$_POST['geschlecht']:'');
|
||||
$geburtsdatum = (isset($_POST['geburtsdatum'])?$_POST['geburtsdatum']:'');
|
||||
$nation = (isset($_POST['nation'])?$_POST['nation']:'A');
|
||||
$adresse = (isset($_POST['adresse'])?$_POST['adresse']:'');
|
||||
$plz = (isset($_POST['plz'])?$_POST['plz']:'');
|
||||
$ort = (isset($_POST['ort'])?$_POST['ort']:'');
|
||||
@@ -185,6 +186,7 @@ if(isset($_POST['save']))
|
||||
$person->titelpost = $titelpost;
|
||||
$person->geschlecht = $geschlecht;
|
||||
$person->gebdatum = $geburtsdatum;
|
||||
$person->staatsbuergerschaft = $nation;
|
||||
$person->svnr = $svnr;
|
||||
$person->ersatzkennzeichen = $ersatzkennzeichen;
|
||||
$person->aktiv = true;
|
||||
@@ -349,22 +351,25 @@ if(isset($_POST['save']))
|
||||
$errormsg = "Fehler beim Anlegen des Preinteressenten: $preinteressent->errormsg";
|
||||
}
|
||||
|
||||
foreach ($_POST as $key=>$param)
|
||||
if(!$error)
|
||||
{
|
||||
if(substr($key,0,4)=='stg_')
|
||||
foreach ($_POST as $key=>$param)
|
||||
{
|
||||
$stg_kz = substr($key, 4);
|
||||
$zuordnung = new preinteressent($conn);
|
||||
$zuordnung->preinteressent_id = $preinteressent->preinteressent_id;
|
||||
$zuordnung->studiengang_kz = $stg_kz;
|
||||
$zuordnung->prioritaet = 1;
|
||||
$zuordnung->insertamum = date('Y-m-d H:i:s');
|
||||
$zuordnung->insertvon = $user;
|
||||
|
||||
if(!$zuordnung->saveZuordnung(true))
|
||||
if(substr($key,0,4)=='stg_')
|
||||
{
|
||||
$errormsg.="Fehler beim Speichern der Zuordnung zum Studiengang $stg_kz";
|
||||
$error=true;
|
||||
$stg_kz = substr($key, 4);
|
||||
$zuordnung = new preinteressent($conn);
|
||||
$zuordnung->preinteressent_id = $preinteressent->preinteressent_id;
|
||||
$zuordnung->studiengang_kz = $stg_kz;
|
||||
$zuordnung->prioritaet = 1;
|
||||
$zuordnung->insertamum = date('Y-m-d H:i:s');
|
||||
$zuordnung->insertvon = $user;
|
||||
|
||||
if(!$zuordnung->saveZuordnung(true))
|
||||
{
|
||||
$errormsg.="Fehler beim Speichern der Zuordnung zum Studiengang $stg_kz";
|
||||
$error=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -427,6 +432,22 @@ echo '<OPTION value="w" '.($geschlecht=='w'?'selected':'').'>weiblich</OPTION>';
|
||||
echo '<OPTION value="u" '.($geschlecht=='w'?'selected':'').'>unbekannt</OPTION>';
|
||||
echo '</SELECT>';
|
||||
echo '</td></tr>';
|
||||
echo '<tr><td>Staatsbuergerschaft</td><td><SELECT name="nation">';
|
||||
$qry = "SELECT nation_code, kurztext FROM bis.tbl_nation ORDER BY kurztext";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($row->nation_code==$nation)
|
||||
$selected='selected';
|
||||
else
|
||||
$selected='';
|
||||
|
||||
echo "<option value='$row->nation_code' $selected>$row->kurztext</option>";
|
||||
}
|
||||
}
|
||||
echo '</SELECT';
|
||||
echo '</td></tr>';
|
||||
echo '<tr><td>SVNR</td><td><input type="text" id="svnr" size="10" maxlength="10" name="svnr" value="'.$svnr.'" onblur="GeburtsdatumEintragen()" /></td></tr>';
|
||||
echo '<tr><td>Ersatzkennzeichen</td><td><input type="text" id="ersatzkennzeichen" size="10" maxlength="10" name="ersatzkennzeichen" value="'.$ersatzkennzeichen.'" /></td></tr>';
|
||||
echo '<tr><td>Geburtsdatum</td><td><input type="text" id="geburtsdatum" size="10" maxlength="10" name="geburtsdatum" value="'.$geburtsdatum.'" /> (Format dd.mm.JJJJ)</td></tr>';
|
||||
@@ -491,10 +512,18 @@ if($result = pg_query($conn, $qry))
|
||||
echo '</SELECT></td></tr>';
|
||||
echo '</tr><td>Schule ID:</td><td><input type="text" size="3" name="schule_id" value="'.$schule.'" onkeyup="checkschulid(this.value)"></td></tr>';
|
||||
echo '<tr><td></td><td>';
|
||||
if(($geburtsdatum=='' && $vorname=='' && $nachname=='') || $geburtsdatum_error)
|
||||
if(($vorname!='' && $geburtsdatum=='' && $nachname=='')
|
||||
//|| ($vorname=='' && $geburtsdatum=='' && $nachname!='')
|
||||
|| ($nachname=='' && $geburtsdatum=='')
|
||||
|| ($geburtsdatum=='' && $nachname=='' && $vorname=='')
|
||||
|| $geburtsdatum_error)
|
||||
echo '<input type="submit" name="showagain" value="Vorschlag laden">';
|
||||
else
|
||||
{
|
||||
echo '<input type="submit" name="showagain" value="Vorschlag laden">';
|
||||
echo '<input type="submit" name="save" value="Speichern">';
|
||||
}
|
||||
|
||||
|
||||
echo '</td></tr>';
|
||||
echo '</table>';
|
||||
@@ -523,6 +552,13 @@ if($vorname!='' && $nachname!='')
|
||||
$where.=" (LOWER(vorname)=LOWER('".$vorname."') AND LOWER(nachname)=LOWER('".$nachname."'))";
|
||||
}
|
||||
|
||||
if($vorname=='' && $nachname!='')
|
||||
{
|
||||
if($where!='')
|
||||
$where.=' OR';
|
||||
$where.=" (LOWER(nachname)=LOWER('".$nachname."'))";
|
||||
}
|
||||
|
||||
if($where!='')
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_person WHERE $where ORDER BY nachname, vorname, gebdatum";
|
||||
@@ -567,18 +603,36 @@ if($where!='')
|
||||
echo '</table>';
|
||||
echo '<hr>';
|
||||
//Studiengaenge anzeigen
|
||||
$studiengang = new studiengang($conn);
|
||||
$studiengang->getAll('typ, bezeichnung');
|
||||
echo '<table>';
|
||||
$qry = "SELECT *, UPPER(typ::varchar(1) || kurzbz) as kuerzel FROM public.tbl_studiengang
|
||||
WHERE aktiv AND typ in('b','m') ORDER BY typ, bezeichnung";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
echo '<table><tr><td valign="top">';
|
||||
echo '<table>';
|
||||
$lasttyp='';
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
if($lasttyp!=$row->typ)
|
||||
{
|
||||
if($lasttyp!='')
|
||||
echo '</table></td><td><table>';
|
||||
$lasttyp = $row->typ;
|
||||
}
|
||||
echo "<tr><td><input type='checkbox' name='stg_$row->studiengang_kz'></td><td>$row->kuerzel</td><td>$row->bezeichnung</td></tr>";
|
||||
}
|
||||
echo '</table></td></tr></table>';
|
||||
}
|
||||
|
||||
/*
|
||||
foreach ($studiengang->result as $row)
|
||||
{
|
||||
echo "<tr><td><input type='checkbox' name='stg_$row->studiengang_kz'></td><td>$row->kuerzel</td><td>$row->bezeichnung</td></tr>";
|
||||
}
|
||||
echo '</table>';
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
//else
|
||||
// echo 'Zum Erstellen des Vorschlags bitte Geburtsdatum oder Vorname und Nachname eingeben';
|
||||
else
|
||||
echo '<b>Zum Erstellen des Vorschlags bitte Geburtsdatum oder Vorname und Nachname eingeben</b>';
|
||||
|
||||
?>
|
||||
</td>
|
||||
|
||||
@@ -241,11 +241,12 @@ echo '<br>';
|
||||
echo "<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='table-sortable:default'>PersonID</th>
|
||||
<th class='table-sortable:default'>Nachname</th>
|
||||
<th class='table-sortable:default'>Vorname</th>
|
||||
<th class='table-sortable:default'>Geburtsdatum</th>
|
||||
<th class='table-sortable:default'>Studiensemester</th>
|
||||
<th class='table-sortable:default'>Erfassungsdatum</th>
|
||||
<th class='table-sortable:default'>E-Mail</th>
|
||||
<th class='table-sortable:default'>Status</th>
|
||||
<th class='table-sortable:default'>Freigabe</th>
|
||||
<th class='table-sortable:default'>Übernahme</th>
|
||||
@@ -286,11 +287,25 @@ foreach ($preinteressent->result as $row)
|
||||
echo '<tr>';
|
||||
$person = new person($conn);
|
||||
$person->load($row->person_id);
|
||||
echo "<td>$person->person_id</td>";
|
||||
echo "<td>$person->nachname</td>";
|
||||
echo "<td>$person->vorname</td>";
|
||||
echo "<td>".$datum_obj->convertISODate($person->gebdatum)."</td>";
|
||||
//echo "<td>".$datum_obj->convertISODate($person->gebdatum)."</td>";
|
||||
echo "<td>$row->studiensemester_kurzbz</td>";
|
||||
echo "<td>".$datum_obj->formatDatum($row->erfassungsdatum,'d.m.Y')."</td>";
|
||||
//EMail
|
||||
$qry = "SELECT kontakt FROM public.tbl_kontakt WHERE person_id='$person->person_id' AND kontakttyp='email'
|
||||
ORDER BY zustellung DESC LIMIT 1";
|
||||
echo '<td>';
|
||||
if($result_mail = pg_query($conn, $qry))
|
||||
{
|
||||
if($row_mail = pg_fetch_object($result_mail))
|
||||
{
|
||||
echo '<a href="mailto:'.$row_mail->kontakt.'" class="Item">'.$row_mail->kontakt.'</a>';
|
||||
}
|
||||
}
|
||||
echo '</td>';
|
||||
//Status
|
||||
$status='';
|
||||
$prestudent = new prestudent($conn);
|
||||
if($prestudent->getPrestudenten($row->person_id))
|
||||
|
||||
Reference in New Issue
Block a user