- Reservierung von Räumen nach Abschluss der Umfrage
- Design Anpassungen
- Freebusy für Coodletermine
- Mailversand mit Coodle-Event im Anhang
This commit is contained in:
Andreas Österreicher
2012-11-20 13:27:37 +00:00
parent ae3fedb6ea
commit e21d3a2af2
14 changed files with 714 additions and 196 deletions
+71 -2
View File
@@ -54,6 +54,8 @@ class coodle extends basis_db
public $datum; // date
public $uhrzeit; // date
public $auswahl; // boolean
public $status_arr;
/**
* Konstruktor
@@ -648,6 +650,50 @@ class coodle extends basis_db
return false;
}
/**
*
* Laedt alle Termine einer Umfrage zu denen eine Ressource zugesagt hat
* @param $coodle_id ID der Umfrage
* @param $ressource_id ID der Ressource
*/
public function getRessourceTermin($coodle_id, $ressource_id)
{
$qry = "SELECT
*
FROM
campus.tbl_coodle_ressource_termin
JOIN campus.tbl_coodle_termin USING(coodle_termin_id)
WHERE
coodle_id=".$this->db_add_param($coodle_id, FHC_INTEGER)."
AND coodle_ressource_id=".$this->db_add_param($ressource_id, FHC_INTEGER).";";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new coodle();
$obj->coodle_id = $row->coodle_id;
$obj->coodle_termin_id = $row->coodle_termin_id;
$obj->datum = $row->datum;
$obj->uhrzeit = $row->uhrzeit;
$obj->auswahl = $this->db_parse_bool($row->auswahl);
$obj->coodle_ressource_id = $row->coodle_ressource_id;
$obj->coodle_termin_id = $row->coodle_termin_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Überprüfut ob der Benutzer entweder der Ersteller oder eine Ressource der Coodleumfrage ist
* @param Integer $coodle_id
@@ -675,9 +721,10 @@ class coodle extends basis_db
$qry.= ' uid = '.$this->db_add_param($uid, FHC_STRING, false);
if($zugangscode != '')
$qry.= ' zugangscode ='.$this->db_add_param($zugangscode, FHC_STRING, false);
$qry.= ' zugangscode ='.$this->db_add_param($zugangscode, FHC_STRING, false);
$qry.="UNION SELECT 1 FROM campus.tbl_coodle WHERE ersteller_uid=".$this->db_add_param($uid).";";
$qry.=';';
if($result = $this->db_query($qry))
{
@@ -1107,5 +1154,27 @@ class coodle extends basis_db
return false;
}
}
/**
* Laedt alle Stati
*/
public function loadStatus()
{
$qry = "SELECT * FROM campus.tbl_coodle_status";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$this->status_arr[$row->coodle_status_kurzbz]=$row->bezeichnung;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+4 -4
View File
@@ -83,7 +83,7 @@ class ical extends basis_db
$dtend='';
}
}
elseif(mb_strstr($row,'FREEBUSY:'))
elseif(mb_strpos($row,'FREEBUSY')===0)
$this->result[$idx].=$row."\n";
}
}
@@ -114,13 +114,13 @@ class ical extends basis_db
foreach($rows as $row)
{
if(mb_strstr($row,'FREEBUSY:'))
if(mb_strpos($row,'FREEBUSY')===0)
{
$len = mb_strlen($row);
$slashpos = mb_strpos($row, '/');
$fblen = mb_strlen('FREEBUSY:');
$dtstart = mb_substr($row, $fblen, $len-$slashpos);
$doppelpunktpos = mb_strpos($row, ':');
$dtstart = mb_substr($row, $doppelpunktpos+1, $len-$slashpos);
$dtend = mb_substr($row, $slashpos+1);
$this->dtresult[]=array('dtstart'=>trim($dtstart),'dtend'=>trim($dtend));
}
+34 -3
View File
@@ -57,6 +57,7 @@ class mail
$this->CC_revievers='';
$this->BCC_recievers='';
$attachments='';
$this->attachmentsplain='';
}
/**
@@ -92,7 +93,7 @@ class mail
$header .= 'X-Mailer: FHComplete V1'.$eol;
$header .= 'Mime-Version: 1.0'.$eol;
$header .= "Content-Type: multipart/related; boundary=\"$mime_boundary_mixed\"".$eol;
$header .= "Content-Type: multipart/mixed; boundary=\"$mime_boundary_mixed\"".$eol;
// Body
$mailbody = "";
@@ -122,7 +123,25 @@ class mail
$mailbody .= $eol;
$mailbody .= "--$mime_boundary_mixed";
// Attachments
// Attachments Plain
if (is_array($this->attachmentsplain) && (count($this->attachmentsplain) > 0))
{
foreach ($this->attachmentsplain as $attachment)
{
$dispo = 'attachment';
$mailbody .= $eol;
$mailbody .= "Content-Disposition: $dispo; filename={$attachment[2]}".$eol;
$mailbody .= "Content-Type: {$attachment[1]}; name={$attachment[2]}".$eol;
$mailbody .= 'Content-Transfer-Encoding: '.$attachment[3].$eol;
$mailbody .= $eol;
$mailbody .= $attachment[0];
$mailbody .= $eol;
$mailbody .= "--$mime_boundary_mixed";
}
}
// Attachments Binary
if (is_array($this->attachments) && (count($this->attachments) > 0))
{
foreach ($this->attachments as $attachment)
@@ -177,7 +196,7 @@ class mail
}
/**
* Fuegt ein Attachment zum Mail hinzu
* Fuegt ein Binary Attachment zum Mail hinzu
* $file Dateiname des hinzuzufuegenden Files
* $type MIME Type "application/xls"
* $name Anzeigename des Files
@@ -206,6 +225,18 @@ class mail
return true;
}
/**
* Fuegt ein Attachment zum Mail hinzu
* $content
* $type MIME Type "application/xls"
* $name Anzeigename des Files
* $ContentID die ContentID der Datei falls sie als inline-image genutzt wird
*/
public function addAttachmentPlain($content, $type, $name, $encoding='8bit')
{
$this->attachmentsplain[] = Array($content, $type, $name, $encoding);
return true;
}
/**
* Setzt den ReplyTo
*/
+29
View File
@@ -92,5 +92,34 @@ class stunde extends basis_db
return false;
}
}
/**
*
* Liefert die Stunden innerhalb der uebergebenen Uhrzeiten
* @param $uhrzeit_start
* @param $uhrzeit_ende
* @return array $stunden
*/
public function getStunden($uhrzeit_start, $uhrzeit_ende)
{
$stunden=array();
$qry = "SELECT
*
FROM
lehre.tbl_stunde
WHERE
(beginn BETWEEN ".$this->db_add_param($uhrzeit_start)." AND ".$this->db_add_param($uhrzeit_ende).")
OR (ende BETWEEN ".$this->db_add_param($uhrzeit_start)." AND ".$this->db_add_param($uhrzeit_ende).");";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$stunden[] = $row->stunde;
}
}
return $stunden;
}
}
?>
+33
View File
@@ -219,5 +219,38 @@ class stundenplan extends basis_db
return false;
}
}
/**
*
* Prueft ob ein Stundenplaneintrag fuer den gewaehlten Ort/Datum/Stunde vorhanden ist
* @param $ort_kurzbz
* @param $datum
* @param $stunde
* @return true wenn belegt, false wenn frei, false+errormsg bei Fehler
*/
public function isBelegt($ort_kurzbz, $datum, $stunde)
{
$qry = "SELECT
1
FROM
lehre.tbl_$this->stpl_table
WHERE
ort_kurzbz=".$this->db_add_param($ort_kurzbz)."
AND datum=".$this->db_add_param($datum)."
AND stunde=".$this->db_add_param($stunde).";";
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result)>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>