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;
}
Пример #2
0
 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();
 }
Пример #3
0
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;
}
Пример #4
0
 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;
 }