summaryrefslogtreecommitdiffstats
path: root/application/controllers/EventController.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/controllers/EventController.php')
-rwxr-xr-xapplication/controllers/EventController.php390
1 files changed, 314 insertions, 76 deletions
diff --git a/application/controllers/EventController.php b/application/controllers/EventController.php
index 53d866d..6e67617 100755
--- a/application/controllers/EventController.php
+++ b/application/controllers/EventController.php
@@ -105,8 +105,23 @@ class EventController extends Zend_Controller_Action
$bootosobj->setSource(sprintf("%s", $bootos->source));
$bootosobj->setTitle(sprintf("%s", $bootos->title));
$bootoslist[$bootosobj->getID()] = $bootosobj;
+ foreach($bootos->configs->config as $config) {
+ $configobj = new Application_Model_Config();
+ $configobj->setID(sprintf("%s", $config->configid));
+ $configobj->setBootosID(sprintf("%s", $bootosobj->getID()));
+ $configobj->setCreated(sprintf("%s", $config->created));
+ $configobj->setMembershipID(sprintf("%s", $config->membershipid));
+ $configobj->setDescription(sprintf("%s", $config->description));
+ $configobj->setGroupID(sprintf("%s", $config->groupid));
+ $configobj->setTitle(sprintf("%s", $config->title));
+ $configobj->setVisible(sprintf("%s", $config->visible));
+ if($configobj->getVisible()) {
+ $configlist[$bootosobj->getID()][$configobj->getID()] = $configobj;
+ }
+ }
}
}
+
if(!isset($this->userIDsNamespace['poolID'])) {
$poolApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getpools'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
$poolXMLString = $poolApiResult['http-body'];
@@ -147,38 +162,58 @@ class EventController extends Zend_Controller_Action
}
}
if(isset($this->userIDsNamespace['poolID'])) {
- $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID, 'poolID' => $this->userIDsNamespace['poolID']));
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID, 'poolID' => $this->userIDsNamespace['poolID']));
} else {
- $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'poollist' => $poollist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID));
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'poollist' => $poollist, 'start' => $start, 'end' => $end, 'defaultEventCategoryID' => $defaultEventCategoryID));
}
} else {
- $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, $this->getRequest()->getParams()));
+ $addForm = new Application_Form_EventAdd(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'repeatendlist' => $repeatendlist, 'repeattypelist' => $repeattypelist, 'start' => $start, 'end' => $end, $this->getRequest()->getParams()));
$params = $this->getRequest()->getParams();
if(!isset($params['pbs_poolID'])) {
$params['pbs_poolID'] = $this->userIDsNamespace['poolID'];
}
if ($addForm->isValid($params)) {
+ $configName = 'pbs_configID_' . $params['pbs_bootosID'];
+ if(isset($params[$configName]) && $params[$configName] != 'default') {
+ $params['pbs_configID'] = $params[$configName];
+ unset($params[$configName]);
+ } else {
+ unset($params[$configName]);
+ unset($params['pbs_configID']);
+ }
if($params['immediate']) {
$params['start'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('start')));
unset($params['end']);
unset($params['repeatEnd']);
$params['repeat'] = 0;
} else {
- $params['start'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('start')));
- if($params['end']) {
- $params['end'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('end')));
+ $params['start'] = date ('Y-m-d H:i', strtotime($params['start']));
+ if(isset($params['end'])) {
+ $params['end'] = date ('Y-m-d H:i', strtotime($params['end']));
} else {
unset($params['end']);
}
+ if(!isset($params['repeattype'])) {
+ unset($params['repeattype']);
+ }
+ if(!isset($params['repeatend'])) {
+ unset($params['repeatend']);
+ }
if(isset($params['repeatdate'])) {
- $params['repeatdate'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('repeatdate')));
+ $params['repeatdate'] = date ('Y-m-d H:i', strtotime($params['repeatdate']));
} else {
unset($params['repeatdate']);
}
+ if(!isset($params['repeatings'])) {
+ unset($params['repeatings']);
+ }
}
$event = new Application_Model_Event($params);
$event->setPbs_membershipID($this->userIDsNamespace['membershipID']);
$bootmenuquery = "bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=" . $event->getTitle() . "&defaultbootmenu=1&order=0&kcl=0";
+ if($event->getPbs_configID()) {
+ $bootmenuquery .= "&configID=" . $event->getPbs_configID();
+ }
$bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addbootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
$bootmenuXMLString = $bootmenuApiResult['http-body'];
$bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
@@ -206,17 +241,19 @@ class EventController extends Zend_Controller_Action
$filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
$filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
$filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
- $startDate = date('Y-m-d', strtotime($event->getStart()));
- if($event->getEnd()) {
- $endDate = date('Y-m-d', strtotime($event->getEnd()));
- } else {
- $endDate = date('Y-m-d', strtotime($event->getStart()));
+ if(!$event->getRepeat()) {
+ $startDate = date('Y-m-d', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endDate = date('Y-m-d', strtotime($event->getEnd()));
+ } else {
+ $endDate = date('Y-m-d', strtotime($event->getStart()));
+ }
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $endDate;
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
}
- $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $endDate;
- $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
- $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
- $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
- $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
if($event->getImmediate()) {
$eventcategoryMapper = new Application_Model_EventcategoryMapper();
$result = $eventcategoryMapper->fetchAll();
@@ -233,21 +270,22 @@ class EventController extends Zend_Controller_Action
$event->setRunning(false);
}
$event->setCreated(time());
- try {
- $eventID = $this->eventMapper->save($event);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
+ if($event->repeat) {
+ $eventID = $this->repeatEvent($event);
+ } else {
+ try {
+ $eventID = $this->eventMapper->save($event);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
}
$event->setID($eventID);
if($event->getImmediate()) {
$this->runEvent($event, $this->userIDsNamespace['apikey']);
}
- if($event->repeat) {
- $this->repeatEvent($event);
- }
$this->_redirect('/event/');
}
}
@@ -265,18 +303,18 @@ class EventController extends Zend_Controller_Action
$eventID = $this->_request->getParam('eventID');
if(isset($eventID)) {
$event = new Application_Model_Event();
- if($event->getPbs_bootmenuID()) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
- }
- if($event->getPbs_filterID()) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
- }
$this->eventMapper->find($eventID, $event);
if($event->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
if(!$this->acl->checkRight('edo')) {
$this->_redirect('/');
}
}
+ if($event->getPbs_bootmenuID()) {
+ $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
+ }
+ if($event->getPbs_filterID()) {
+ $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $event->getPbs_filterID());
+ }
try {
$this->eventMapper->delete($event);
} catch(Zend_Exception $e)
@@ -330,6 +368,19 @@ class EventController extends Zend_Controller_Action
$bootosobj->setSource(sprintf("%s", $bootos->source));
$bootosobj->setTitle(sprintf("%s", $bootos->title));
$bootoslist[$bootosobj->getID()] = $bootosobj;
+ foreach($bootos->configs->config as $config) {
+ $configobj = new Application_Model_Config();
+ $configobj->setID(sprintf("%s", $config->configid));
+ $configobj->setBootosID(sprintf("%s", $bootosobj->getID()));
+ $configobj->setCreated(sprintf("%s", $config->created));
+ $configobj->setDescription(sprintf("%s", $config->description));
+ $configobj->setGroupID(sprintf("%s", $config->groupid));
+ $configobj->setTitle(sprintf("%s", $config->title));
+ $configobj->setVisible(sprintf("%s", $config->visible));
+ if($configobj->getVisible()) {
+ $configlist[$bootosobj->getID()][$configobj->getID()] = $configobj;
+ }
+ }
}
}
$poolApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['getpools'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', '');
@@ -356,36 +407,57 @@ class EventController extends Zend_Controller_Action
$repeattypeMapper = new Application_Model_RepeattypeMapper();
$repeattypelist = $repeattypeMapper->fetchAll();
$save = $this->getRequest()->getParam("save");
+
if (isset($save)){
$params = $this->getRequest()->getParams();
- $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'params' => $params));
+ $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'oldtitle' => $event->getTitle(), 'params' => $params));
if ($editForm->isValid($params)) {
- $params['start'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('start')));
- if($params['end']) {
- $params['end'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('end')));
+ $configName = 'pbs_configID_' . $params['pbs_bootosID'];
+ if(isset($params[$configName]) && $params[$configName] != 'default') {
+ $params['pbs_configID'] = $params[$configName];
+ unset($params[$configName]);
+ } else {
+ unset($params[$configName]);
+ $event->setPbs_configID(null);
+ }
+ $params['start'] = date ('Y-m-d H:i', strtotime($params['start']));
+ if(isset($params['end'])) {
+ $params['end'] = date ('Y-m-d H:i', strtotime($params['end']));
} else {
unset($params['end']);
}
- if($params['repeatdate']) {
- $params['repeatdate'] = date ('Y-m-d H:i', strtotime($this->getRequest()->getParam('repeatdate')));
+ if(!isset($params['repeattype'])) {
+ unset($params['repeattype']);
+ }
+ if(!isset($params['repeatend'])) {
+ unset($params['repeatend']);
+ }
+ if(isset($params['repeatdate'])) {
+ $params['repeatdate'] = date ('Y-m-d H:i', strtotime($params['repeatdate']));
} else {
unset($params['repeatdate']);
}
+ if(!isset($params['repeatings'])) {
+ unset($params['repeatings']);
+ }
if($event->getPbs_bootmenuID()) {
$bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
unset($bootmenuApiResult);
}
if($event->getPbs_filterID()) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
+ $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "filterid=" . $event->getPbs_filterID());
unset($filterApiResult);
}
$params['immediate'] = 0;
- if($event->getRepeat()) {
+ if($event->getRepeat() && isset($params['wdh'])) {
$this->deleteRepeatEvents($event);
}
$event->setOptions($params);
$event->setID($eventID);
$bootmenuquery = "bootosID=" . $event->getPbs_bootosID() . "&startcounter=0&title=" . $event->getTitle() . "&defaultbootmenu=1&order=0&kcl=0";
+ if($event->getPbs_configID()) {
+ $bootmenuquery .= "&configID=" . $event->getPbs_configID();
+ }
$bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['addbootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $bootmenuquery);
$bootmenuXMLString = $bootmenuApiResult['http-body'];
$bootmenuXML = new SimpleXMLElement($bootmenuXMLString);
@@ -413,27 +485,29 @@ class EventController extends Zend_Controller_Action
$filterentriesXMLString2 = $filterentriesApiResult2['http-body'];
$filterentriesXML2 = new SimpleXMLElement($filterentriesXMLString2);
$filterentriesID2 = sprintf("%s", $filterentriesXML2->filterentry->id);
- $startDate = date('Y-m-d', strtotime($event->getStart()));
- if($event->getEnd()) {
- $endDate = date('Y-m-d', strtotime($event->getEnd()));
- } else {
- $endDate = date('Y-m-d', strtotime($event->getStart()));
- }
- $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $endDate;
- $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
- $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
- $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
- $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
- try {
- $this->eventMapper->save($event);
- } catch(Zend_Exception $e)
- {
- echo "Caught exception: " . get_class($e) . "<br/>";
- echo "Message: " . $e->getMessage() . "<br/>";
- return;
+ if(!$event->getRepeat()) {
+ $startDate = date('Y-m-d', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endDate = date('Y-m-d', strtotime($event->getEnd()));
+ } else {
+ $endDate = date('Y-m-d', strtotime($event->getStart()));
+ }
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $endDate;
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
}
- if($event->getRepeat()) {
+ if($event->getRepeat() && isset($params['wdh'])) {
$this->repeatEvent($event);
+ } else {
+ try {
+ $this->eventMapper->save($event);
+ } catch(Zend_Exception $e) {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
}
$this->_redirect('/event/');
}
@@ -462,9 +536,10 @@ class EventController extends Zend_Controller_Action
$this->getRequest()->setParam('note', $event->getNote());
$this->getRequest()->setParam('pbs_poolID', $event->getPbs_poolID());
$this->getRequest()->setParam('pbs_bootosID', $event->getPbs_bootosID());
+ $this->getRequest()->setParam('pbs_configID_' . $event->getPbs_bootosID(), $event->getPbs_configID());
$this->getRequest()->setParam('pbs_membershipID', $event->getPbs_membershipID());
$params = $this->getRequest()->getParams();
- $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'params' => $params));
+ $editForm = new Application_Form_EventEdit(array('eventcategorylist' => $eventcategorylist, 'bootoslist' => $bootoslist, 'configlist' => $configlist, 'poollist' => $poollist, 'repeattypelist' => $repeattypelist, 'repeatendlist' => $repeatendlist, 'oldtitle' => $event->getTitle(), 'params' => $params));
}
$this->view->editForm = $editForm;
$this->view->params = $params;
@@ -485,18 +560,18 @@ class EventController extends Zend_Controller_Action
$eventTitle = $this->_request->getParam('eventTitle');
if (isset ($eventTitle)) {
$event = new Application_Model_Event();
- if ($event->getPbs_bootmenuID()) {
- $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_bootmenuID());
- }
- if ($event->getPbs_filterID()) {
- $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $event->getPbs_filterID());
- }
$events = $this->eventMapper->findBy(array("title" => $eventTitle));
if ($events[0]->getPbs_membershipID() != $this->userIDsNamespace['membershipID']) {
if (!$this->acl->checkRight('edo')) {
$this->_redirect('/');
}
}
+ if ($events[0]->getPbs_bootmenuID()) {
+ $bootmenuApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletebootmenu'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $events[0]->getPbs_bootmenuID());
+ }
+ if ($events[0]->getPbs_filterID()) {
+ $filterApiResult = PostToHost($this->pbs2host, $this->config['pbs2']['deletefilter'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', "bootmenuid=" . $events[0]->getPbs_filterID());
+ }
try {
foreach($events as $event) {
$this->eventMapper->delete($event);
@@ -1443,27 +1518,72 @@ class EventController extends Zend_Controller_Action
}
private function repeatEvent(Application_Model_Event $event) {
+ try {
+ $eventID = $this->eventMapper->save($event);
+ } catch(Zend_Exception $e)
+ {
+ echo "Caught exception: " . get_class($e) . "<br/>";
+ echo "Message: " . $e->getMessage() . "<br/>";
+ return;
+ }
$repeattypeMapper = new Application_Model_RepeattypeMapper();
$repeattype = new Application_Model_Repeattype();
$repeattypes = $repeattypeMapper->find($event->getRepeattype(), $repeattype);
$repeatendMapper = new Application_Model_RepeatendMapper();
$repeatend = new Application_Model_Repeatend();
$repeatendMapper->find($event->getRepeatend(), $repeatend);
+ $summertimeStart = intval(date('I', strtotime($event->getStart())));
+ if($event->getEnd()) {
+ $summertimeEnd = intval(date('I', strtotime($event->getEnd())));
+ }
+ $newEvent = $event;
+ $newEvent->setID(null);
+ $startDate = date('Y-m-d', strtotime($event->getStart()));
+ if($event->getEnd()) {
+ $endDate = date('Y-m-d', strtotime($event->getEnd()));
+ } else {
+ $endDate = date('Y-m-d', strtotime($event->getStart()));
+ }
switch($repeattype->getTitle()) {
case 'Daily':
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $endDate;
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
$onedaytime = 24 * 60 * 60;
$newStartTime = strtotime($event->getStart()) + $onedaytime;
if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd()) + $onedaytime;
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newStartTime = $newStartTime + $onedaytime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $onedaytime;
}
@@ -1496,9 +1616,31 @@ class EventController extends Zend_Controller_Action
} else if($repeatend->getTitle() == 'Date') {
$repeatendtime = strtotime($event->getRepeatdate());
while($newStartTime <= $repeatendtime) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $onedaytime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $onedaytime;
}
@@ -1544,14 +1686,34 @@ class EventController extends Zend_Controller_Action
if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd()) + $oneweektime;
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $oneweektime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $oneweektime;
}
@@ -1567,9 +1729,31 @@ class EventController extends Zend_Controller_Action
} else if($repeatend->getTitle() == 'Date') {
$repeatendtime = strtotime($event->getRepeatdate());
while($newStartTime <= $repeatendtime) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $oneweektime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $oneweektime;
}
@@ -1587,19 +1771,44 @@ class EventController extends Zend_Controller_Action
break;
case 'Every couple of weeks':
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $endDate;
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
$twoweekstime = 14 * 24 * 60 * 60;
$newStartTime = strtotime($event->getStart()) + $twoweekstime;
if($event->getEnd()) {
$newEndTime = strtotime($event->getEnd()) + $twoweekstime;
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
- $newStartTime = strtotime($newStartTime + $twoweekstime);
+ $newStartTime = $newStartTime + $twoweekstime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $twoweekstime;
}
@@ -1632,9 +1841,31 @@ class EventController extends Zend_Controller_Action
} else if($repeatend->getTitle() == 'Date') {
$repeatendtime = strtotime($event->getRepeatdate());
while($newStartTime <= $repeatendtime) {
+ if($summertimeStart) {
+ if(!date('I', $newStartTime)) {
+ $newStartTime = $newStartTime + 60 * 60;
+ $summertimeStart = 0;
+ }
+ } else {
+ if(date('I', $newStartTime)) {
+ $newStartTime = $newStartTime - 60 * 60;
+ $summertimeStart = 1;
+ }
+ }
$newEvent->setStart(date('Y-m-d H:i', $newStartTime));
$newStartTime = $newStartTime + $twoweekstime;
if(isset($newEndTime)) {
+ if($summertimeEnd) {
+ if(!date('I', $newEndTime)) {
+ $newEndTime = $newEndTime + 60 * 60;
+ $summertimeEnd = 0;
+ }
+ } else {
+ if(date('I', $newEndTime)) {
+ $newEndTime = $newEndTime - 60 * 60;
+ $summertimeEnd = 1;
+ }
+ }
$newEvent->setEnd(date('Y-m-d H:i', $newEndTime));
$newEndTime = $newEndTime + $twoweekstime;
}
@@ -1669,6 +1900,11 @@ class EventController extends Zend_Controller_Action
break;
case 'Every month':
+ $filterentriesquery3 = "filterID=" . $event->getPbs_filterID() . "&filtertypeID=11&filtervalue=" . $startDate . "&filtervalue2=" . $endDate;
+ $filterentriesApiResult3 = PostToHost($this->pbs2host, $this->config['pbs2']['addfilterentry'] . $this->userIDsNamespace['apikey'], 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 'poolctrl', $filterentriesquery3);
+ $filterentriesXMLString3 = $filterentriesApiResult3['http-body'];
+ $filterentriesXML3 = new SimpleXMLElement($filterentriesXMLString3);
+ $filterentriesID3 = sprintf("%s", $filterentriesXML3->filterentry->id);
$startMonth = date('m', strtotime($event->getStart())) + 1;
$startDay = date('d', strtotime($event->getStart()));
$startYear = date('Y', strtotime($event->getStart()));
@@ -1706,8 +1942,6 @@ class EventController extends Zend_Controller_Action
$newEndDate = $endYear . "-" . $endMonth . "-" . $endDay . " " . date('H:i', strtotime($event->getEnd()));
$newEndTime = strtotime($newEndDate);
}
- $newEvent = $event;
- $newEvent->setID(null);
if($repeatend->getTitle() == 'After') {
$repeatings = intval($newEvent->getRepeatings());
for($i = 0; $i < $repeatings; $i++) {
@@ -1843,12 +2077,16 @@ class EventController extends Zend_Controller_Action
break;
}
+ return $eventID;
}
function deleteRepeatEvents(Application_Model_Event $repeatEvent) {
$events = $this->eventMapper->findBy(array("title" => $repeatEvent->getTitle()));
try {
foreach($events as $event) {
+ if($event->getID() == $repeatEvent) {
+ continue;
+ }
$this->eventMapper->delete($event);
}
} catch (Zend_Exception $e) {