function simulateSaveEvent($requestObject) { if (!JEVHelper::isEventCreator()) { throwerror(JText::_('ALERTNOTAUTH')); } // Convert formdata to array $formdata = array(); foreach (get_object_vars($requestObject->formdata) as $k => $v) { $k = str_replace("[]", "", $k); $formdata[$k] = $v; } $array = JRequest::_cleanVar($formdata, JREQUEST_ALLOWHTML); $dataModel = new JEventsDataModel("JEventsAdminDBModel"); $queryModel = new JEventsDBModel($dataModel); $rrule = SaveIcalEvent::generateRRule($array); // ensure authorised if (isset($array["evid"]) && $array["evid"] > 0) { $event = $queryModel->getEventById(intval($array["evid"]), 1, "icaldb"); if (!JEVHelper::canEditEvent($event)) { throwerror(JText::_('ALERTNOTAUTH')); } } // do dry run of event saving! if ($event = SaveIcalEvent::save($array, $queryModel, $rrule, true)) { $row = new jIcalEventDB($event); $row->repetitions = $event->_repetitions; } else { throwerror(JText::_('EVENT_NOT_SAVED')); } return $row; }
function notifyAuthorPublished($event) { JLoader::register('JEventsCategory', JEV_ADMINPATH . "/libraries/categoryClass.php"); $db = JFactory::getDBO(); $cat = new JEventsCategory($db); $cat->load($event->catid()); $adminuser = $cat->getAdminUser(); $adminEmail = $adminuser->email; $adminName = $adminuser->name; $config = new JConfig(); $sitename = $config->sitename; $subject = JText::sprintf('JEV_NOTIFY_AUTHOR_SUBJECT', $sitename); $Itemid = JEVHelper::getItemid(); // reload the event to get the reptition ids $evid = intval($event->ev_id()); $dataModel = new JEventsDataModel("JEventsAdminDBModel"); $queryModel = new JEventsDBModel($dataModel); $testevent = $queryModel->getEventById($evid, 1, "icaldb"); // attach anonymous creator etc. JPluginHelper::importPlugin('jevents'); $dispatcher =& JDispatcher::getInstance(); $dispatcher->trigger('onDisplayCustomFields', array(&$event)); $rp_id = $testevent->rp_id(); list($year, $month, $day) = JEVHelper::getYMD(); $uri =& JURI::getInstance(JURI::base()); if (JFactory::getApplication()->isAdmin()) { $root = $uri->toString(array('scheme', 'host', 'port', 'path')); $root = str_replace("/administrator", "", $root); $detaillink = '<a href="' . $root . 'index.php?option=' . JEV_COM_COMPONENT . '&task=icalrepeat.detail&rp_id=' . $evid . '&rp_id=' . $rp_id . '&Itemid=' . $Itemid . "&year={$year}&month={$month}&day={$day}" . '">' . $event->title() . '</a>' . "\n"; } else { $root = $uri->toString(array('scheme', 'host', 'port')); $detaillink = '<a href="' . $root . JRoute::_('index.php?option=' . JEV_COM_COMPONENT . '&task=icalrepeat.detail&rp_id=' . $evid . '&rp_id=' . $rp_id . '&Itemid=' . $Itemid . "&year={$year}&month={$month}&day={$day}") . '">' . $event->title() . '</a>' . "\n"; } $content = sprintf(JText::_('JEV_NOTIFY_AUTHOR_Message'), $detaillink, $sitename); $authorname = ""; $authoremail = ""; if ($event->created_by() > 0) { $author = JFactory::getUser($event->created_by()); if (!$author) { return; } $authorname = $author->name; $authoremail = $author->email; } else { if (isset($event->authoremail) && $event->authoremail != "") { $authorname = $event->authorname; $authoremail = $event->authoremail; } } if ($authoremail == "") { return; } // mail function $mail =& JFactory::getMailer(); $mail->setSender(array(0 => $adminEmail, 1 => $adminName)); $mail->addRecipient($authoremail); $mail->setSubject($subject); $mail->setBody($content); $mail->IsHTML(true); $mail->send(); }
function simulateSaveEvent($requestObject) { if (!JEVHelper::isEventCreator()) { throwerror(JText::_('ALERTNOTAUTH')); } // Convert formdata to array $formdata = array(); foreach (get_object_vars($requestObject->formdata) as $k => $v) { $k = str_replace("[]", "", $k); $formdata[$k] = $v; } // If the allow HTML flag is set, apply a safe HTML filter to the variable // $array = JRequest::_cleanVar($formdata, JREQUEST_ALLOWHTML); $safeHtmlFilter = JFilterInput::getInstance(null, null, 1, 1); $array = $safeHtmlFilter->clean($formdata, null); $dataModel = new JEventsDataModel("JEventsAdminDBModel"); $queryModel = new JEventsDBModel($dataModel); $rrule = SaveIcalEvent::generateRRule($array); // ensure authorised if (isset($array["evid"]) && $array["evid"] > 0) { $event = $queryModel->getEventById(intval($array["evid"]), 1, "icaldb"); if (!JEVHelper::canEditEvent($event)) { throwerror(JText::_('ALERTNOTAUTH')); } } $row = false; // do dry run of event saving! if ($event = SaveIcalEvent::save($array, $queryModel, $rrule, true)) { $row = new jIcalEventDB($event); $row->repetitions = $event->_repetitions; if (is_array($row->_catid)) { $row->_catids = $row->_catid; $row->_catid = $row->_catid[0]; } } else { throwerror(JText::_('EVENT_NOT_SAVED')); } return $row; }
public static function canPublishOwnEvents($evid) { $params = JComponentHelper::getParams(JEV_COM_COMPONENT); $authorisedonly = $params->get("authorisedonly", 1); $publishown = $params->get("jevpublishown", 0); $jevuser = JEVHelper::getAuthorisedUser(); $user = JFactory::getUser(); if (!$authorisedonly && $publishown) { // can publish all? if (JEVHelper::isEventPublisher(true)) { return true; } else { if ($evid == 0) { return true; } } $dataModel = new JEventsDataModel("JEventsAdminDBModel"); $queryModel = new JEventsDBModel($dataModel); $evid = intval($evid); $testevent = $queryModel->getEventById($evid, 1, "icaldb"); if ($testevent->ev_id() == $evid && $testevent->created_by() == $user->id) { return true; } } if ($authorisedonly && $jevuser && $jevuser->canpublishown) { $dataModel = new JEventsDataModel("JEventsAdminDBModel"); $queryModel = new JEventsDBModel($dataModel); $evid = intval($evid); $testevent = $queryModel->getEventById($evid, 1, "icaldb"); if ($testevent->ev_id() == $evid && $testevent->created_by() == $user->id) { return true; } } return false; }