diff --git a/content/projekt/ressource.overlay.xul.php b/content/projekt/ressource.overlay.xul.php
index 6e2b09066..07c6f555f 100755
--- a/content/projekt/ressource.overlay.xul.php
+++ b/content/projekt/ressource.overlay.xul.php
@@ -25,6 +25,11 @@ header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
+require_once('../../include/projektbenutzer.class.php');
+$pb= new projektbenutzer();
+$pb->load();
+$pb->getUIDs();
+$datum=$pb->jump_week(time(),-30);
echo '';
?>
@@ -76,16 +81,20 @@ echo '';
';
- ?>
-
-
-
- ';
+ echo '';
?>
+ uids);
+ foreach ($pb->uids as $uid)
+ {
+ echo '
+ ';
+ for ($j=0; $j<20; $j++)
+ echo '';
+ echo '
';
+ }
+ ?>
diff --git a/include/basis.class.php b/include/basis.class.php
index 9c52ad9ad..729d680ab 100644
--- a/include/basis.class.php
+++ b/include/basis.class.php
@@ -16,9 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger ,
- * Andreas Oesterreicher and
- * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
- * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
+ * Andreas Oesterreicher
*
*/
@@ -75,5 +73,33 @@ class basis
}
return $string;
}
+
+ /**
+ * Berechnet die Kalenderwoche eines gegebenen Datums
+ * Datum muss timestamp uebergeben werden
+ * @param $datum
+ */
+ function kw($datum)
+ {
+ //$woche=date("W",mktime($date[hours],$date[minutes],$date[seconds],$date[mon],$date[mday],$date[year]));
+ if (!date("w",$datum))
+ $datum+=86400;
+ //echo date("l j.m.Y - W",$datum);
+ $woche=date("W",$datum);
+ //if ($woche==53)
+ // $woche=1;
+ return $woche;
+ }
+
+ function jump_week($datum, $wochen)
+ {
+ $stunde_vor=date("G",$datum);
+ // Eine Woche sind 604800 Sekunden
+ $datum+=604800*$wochen;
+ $stunde_nach=date("G",$datum);
+ if ($stunde_nach!=$stunde_vor)
+ $datum+=3600;
+ return $datum;
+ }
}
?>
\ No newline at end of file
diff --git a/include/projektbenutzer.class.php b/include/projektbenutzer.class.php
new file mode 100755
index 000000000..70bc7c047
--- /dev/null
+++ b/include/projektbenutzer.class.php
@@ -0,0 +1,431 @@
+
+ */
+/**
+ * Klasse projektbenutzer
+ * @create 08-08-2011
+ */
+require_once(dirname(__FILE__).'/basis_db.class.php');
+
+class projektbenutzer extends basis_db
+{
+ public $new; // boolean
+ public $result = array(); // adresse Objekt
+
+ //Tabellenspalten
+ public $projektbenutzer_id; // integer
+ public $projekt_kurzbz; // string
+ public $uid; // string
+ public $funktion_kurzbz; // string
+ public $nummer; // string
+ public $titel; // string
+ public $beschreibung; // string
+ public $beginn; // date
+ public $ende; // date
+ public $oe_kurzbz; // string
+ public $ext_id; // integer
+ public $insertamum; // timestamp
+ public $insertvon; // bigint
+ public $updateamum; // timestamp
+ public $updatevon; // bigint
+
+
+ // Return attribute
+ public $uids = array();
+ public $kw = array();
+
+ /**
+ * Konstruktor
+ * @param $projekt_kurzbz ID der Projektarbeit, die geladen werden soll (Default=null)
+ */
+ public function __construct($projekt_kurzbz=null)
+ {
+ parent::__construct();
+
+ if($projekt_kurzbz != null)
+ $this->loadProjekt($projekt_kurzbz);
+ }
+
+ /**
+ * Laedt die Projektbenutzer mit der ID $projekt_kurzbz
+ * @param $projekt_kurzbz ID der zu ladenden Projektbenutzer
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load($von=null, $bis=null)
+ {
+ $qry = "SELECT *, now() AS now FROM fue.tbl_projektbenutzer JOIN fue.tbl_projekt USING (projekt_kurzbz)
+ WHERE (beginnnow() OR ende IS NULL);";
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new projektbenutzer();
+ $obj->projektbenutzer_id = $row->projektbenutzer_id;
+ $obj->projekt_kurzbz = $row->projekt_kurzbz;
+ $obj->uid = $row->uid;
+ $obj->funktion_kurzbz = $row->funktion_kurzbz;
+ $obj->nummer= $row->nummer;
+ $obj->titel= $row->titel;
+ $obj->beschreibung= $row->beschreibung;
+ $obj->beginn= $row->beginn;
+ $obj->ende = $row->ende;
+ $obj->oe_kurzbz= $row->oe_kurzbz;
+
+ $this->result[] = $obj;
+ }
+ return false;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Ermittelt die User aus $result und vereinfacht (Unique)
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function getUIDs()
+ {
+ foreach($this->result as $obj)
+ $this->uids[]=$obj->uid;
+ $this->uids=array_unique($this->uids, SORT_REGULAR);
+ return asort($this->uids, SORT_REGULAR);
+ //return true;
+ }
+ /**
+ * Ermittelt die User aus $result und vereinfacht (Unique)
+ * @return true wenn ok, false im Fehlerfall
+ */
+
+ public function getProjektePerUID($uid,$date=null)
+ {
+ $count=0;
+ foreach($this->result as $obj)
+ if ($uid==$obj->uid) // Wenn uid im Projekt ist dann
+ if( !is_null($date) && ( $date>strtotime($obj->beginn) || is_null($obj->beginn) ) && ( $dateende) || is_null($obj->ende) ) )
+ $count++;
+ return $count;
+ }
+
+ /**
+ * Laedt die Projektbenutzer mit der ID $projekt_kurzbz
+ * @param $projekt_kurzbz ID der zu ladenden Projektbenutzer
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function loadProjekt($projekt_kurzbz)
+ {
+
+
+ $qry = "SELECT * FROM fue.tbl_projekt WHERE projekt_kurzbz=".$this->addslashes($projekt_kurzbz);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->projekt_kurzbz = $row->projekt_kurzbz;
+ $this->nummer= $row->nummer;
+ $this->titel= $row->titel;
+ $this->beschreibung= $row->beschreibung;
+ $this->beginn= $row->beginn;
+ $this->ende = $row->ende;
+ $this->oe_kurzbz= $row->oe_kurzbz;
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Datensatz wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Projektarbeit mit der ID $projekt_kurzbz
+ * @param $projekt_kurzbz ID der zu ladenden Projektarbeit
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function getProjekte($oe=null,$uid=null)
+ {
+ $qry = 'SELECT * FROM fue.tbl_projekt';
+ if (!is_null($oe))
+ $qry.= " WHERE oe_kurzbz='$oe'";
+ $qry.= ' ORDER BY oe_kurzbz;';
+ //echo $qry;
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new projekt();
+
+ $obj->projekt_kurzbz = $row->projekt_kurzbz;
+ $obj->nummer = $row->nummer;
+ $obj->titel = $row->titel;
+ $obj->beschreibung = $row->beschreibung;
+ $obj->beginn = $row->beginn;
+ $obj->ende = $row->ende;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Prueft die Variablen auf Gueltigkeit
+ * @return true wenn ok, false im Fehlerfall
+ */
+ protected function validate()
+ {
+
+ //Gesamtlaenge pruefen
+ if ($this->projekt_kurzbz==null)
+ {
+ $this->errormsg='Projekt kurzbz darf nicht NULL sein!';
+ }
+ if ($this->oe_kurzbz==null)
+ {
+ $this->errormsg='OE kurbz darf nicht NULL sein!';
+ }
+ if(mb_strlen($this->projekt_kurzbz)>16)
+ {
+ $this->errormsg = 'Projektyp_kurzbz darf nicht länger als 16 Zeichen sein';
+ return false;
+ }
+ if(mb_strlen($this->nummer)>8)
+ {
+ $this->errormsg = 'Nummer darf nicht länger als 8 Zeichen sein';
+ return false;
+ }
+ if(mb_strlen($this->titel)>256)
+ {
+ $this->errormsg = 'Titel darf nicht länger als 256 Zeichen sein';
+ return false;
+ }
+
+ $this->errormsg = '';
+ return true;
+ }
+
+ /**
+ * Speichert den aktuellen Datensatz in die Datenbank
+ * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
+ * andernfalls wird der Datensatz mit der ID in $projekt_kurzbz aktualisiert
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function save($new=null)
+ {
+ //Variablen pruefen
+ if(!$this->validate())
+ return false;
+
+ if($new==null)
+ $new = $this->new;
+
+ if($new)
+ {
+ //Neuen Datensatz einfuegen
+
+ $qry='BEGIN; INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, oe_kurzbz) VALUES('.
+ $this->addslashes($this->projekt_kurzbz).', '.
+ $this->addslashes($this->nummer).', '.
+ $this->addslashes($this->titel).', '.
+ $this->addslashes($this->beschreibung).', '.
+ $this->addslashes($this->beginn).', '.
+ $this->addslashes($this->ende).', '.
+ $this->addslashes($this->oe_kurzbz).');';
+ }
+ else
+ {
+ //Updaten des bestehenden Datensatzes
+
+ $qry='UPDATE fue.tbl_projekt SET '.
+ 'projekt_kurzbz='.$this->addslashes($this->projekt_kurzbz).', '.
+ 'nummer='.$this->addslashes($this->nummer).', '.
+ 'titel='.$this->addslashes($this->titel).', '.
+ 'beschreibung='.$this->addslashes($this->beschreibung).', '.
+ 'beginn='.$this->addslashes($this->beginn).', '.
+ 'ende='.$this->addslashes($this->ende).', '.
+ 'oe_kurzbz='.$this->addslashes($this->oe_kurzbz).' '.
+ 'WHERE projekt_kurzbz='.$this->addslashes($this->projekt_kurzbz).';';
+ }
+
+ if($this->db_query($qry))
+ {
+ if($new)
+ $this->db_query('COMMIT');
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Daten'.$qry;
+ return false;
+ }
+ }
+
+ /**
+ * Loescht den Datenensatz mit der ID die uebergeben wird
+ * @param $projekt_kurzbz ID die geloescht werden soll
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function delete($projekt_kurzbz)
+ {
+ if(!is_numeric($projekt_kurzbz))
+ {
+ $this->errormsg = 'Projektarbeit_id ist ungueltig';
+ return true;
+ }
+
+ $qry = "DELETE FROM lehre.tbl_projektarbeit WHERE projekt_kurzbz='$projekt_kurzbz'";
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Loeschen des Datensatzes';
+ 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;
+ }
+ }
+}
+?>