diff --git a/cis/private/coodle/coodle_worker.php b/cis/private/coodle/coodle_worker.php
index a16fe553c..8f986e540 100644
--- a/cis/private/coodle/coodle_worker.php
+++ b/cis/private/coodle/coodle_worker.php
@@ -314,6 +314,24 @@ switch($work)
echo $coodletermin->errormsg;
break;
+
+ case 'countTermine':
+ if(isset($_POST['coodle_id']))
+ $coodle_id = $_POST['coodle_id'];
+ else
+ die('CoodleID fehlt');
+
+ $coodle = new coodle();
+ if ($coodle->getTermine($coodle_id))
+ {
+ echo count($coodle->result);
+ }
+ else
+ {
+ echo $coodle->errormsg;
+ }
+
+ break;
default:
die('Invalid Work Parameter');
}
diff --git a/cis/private/coodle/termin.php b/cis/private/coodle/termin.php
index 8f0a2cfb7..dd61878c0 100644
--- a/cis/private/coodle/termin.php
+++ b/cis/private/coodle/termin.php
@@ -76,11 +76,12 @@ if(isset($_POST['action']) && $_POST['action']=='start')
// Start der Umfrage
$coodle_termine = new coodle();
$coodle_termine->getTermine($coodle_id);
- if(count($coodle_termine->result)>0)
+ // Die Terminoption "keine Auswahl wird immer benötigt. Deshalb > 1
+ if(count($coodle_termine->result) > 1)
{
$coodle_ressource = new coodle();
$coodle_ressource->getRessourcen($coodle_id);
- if(count($coodle_ressource->result)>0)
+ if(count($coodle_ressource->result) > 0)
{
// Status aendern
$coodle->coodle_status_kurzbz='laufend';
@@ -135,16 +136,18 @@ if(isset($_POST['action']) && $_POST['action']=='start')
Bitte folgen Sie dem Link, um Ihre Terminwünsche bekannt zu geben:
Link zur Terminumfrage
+ '.($coodle->beschreibung != '' ? '
Beschreibung:
- '.$coodle->beschreibung.'
+ '.$coodle->beschreibung.'
' : '').'
'.nl2br($sign);
$text=$anrede."!\n\nSie wurden zu einer Terminumfrage zum Thema \"".$db->convert_html_chars($coodle->titel)."\" eingeladen.\n
Bitte folgen Sie dem Link, um Ihre Terminwünsche bekannt zu geben:\n
$link\n\n
+ ".($coodle->beschreibung != "" ? "
Beschreibung:\n\n
".strip_tags($coodle->beschreibung)."
- \n\n
+ \n\n" : "")."
$sign";
$mail = new mail($email, $von,'Terminumfrage - '.$coodle->titel, $text);
@@ -317,7 +320,6 @@ echo '
- '.$p->t('coodle/ressourcenBeschreibung').'
+ '.$p->t('coodle/ressourcenBeschreibung');
+ echo '
'.$p->t('coodle/externePersonhinzu').'
'.$p->t('coodle/startBeschreibung').' diff --git a/cis/public/ical_coodle.php b/cis/public/ical_coodle.php new file mode 100644 index 000000000..a4be8b52f --- /dev/null +++ b/cis/public/ical_coodle.php @@ -0,0 +1,135 @@ + + */ +/** + * Dieses Script liefert die iCal Informationen für die vorreservierten Coodle Termine + * + * Aufruf: http://www.example.com/cis/public/ical_coodle.php/[uid] + */ +require_once('../../config/cis.config.inc.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/coodle.class.php'); +require_once('../../include/ical.class.php'); + +$uid = mb_substr($_SERVER['PATH_INFO'],1); + +$bn = new benutzer(); +if(!$bn->load($uid)) + die('User invalid'); + +header("Content-Type: text/calendar; charset=UTF-8"); + +echo "BEGIN:VCALENDAR\n"; +echo "VERSION:2.0\n"; +echo "PRODID:-//FH TECHNIKUM WIEN//EN\n"; +//echo "METHOD:PUBLISH\n"; +//echo 'ORGANIZER;CN=',$bn->vorname,' ',$bn->nachname,':mailto:',$uid,'@',DOMAIN,"\n"; +//echo 'DTSTAMP;TZID=Europe/Vienna:',date('Ymd', mktime(date('H'),date('i'),date('s'),date('m'),date('d')-5,date('Y'))),'T',date('Hms'),"\n"; +echo 'DTSTART;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')-5,date('Y'))),"T000000\n"; +echo 'DTEND;TZID=Europe/Vienna:',date('Ymd', mktime(0,0,0,date('m'),date('d')+30,date('Y'))),"T000000\n"; +echo "BEGIN:VTIMEZONE +TZID:Europe/Vienna +BEGIN:DAYLIGHT +TZOFFSETFROM:+0100 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU +DTSTART:19810329T020000 +TZNAME:GMT+02:00 +TZOFFSETTO:+0200 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+0200 +RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU +DTSTART:19961027T030000 +TZNAME:GMT+01:00 +TZOFFSETTO:+0100 +END:STANDARD +END:VTIMEZONE\n"; +//echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n"; +echo "BEGIN:VEVENT"; +// Alle Umfragen holen an denen der User beteiligt ist +$umfragen = new coodle(); +$umfragen->getCoodleFromUser($uid); +$i = 0; +foreach($umfragen->result as $umfrage) +{ + if($umfrage->coodle_status_kurzbz=='laufend') + { + // Bei laufenden Umfragen werden alle angekreuzten Vorschlaege zur FreeBusy hinzugefuegt + $ressource = new coodle(); + if($ressource_id = $ressource->RessourceExists($umfrage->coodle_id, $uid)) + { + // Terminvorschlaege laden die angekreuzt wurden + $termine = new coodle(); + $termine->getRessourceTermin($umfrage->coodle_id, $ressource_id); + foreach($termine->result as $termin) + { + //Start und Ende berechnen + $date = new DateTime($termin->datum.' '.$termin->uhrzeit); + $dtstart = $date->format('Ymd\THis'); + $interval =new DateInterval('PT'.$umfrage->dauer.'M'); + $date->add($interval); + $uhrzeit_ende = $date->format('H:i:s'); + $dtende = $date->format('Ymd\THis'); + + if ($i > 0) + { + echo "\nBEGIN:VEVENT"; + } + echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende.""; + echo "\nSUMMARY:Coodle Terminoption"; + echo "\nDTSTART;TZID=Europe/Vienna:$dtstart"; + echo "\nDTEND;TZID=Europe/Vienna:$dtende"; + echo "\nTRANSP:OPAQUE"; + echo "\nEND:VEVENT"; + + $i++; + } + } + } + // Bei abgeschlossene Umfragen wird ein iCal File mitgeschickt, + // deshalb müssen diese Termine nicht berücksichtigt werden + /*elseif($umfrage->coodle_status_kurzbz=='abgeschlossen') + { + // Bei abgeschlossenen Umfragen wird nur mehr der ausgewaehlte Termin zur FreeBusy hinzugefuegt + $termin = new coodle(); + $coodle_termin_id=$termin->getTerminAuswahl($umfrage->coodle_id); + if($termin->loadTermin($coodle_termin_id)) + { + //Start und Ende berechnen + $date = new DateTime($termin->datum.' '.$termin->uhrzeit); + $dtstart = $date->format('Ymd\THis'); + $interval =new DateInterval('PT'.$umfrage->dauer.'M'); + $date->add($interval); + $uhrzeit_ende = $date->format('H:i:s'); + $dtende = $date->format('Ymd\THis'); + + echo "\nBEGIN:VEVENT"; + echo "\nSUMMARY:Coodle Terminzusage"; + echo "\nDTSTART;TZID=Europe/Vienna: $dtstart"; + echo "\nDTEND;TZID=Europe/Vienna: $dtende"; + echo "\nTRANSP:OPAQUE"; + echo "\nEND:VEVENT"; + } + }*/ + // stornierte Umfragen werden nicht beruecksichtigt +} + +echo "\nEND:VCALENDAR"; +?> \ No newline at end of file diff --git a/include/coodle.class.php b/include/coodle.class.php index deee3ef63..41394dcb5 100644 --- a/include/coodle.class.php +++ b/include/coodle.class.php @@ -1117,7 +1117,7 @@ class coodle extends basis_db return false; } - $qry ="UPDATE campus.tbl_coodle_Termin set auswahl='false' + $qry ="UPDATE campus.tbl_coodle_termin set auswahl='false' WHERE coodle_id=".$this->db_add_param($coodle_id, FHC_INTEGER, false).';'; if($result=$this->db_query($qry))