- Projekttasks können per klick im Tree erledigt werden

- RDF Klasse Erweiterung für verschachtelte Sequenzen
- Projektphase RDF wird jetzt über RDF Klasse erzeugt
This commit is contained in:
Andreas Österreicher
2011-09-26 15:04:15 +00:00
parent eaed72af40
commit e19eef5fc6
12 changed files with 333 additions and 334 deletions
+25 -124
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2007 Technikum-Wien
/* Copyright (C) 2011 FH 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
@@ -15,7 +15,8 @@
* 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>
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
*/
/**
* Klasse projekttask
@@ -29,18 +30,18 @@ class projekttask extends basis_db
public $result = array(); // adresse Objekt
//Tabellenspalten
public $projekttask_id; //integer
public $projektphase_id; //integer
public $bezeichnung; //string
public $beschreibung; //string
public $aufwand; //string
public $projekttask_id; // integer
public $projektphase_id;// integer
public $bezeichnung; // string
public $beschreibung; // string
public $aufwand; // string
public $mantis_id; // integer
//public $beginn; //date
//public $ende; //date
public $insertamum; // timestamp
public $insertvon; // bigint
public $insertvon; // string
public $updateamum; // timestamp
public $updatevon; // bigint
public $updatevon; // string
public $erledigt; // boolean
public $projekttask_fk; // integer
/**
@@ -84,6 +85,8 @@ class projekttask extends basis_db
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->erledigt = ($row->erledigt=='t'?true:false);
$this->projekttask_fk = $row->projekttask_fk;
return true;
}
@@ -109,9 +112,9 @@ class projekttask extends basis_db
public function getProjekttasks($projektphase_id,$projekt_kurzbz=null)
{
if (!is_null($projektphase_id))
$qry = 'SELECT * FROM fue.tbl_projekttask WHERE projektphase_id='.$projektphase_id.';';
else
$qry='';
$qry = 'SELECT * FROM fue.tbl_projekttask WHERE projektphase_id='.$projektphase_id.';';
else
$qry='';
if($this->db_query($qry))
{
@@ -131,6 +134,8 @@ class projekttask extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->erledigt = ($row->erledigt=='t'?true:false);
$obj->projekttask_fk = $row->projekttask_fk;
$this->result[] = $obj;
}
@@ -185,13 +190,15 @@ class projekttask extends basis_db
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO fue.tbl_projekttask (projektphase_id, bezeichnung, beschreibung, aufwand, mantis_id, insertamum,
$qry='BEGIN; INSERT INTO fue.tbl_projekttask (projektphase_id, bezeichnung, beschreibung, aufwand, mantis_id, projekttask_fk, erledigt, insertamum,
insertvon, updateamum, updatevon) VALUES('.
$this->addslashes($this->projektphase_id).', '.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->aufwand).', '.
$this->addslashes($this->mantis_id).',
$this->addslashes($this->mantis_id).','.
$this->addslashes($this->projekttask_fk).','.
($this->erledigt?'true':'false').',
now(), '.
$this->addslashes($this->insertvon).',
now(), '.
@@ -205,6 +212,8 @@ class projekttask extends basis_db
'beschreibung='.$this->addslashes($this->beschreibung).', '.
'aufwand='.$this->addslashes($this->aufwand).', '.
'mantis_id='.$this->addslashes($this->mantis_id).', '.
'projekttask_fk='.$this->addslashes($this->projekttask_fk).', '.
'erledigt='.($this->erledigt?'true':'false').', '.
'updateamum= now(), '.
'updatevon='.$this->addslashes($this->updatevon).' '.
'WHERE projekttask_id='.$this->addslashes($this->projekttask_id).';';
@@ -273,113 +282,5 @@ class projekttask extends basis_db
return false;
}
}
/**
* Laedt alle Projektarbeiten eines Studenten
* @param student_uid
* @return true wenn ok, false wenn Fehler
*/
public function getProjektarbeit($student_uid)
{
$qry = "SELECT * FROM lehre.tbl_projektarbeit WHERE student_uid='".addslashes($student_uid)."'";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new projektarbeit();
$obj->projekt_kurzbz = $row->projekt_kurzbz;
$obj->projekttyp_kurzbz = $row->projekttyp_kurzbz;
$obj->titel = $row->titel;
$obj->titel_english = $row->titel_english;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->firma_id = $row->firma_id;
$obj->note = $row->note;
$obj->punkte = $row->punkte;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->faktor = $row->faktor;
$obj->freigegeben = ($row->freigegeben=='t'?true:false);
$obj->gesperrtbis = $row->gesperrtbis;
$obj->stundensatz = $row->stundensatz;
$obj->gesamtstunden = $row->gesamtstunden;
$obj->themenbereich = $row->themenbereich;
$obj->anmerkung = $row->anmerkung;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt alle Projektarbeiten eines Studienganges/Studiensemesters
* @param studiengang_kz, studiensemester_kurzbz
* @return true wenn ok, false wenn Fehler
*/
public function getProjektarbeitStudiensemester($studiengang_kz, $studiensemester_kurzbz)
{
$qry = "SELECT
tbl_projektarbeit.*
FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND
tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new projektarbeit();
$obj->projekt_kurzbz = $row->projekt_kurzbz;
$obj->projekttyp_kurzbz = $row->projekttyp_kurzbz;
$obj->titel = $row->titel;
$obj->titel_english = $row->titel_english;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->firma_id = $row->firma_id;
$obj->note = $row->note;
$obj->punkte = $row->punkte;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->faktor = $row->faktor;
$obj->freigegeben = ($row->freigegeben=='t'?true:false);
$obj->gesperrtbis = $row->gesperrtbis;
$obj->stundensatz = $row->stundensatz;
$obj->gesamtstunden = $row->gesamtstunden;
$obj->themenbereich = $row->themenbereich;
$obj->anmerkung = $row->anmerkung;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+104 -19
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
/* Copyright (C) 2011 FH 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
@@ -15,26 +15,34 @@
* 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>
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
*/
/**
* RDF Klasse
*
* Hilfsfunktionen für die Generierung von RDF-Dateien
*
*/
class rdf
{
// Header Variablen
public $content_type='Content-type: application/xhtml+xml'; // string
public $xml_header='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; // string
public $xml_ns; // string
protected $rdf_url; // string
protected $rdf_url; // string
protected static $rdf_text;
protected static $nl="\n";
protected static $tb="\t";
// Objekt Variablen
protected $counter=0; // int
public $obj_id; // string
protected $counter=0;
public $obj_id;
public $obj = array();
public $attr = array(); // string
public $attr = array();
protected $childs = array();
protected $sequence = array();
/**
* Konstruktor - Uebergibt die Connection und laedt optional eine Reservierung
* @param $reservierung_id
@@ -46,11 +54,10 @@ class rdf
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
* Erstellt ein neues RDF Description Objekt
*
* @return index des neuen Objekts
*/
public function newObjekt($id)
{
$this->obj[$this->counter] = new rdf();
@@ -58,12 +65,21 @@ class rdf
return $this->counter-1;
}
/**
* Setzt die ID eines Objektes
*
* @param $id
*/
public function setObjID($id)
{
$this->obj_id=$id;
return true;
}
/**
* Sendet die HTTP-Header der RDF Datei
* @param $cache
*/
public function sendHeader($cache=false)
{
@@ -82,6 +98,12 @@ class rdf
return true;
}
/**
* Setzt die Werte
* @param $name
* @param $value
* @param $cdata
*/
public function setAttribut($name,$value,$cdata=true)
{
$this->attr[$this->counter]->name=$name;
@@ -92,30 +114,93 @@ class rdf
return true;
}
/**
* Erzeugt den RDF Header aus den bestehenden Daten
*/
public function createRdfHeader()
{
$this->rdf_text="\n".'<RDF:RDF'."\n\t"
.'xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'."\n\t".'xmlns:'.$this->xml_ns.'="'.$this->rdf_url.'/rdf#"'."\n".'>'."\n\t"
.'<RDF:Seq about="'.$this->rdf_url.'">'."\n";
.'xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'."\n\t".'xmlns:'.$this->xml_ns.'="'.$this->rdf_url.'/rdf#"'."\n".'>'."\n\t";
}
/**
* Erzeugt die Descriptions aus den bestehenden Daten
*/
public function createRdfData()
{
foreach ($this->obj as $obj)
{
$this->rdf_text.="\n\t".'<RDF:li>'
."\n\t\t".'<RDF:Description id="'.$obj->obj_id.'" about="'.$this->rdf_url.'/'.$obj->obj_id.'" >';
$this->rdf_text.="\n\t\t".'<RDF:Description id="'.$obj->obj_id.'" about="'.$this->rdf_url.'/'.$obj->obj_id.'" >';
foreach ($obj->attr as $attr)
$this->rdf_text.="\n\t\t\t<".$this->xml_ns.':'.$attr->name.'><![CDATA['.$attr->value.']]></'.$this->xml_ns.':'.$attr->name.'>';
$this->rdf_text.="\n\t\t".'</RDF:Description>'."\n\t".'</RDF:li>';
$this->rdf_text.="\n\t\t".'</RDF:Description>';
}
}
/**
* Fuegt ein Objekt zur Sequence hinzu
* Wenn eine Parent_id uebergeben wird, wird das Objekt unterhalb dieses Eintrags
* angehängt
*
* @param $id
* @param $parent_id
*/
public function addSequence($id, $parent_id=null)
{
if(!is_null($parent_id))
{
$this->childs[$parent_id][]=$id;
}
else
{
$this->sequence[]=$id;
}
}
/**
* Erzeugt die Sequenz
* Wenn eine ID uebergeben wird, wird nur die Sequenz unterhalb dieser ID erzeugt
*
* @param $id
*/
function createRDFSequence($id=null)
{
if(is_null($id))
{
$this->rdf_text.='<RDF:Seq about="'.$this->rdf_url.'">'."\n";
foreach ($this->sequence as $id)
{
$this->createRDFSequence($id);
}
$this->rdf_text.='</RDF:Seq>'."\n";
}
else
{
$this->rdf_text.="\n\t".'<RDF:li RDF:resource="'.$this->rdf_url.'/'.$id.'" >';
if(isset($this->childs[$id]))
{
$this->rdf_text.='<RDF:Seq about="'.$this->rdf_url.'/'.$id.'">'."\n";
foreach($this->childs[$id] as $childid)
{
$this->createRDFSequence($childid);
}
$this->rdf_text.='</RDF:Seq>'."\n";
}
$this->rdf_text.='</RDF:li>';
}
}
/**
* Generiert den RDF Footer
*/
public function createRdfFooter()
{
$this->rdf_text.='</RDF:Seq>'."\n".'</RDF:RDF>'."\n\t";
$this->rdf_text.='</RDF:RDF>'."\n\t";
}
/**
* Generiert das RDF
*/
public function sendRdfText()
{
//echo $this->rdf_text;
@@ -123,7 +208,7 @@ class rdf
{
$this->createRdfHeader();
$this->createRdfData();
//$this->createRdfSequence();
$this->createRdfSequence();
$this->createRdfFooter();
}
echo $this->rdf_text;