/** * Creates the output for the details view * * @since 0.9 */ function display($tpl = null) { $mainframe =& JFactory::getApplication(); $document = JFactory::getDocument(); // load event details $row = $this->get('Details'); $xreflinks = $this->get('XrefLinks'); $this->_eventlinks = $xreflinks; $document->setTitle($this->escape($row->full_title)); $document->setDescription(''); ob_start(); $this->setLayout('courseinfo_rss'); parent::display(); $contents = ob_get_contents(); ob_end_clean(); $link = JRoute::_(RedeventHelperRoute::getDetailsRoute($row->slug, $row->xslug)); // load individual item creator class $item = new JFeedItem(); $item->title = $row->full_title; $item->link = JRoute::_($link); $item->description = $contents; $item->date = ''; $item->category = ''; // loads item info into rss array $document->addItem($item); }
function submitinfo() { jimport('joomla.mail.helper'); $app =& JFactory::getApplication(); $params = JComponentHelper::getParams('com_redevent'); if (!$params->get('enable_moreinfo', 1)) { echo Jtext::_('COM_REDEVENT_MOREINFO_ERROR_DISABLED_BY_ADMIN'); $app->close(403); } $xref = JRequest::getInt('xref'); $email = JRequest::getVar('email'); $model = $this->getModel('details'); $details = $model->getDetails(); if ($xref && $email && JMailHelper::isEmailAddress($email)) { $mailer =& JFactory::getMailer(); $mailer->IsHTML(true); $mailer->setSubject(JText::sprintf('COM_REDEVENT_MOREINFO_MAIL_SUBJECT', $details->full_title)); $mailer->AddAddress($app->getCfg('mailfrom'), $app->getCfg('sitename')); $mailer->AddReplyTo(array($email, JRequest::getVar('name'))); $data = array(); if ($d = JRequest::getVar('name')) { $data[] = array(Jtext::_('COM_REDEVENT_MOREINFO_LABEL_NAME'), $d); } if ($d = JRequest::getVar('email')) { $data[] = array(Jtext::_('COM_REDEVENT_MOREINFO_LABEL_EMAIL'), $d); } if ($d = JRequest::getVar('company')) { $data[] = array(Jtext::_('COM_REDEVENT_MOREINFO_LABEL_COMPANY'), $d); } if ($d = JRequest::getVar('phonenumber')) { $data[] = array(Jtext::_('COM_REDEVENT_MOREINFO_LABEL_PHONENUMBER'), $d); } if ($d = JRequest::getVar('comments')) { $data[] = array(Jtext::_('COM_REDEVENT_MOREINFO_LABEL_COMMENTS'), str_replace("\n", "<br/>", $d)); } $table = '<table>'; foreach ($data as $d) { $table .= '<tr><td>' . $d[0] . '</td><td>' . $d[1] . '</td></tr>'; } $table .= '</table>'; $link = JRoute::_(JURI::base() . RedeventHelperRoute::getDetailsRoute($details->did, $details->xslug)); $link = JHTML::link($link, $details->full_title); $body = JText::sprintf('COM_REDEVENT_MOREINFO_MAIL_BODY', $link, $table); $mailer->setBody($body); $mailer->send(); } // confirm sending JRequest::setVar('view', 'moreinfo'); Jrequest::setVar('layout', 'final'); $this->display(); }
/** * Cleanes and saves the submitted event to the database * * TODO: Check if the user is allowed to post events assigned to this category/venue * * @since 0.4 */ function saveevent() { // Check for request forgeries JRequest::checkToken() or die('Invalid Token'); //get image $file = JRequest::getVar('userfile', '', 'files', 'array'); $post = JRequest::get('post', 4); $isNew = $post['id'] ? false : true; $model = $this->getModel('editevent'); $this->addModelPath(JPATH_BASE . DS . 'administrator' . DS . 'components' . DS . 'com_redevent' . DS . 'models'); $model_wait = $this->getModel('waitinglist'); if ($row = $model->store($post, $file)) { JPluginHelper::importPlugin('redevent'); $dispatcher =& JDispatcher::getInstance(); $res = $dispatcher->trigger('onEventEdited', array($row->id, $isNew)); $cache =& JFactory::getCache('com_redevent'); $cache->clean(); $msg = 'saved'; // $link = JRequest::getString('referer', RedeventHelperRoute::getMyeventsRoute(), 'post'); } else { $msg = $model->getError(); // $link = JRequest::getString('referer', RedeventHelperRoute::getMyeventsRoute(), 'post'); RedeventError::raiseWarning(0, $model->getError()); } $model->checkin(); switch (JRequest::getWord('referer')) { case 'myevents': $link = JRoute::_(RedeventHelperRoute::getMyeventsRoute(), false); break; default: if ($row && $row->published) { $link = JRoute::_(RedeventHelperRoute::getDetailsRoute($row->id, $row->xref ? $row->xref : null), false); } else { $link = JRoute::_(RedeventHelperRoute::getMyeventsRoute(), false); } } $this->setRedirect($link, $msg); }
/** * Parses tag ical_url * returns url to session ical export * @return string */ function _getTag_ical_url() { $res = $this->absoluteUrls(RedeventHelperRoute::getDetailsRoute($this->getEvent()->getData()->slug, $this->getEvent()->getData()->xslug) . '&format=raw&layout=ics', false); return $res; }
<?php //loop through attendees foreach ($this->registers as $key => $register) { if ($register->submitter->waitinglist == 1) { if ($register->submitter->uid == $this->user->get('id')) { echo '<li><ul class="attendee myreg">'; } else { echo '<li><ul class="attendee">'; } foreach ($register->answers as $k => $name) { if (stristr($name, '~~~')) { $name = str_replace('~~~', '<br />', $name) . '<br />'; } echo "<li class='userfield " . strtolower($k) . "'>" . $name . "</li>"; } if ($this->unreg_check && $register->submitter->uid == $this->user->get('id') || $this->candeleteattendees) { $unreg_url = JRoute::_(RedeventHelperRoute::getDetailsRoute($this->row->slug, $this->row->xslug) . '&task=delreguser&rid=' . $register->attendee_id); echo '<li>' . JHTML::link($unreg_url, JText::_('COM_REDEVENT_UNREGISTER'), array('class' => 'unreglink')) . '</li>'; } echo '</ul></li>'; } } ?> </ul> </div> <?php } ?> </div> <?php }
function icalAddEvent(&$calendartool, $event) { require_once JPATH_SITE . DS . 'components' . DS . 'com_redevent' . DS . 'classes' . DS . 'iCalcreator.class.php'; $mainframe =& JFactory::getApplication(); $params = $mainframe->getParams('com_redevent'); $offset = $params->get('ical_timezone', 1); $timezone_name = self::getTimeZone($offset); // get categories names $categories = array(); foreach ($event->categories as $c) { $categories[] = $c->catname; } if (!$event->dates || $event->dates == '0000-00-00') { // no start date... return false; } // make end date same as start date if not set if (!$event->enddates || $event->enddates == '0000-00-00') { $event->enddates = $event->dates; } // start if (!preg_match('/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/', $event->dates, $start_date)) { JError::raiseError(0, JText::_('COM_REDEVENT_ICAL_EXPORT_WRONG_STARTDATE_FORMAT')); } $date = array('year' => (int) $start_date[1], 'month' => (int) $start_date[2], 'day' => (int) $start_date[3]); // all day event if start time is not set if (!$event->times || $event->times == '00:00:00') { $dateparam = array('VALUE' => 'DATE'); // for ical all day events, dtend must be send to the next day $event->enddates = strftime('%Y-%m-%d', strtotime($event->enddates . ' +1 day')); if (!preg_match('/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/', $event->enddates, $end_date)) { JError::raiseError(0, JText::_('COM_REDEVENT_ICAL_EXPORT_WRONG_ENDDATE_FORMAT')); } $date_end = array('year' => $end_date[1], 'month' => $end_date[2], 'day' => $end_date[3]); $dateendparam = array('VALUE' => 'DATE'); } else { if (!preg_match('/([0-9]{2}):([0-9]{2}):([0-9]{2})/', $event->times, $start_time)) { JError::raiseError(0, JText::_('COM_REDEVENT_ICAL_EXPORT_WRONG_STARTTIME_FORMAT')); } $date['hour'] = $start_time[1]; $date['min'] = $start_time[2]; $date['sec'] = $start_time[3]; $dateparam = array('VALUE' => 'DATE-TIME'); if (!$params->get('ical_no_timezone', 0)) { $dateparam['TZID'] = $timezone_name; } if (!$event->endtimes || $event->endtimes == '00:00:00') { $event->endtimes = $event->times; } // if same day but end time < start time, change end date to +1 day if ($event->enddates == $event->dates && strtotime($event->dates . ' ' . $event->endtimes) < strtotime($event->dates . ' ' . $event->times)) { $event->enddates = strftime('%Y-%m-%d', strtotime($event->enddates . ' +1 day')); } if (!preg_match('/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/', $event->enddates, $end_date)) { JError::raiseError(0, JText::_('COM_REDEVENT_ICAL_EXPORT_WRONG_ENDDATE_FORMAT')); } $date_end = array('year' => $end_date[1], 'month' => $end_date[2], 'day' => $end_date[3]); if (!preg_match('/([0-9]{2}):([0-9]{2}):([0-9]{2})/', $event->endtimes, $end_time)) { JError::raiseError(0, JText::_('COM_REDEVENT_ICAL_EXPORT_WRONG_STARTTIME_FORMAT')); } $date_end['hour'] = $end_time[1]; $date_end['min'] = $end_time[2]; $date_end['sec'] = $end_time[3]; $dateendparam = array('VALUE' => 'DATE-TIME'); if (!$params->get('ical_no_timezone', 0)) { $dateendparam['TZID'] = $timezone_name; } } $title = isset($event->full_title) ? $event->full_title : $event->title; // item description text $description = $title . '\\n'; $description .= JText::_('COM_REDEVENT_CATEGORY') . ': ' . implode(', ', $categories) . '\\n'; // if (isset($event->summary) && $event->summary) { // $description .= $event->summary.'\\n'; // } // url link to event $link = JURI::base() . RedeventHelperRoute::getDetailsRoute($event->slug, $event->xref); $link = JRoute::_($link); $description .= JText::_('COM_REDEVENT_ICS_LINK') . ': ' . $link . '\\n'; if (!empty($event->icaldetails)) { $description .= $event->icaldetails; } // location $location = array(); if (isset($event->icalvenue) && !empty($event->icalvenue)) { $location[] = $event->icalvenue; } else { $location[] = $event->venue; if (isset($event->street) && !empty($event->street)) { $location[] = $event->street; } if (isset($event->city) && !empty($event->city)) { $location[] = $event->city; } if (isset($event->countryname) && !empty($event->countryname)) { $exp = explode(",", $event->countryname); $location[] = $exp[0]; } } $location = implode(",", $location); $e = new vevent(); // initiate a new EVENT $e->setProperty('summary', $title); // title $e->setProperty('categories', implode(', ', $categories)); // categorize $e->setProperty('dtstart', $date, $dateparam); if (count($date_end)) { $e->setProperty('dtend', $date_end, $dateendparam); } $e->setProperty('description', $description); // describe the event $e->setProperty('location', $location); // locate the event $e->setProperty('url', $link); $e->setProperty('uid', 'event' . $event->id . '-' . $event->xref . '@' . $mainframe->getCfg('sitename')); $calendartool->addComponent($e); // add component to calendar return true; }
/** * Confirms the users request */ function activate() { $mainframe =& JFactory::getApplication(); $msgtype = 'message'; /* Get the confirm ID */ $confirmid = JRequest::getVar('confirmid', '', 'get'); /* Get the details out of the confirmid */ list($uip, $xref, $uid, $register_id, $submit_key) = explode("x", $confirmid); /* Confirm sign up via mail */ $model = $this->getModel('Registration', 'RedEventModel'); $model->setXref($xref); $eventdata = $model->getSessionDetails(); /* This loads the tags replacer */ JRequest::setVar('xref', $xref); require_once JPATH_COMPONENT_SITE . DS . 'helpers' . DS . 'tags.php'; $tags = new redEVENT_tags(); $tags->setXref($xref); $tags->setSubmitkey($submit_key); /* Check the db if this entry exists */ $db = JFactory::getDBO(); $q = ' SELECT r.confirmed ' . ' FROM #__redevent_register r ' . ' WHERE r.uid = ' . $db->Quote($uid) . ' AND r.submit_key = ' . $db->Quote($submit_key) . ' AND r.xref = ' . $db->Quote($xref) . ' AND r.id = ' . $db->Quote($register_id); $db->setQuery($q); $regdata = $db->loadObject(); if ($regdata && $regdata->confirmed == 0) { $model->confirm($register_id); // send activation confirmation email if activated if ($eventdata->enable_activation_confirmation) { $this->_Mailer(); $rfcore = new RedFormCore(); $addresses = $rfcore->getSubmissionContactEmail($submit_key); /* Check if there are any addresses to be mailed */ if (count($addresses) > 0) { /* Start mailing */ foreach ($addresses as $key => $sid) { foreach ($sid as $email) { /* Send a off mailinglist mail to the submitter if set */ /* Add the email address */ $this->mailer->AddAddress($email['email']); /* Mail submitter */ $htmlmsg = '<html><head><title></title></title></head><body>' . $tags->ReplaceTags($eventdata->notify_confirm_body) . '</body></html>'; // convert urls $htmlmsg = REOutput::ImgRelAbs($htmlmsg); $this->mailer->setBody($htmlmsg); $this->mailer->setSubject($tags->ReplaceTags($eventdata->notify_confirm_subject)); /* Send the mail */ if (!$this->mailer->Send()) { $mainframe->enqueueMessage(JText::_('COM_REDEVENT_THERE_WAS_A_PROBLEM_SENDING_MAIL')); RedeventHelperLog::simpleLog('Error sending confirm email' . ': ' . $this->mailer->error); } /* Clear the mail details */ $this->mailer->ClearAddresses(); } } } } $msg = JText::_('COM_REDEVENT_REGISTRATION_ACTIVATION_SUCCESSFULL'); } else { if ($regdata && $regdata->confirmed == 1) { $msg = JText::_('COM_REDEVENT_YOUR_SUBMISSION_HAS_ALREADY_BEEN_CONFIRMED'); $msgtype = 'error'; } else { $msg = JText::_('COM_REDEVENT_YOUR_SUBMISSION_CANNOT_BE_CONFIRMED'); $msgtype = 'error'; } } $this->setRedirect(JRoute::_(RedeventHelperRoute::getDetailsRoute($eventdata->did, $xref)), $msg, $msgtype); }
if (!$this->rows) { ?> <tr align="center"><td colspan="<?php echo count($this->columns); ?> "><?php echo JText::_('COM_REDEVENT_NO_EVENTS'); ?> </td></tr> <?php } else { $k = 0; foreach ($this->rows as $row) { $isover = redEVENTHelper::isOver($row) ? ' isover' : ''; //Link to details $detaillink = JRoute::_(RedeventHelperRoute::getDetailsRoute($row->slug, $row->xslug)); ?> <tr class="sectiontableentry<?php echo $k + 1 . $this->params->get('pageclass_sfx') . ($row->featured ? ' featured' : ''); echo $isover; ?> " itemscope itemtype="http://schema.org/Event"> <?php foreach ($this->columns as $col) { ?> <?php switch ($col) { case 'date': ?>
<span class="editlinktip hasTip" title="<?php echo JText::_('COM_REDEVENT_SELECT'); ?> ::<?php echo $row->title; ?> "> <a style="cursor:pointer" onclick="insertEvent('<?php echo $row->id; ?> ', '<?php echo str_replace(array("'", "\""), array("\\'", ""), $row->title); ?> ', '<?php echo JURI::root() . RedeventHelperRoute::getDetailsRoute($row->slug, $row->xref); ?> ');"> <?php echo htmlspecialchars($row->title, ENT_QUOTES, 'UTF-8'); ?> </a></span> </td> <td> <?php //Format date $date = redEVENTHelper::isValidDate($row->dates) ? strftime($this->elsettings->get('backend_formatdate', '%d.%m.%Y'), strtotime($row->dates)) : JText::_('COM_REDEVENT_OPEN_DATE'); if (!redEVENTHelper::isValidDate($row->enddates)) { $displaydate = $date; } else { $enddate = strftime($this->elsettings->get('backend_formatdate', '%d.%m.%Y'), strtotime($row->enddates));
/** * Method to store the event * * @access public * @return id * @since 0.9 */ function store($data, $file) { $mainframe =& JFactory::getApplication(); $user =& JFactory::getUser(); $elsettings =& redEVENTHelper::config(); $params = $mainframe->getParams(); $acl = UserAcl::getInstance(); //Get mailinformation $SiteName = $mainframe->getCfg('sitename'); $MailFrom = $mainframe->getCfg('mailfrom'); $FromName = $mainframe->getCfg('fromname'); $tzoffset = $mainframe->getCfg('offset'); $row =& JTable::getInstance('redevent_events', ''); if ($data['id']) { $row->load((int) $data['id']); } else { $category_ids = isset($data['categories']) ? $data['categories'] : array(); $template_event = $this->_getEventTemplate($category_ids); $template_event = $template_event ? $template_event : $params->get('event_template', 0); if ($template_event) { $row->load($template_event); $row->id = null; $row->alias = null; $row->checked_out = null; $row->checked_out_time = null; } else { JError::raiseWarning(0, JText::_('COM_REDEVENT_MISSING_FRONTEND_SUBMISSION_EVENT_TEMPLATE')); return false; } } //Sanitize $data['datdescription'] = JRequest::getVar('datdescription', $row->datdescription, 'post', 'string', JREQUEST_ALLOWRAW); $curimage = JRequest::getVar('curimage', '', 'post', 'string'); // published state if (!$acl->canPublishEvent($this->_id)) { // use default state $row->published = $params->get('default_submit_published_state', 0); } //bind it to the table if (!$row->bind($data)) { RedeventError::raiseError(500, $this->_db->stderr()); return false; } //Are we saving from an item edit? if ($row->id) { //check if user is allowed to edit events if (!$acl->canEditEvent($this->_id)) { JError::raiseError(403, JText::_('COM_REDEVENT_NO_ACCESS')); } $row->modified = gmdate('Y-m-d H:i:s'); $row->modified_by = $user->get('id'); } else { //check if user is allowed to submit new events if (!$acl->canAddEvent()) { JError::raiseError(403, JText::_('COM_REDEVENT_NO_ACCESS')); } //get IP, time and userid $row->created = gmdate('Y-m-d H:i:s'); $row->author_ip = $elsettings->get('storeip', '1') ? getenv('REMOTE_ADDR') : 'DISABLED'; $row->created_by = $user->get('id'); } //Image upload //If image upload is required we will stop here if no file was attached if (empty($file['name']) && $params->get('edit_image', 1) == 2) { $this->setError(JText::_('COM_REDEVENT_IMAGE_EMPTY')); return false; } if (($params->get('edit_image', 1) == 2 || $params->get('edit_image', 1) == 1) && !empty($file['name'])) { jimport('joomla.filesystem.file'); $base_Dir = JPATH_SITE . '/images/redevent/events/'; //check the image $check = redEVENTImage::check($file, $elsettings); if ($check === false) { JError::raiseWarning(0, JText::_('COM_REDEVENT_EDITEVENT_IMAGE_CHECKFAILED')); } else { //sanitize the image filename $filename = redEVENTImage::sanitize($base_Dir, $file['name']); $filepath = $base_Dir . $filename; if (!JFile::upload($file['tmp_name'], $filepath)) { JError::raiseWarning(0, JText::_('COM_REDEVENT_UPLOAD_FAILED')); } else { $row->datimage = '/images/redevent/events/' . $filename; } } } else { //keep image if edited and left blank $row->datimage = $curimage; } //end image if //Make sure the table is valid if (!$row->check($elsettings)) { $this->setError($row->getError()); return false; } //is this an edited event or not? //after store we allways have an id $edited = $row->id ? $row->id : false; //store it in the db if (!$row->store(true)) { JError::raiseError(500, $this->_db->stderr()); return false; } // update the event category xref if (isset($data['categories'])) { // first, delete current rows for this event $query = ' DELETE FROM #__redevent_event_category_xref WHERE event_id = ' . $this->_db->Quote($row->id); $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } // insert new ref foreach ((array) $data['categories'] as $cat_id) { $query = ' INSERT INTO #__redevent_event_category_xref (event_id, category_id) VALUES (' . $this->_db->Quote($row->id) . ', ' . $this->_db->Quote($cat_id) . ')'; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } } else { if (!$edited) { // copy category from template event $query = ' INSERT INTO #__redevent_event_category_xref (event_id, category_id) ' . ' SELECT ' . $this->_db->Quote($row->id) . ', category_id ' . ' FROM #__redevent_event_category_xref ' . ' WHERE event_id = ' . $this->_db->Quote($template_event); $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); JError::raiseWarning(0, JText::_('COM_REDEVENT_copying_categories_failed') . ': ' . $xref->getError()); } } } // is there a date ? if (isset($data['dates']) && strlen($data['dates'])) { $xref =& JTable::getInstance('redevent_eventvenuexref', ''); if (isset($data['xref'])) { $xref->load($data['xref']); } $xref->bind($data); $xref->id = isset($data['xref']) ? $data['xref'] : null; $xref->eventid = $row->id; $xref->published = $row->published; if (isset($data['session_title'])) { $xref->title = $data['session_title']; } if (!($xref->check() && $xref->store())) { JError::raiseWarning(0, JText::_('COM_REDEVENT_Saving_event_session_failed') . ': ' . $xref->getError()); } $row->xref = $xref->id; if ($params->get('edit_roles', 0)) { /** roles **/ // first remove current rows $query = ' DELETE FROM #__redevent_sessions_roles ' . ' WHERE xref = ' . $this->_db->Quote($xref->id); $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } // then recreate them if any foreach ((array) $data['rrole'] as $k => $r) { if (!($data['rrole'][$k] && $data['urole'][$k])) { continue; } $new =& JTable::getInstance('RedEvent_sessions_roles', ''); $new->set('xref', $xref->id); $new->set('role_id', $r); $new->set('user_id', $data['urole'][$k]); if (!($new->check() && $new->store())) { $this->setError($recurrence->getError()); return false; } } } /** prices **/ if ($params->get('edit_price', 0)) { // first remove current rows $query = ' DELETE FROM #__redevent_sessions_pricegroups ' . ' WHERE xref = ' . $this->_db->Quote($xref->id); $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } // then recreate them if any foreach ((array) $data['pricegroup'] as $k => $r) { if (!$data['pricegroup'][$k]) { continue; } $new =& JTable::getInstance('RedEvent_sessions_pricegroups', ''); $new->set('xref', $xref->id); $new->set('pricegroup_id', $r); $new->set('price', $data['price'][$k]); if (!($new->check() && $new->store())) { $this->setError($new->getError()); return false; } } } /** prices END **/ // we need to save the recurrence too $recurrence =& JTable::getInstance('RedEvent_recurrences', ''); if (!isset($data['recurrenceid']) || !$data['recurrenceid']) { $rrule = RedeventHelperRecurrence::parsePost($data); if (!empty($rrule)) { // new recurrence $recurrence->rrule = $rrule; if (!$recurrence->store()) { $this->setError($recurrence->getError()); return false; } // add repeat record $repeat =& JTable::getInstance('RedEvent_repeats', ''); $repeat->set('xref_id', $xref->id); $repeat->set('recurrence_id', $recurrence->id); $repeat->set('count', 0); if (!$repeat->store()) { $this->setError($repeat->getError()); return false; } } } else { if ($data['repeat'] == 0) { $recurrence->load($data['recurrenceid']); // reset the status $recurrence->ended = 0; // TODO: maybe add a check to have a choice between updating rrule or not... $rrule = RedeventHelperRecurrence::parsePost($data); $recurrence->rrule = $rrule; if (!$recurrence->store()) { $this->setError($recurrence->getError()); return false; } } } if ($recurrence->id) { redEVENTHelper::generaterecurrences($recurrence->id); } } /** session end **/ // attachments if ($params->get('allow_attachments', 1)) { REAttach::store('event' . $row->id); } // MAIL HANDLING $this->_db->setQuery('SELECT * FROM #__redevent_venues AS v LEFT JOIN #__redevent_event_venue_xref AS x ON x.venueid = v.id WHERE x.eventid = ' . (int) $row->id); $rowloc = $this->_db->loadObject(); jimport('joomla.utilities.mail'); $link = JRoute::_(JURI::base() . RedeventHelperRoute::getDetailsRoute($row->id), isset($xref) ? $xref->id : false); //create the mail for the site owner if ($params->get('mailinform') == 1 || $params->get('mailinform') == 3) { $receivers = explode(',', trim($params->get('mailinformrec'))); if (!count($receivers) || !JMailHelper::isEmailAddress($receivers[0])) { $mainframe->enqueueMessage(JText::_('COM_REDEVENT_EDIT_EVENT_NOTIFICATION_MISSING_RECIPIENT'), 'notice'); } else { $mail = JFactory::getMailer(); $state = $row->published ? JText::sprintf('COM_REDEVENT_MAIL_EVENT_PUBLISHED', $link) : JText::_('COM_REDEVENT_MAIL_EVENT_UNPUBLISHED'); if ($edited) { $modified_ip = getenv('REMOTE_ADDR'); $edited = JHTML::Date($row->modified, JText::_('DATE_FORMAT_LC2')); $mailbody = JText::sprintf('COM_REDEVENT_MAIL_EDIT_EVENT', $user->name, $user->username, $user->email, $modified_ip, $edited, $row->title, $xref->dates, $xref->times, $rowloc->venue, $rowloc->city, $row->datdescription, $state); $mail->setSubject($SiteName . JText::_('COM_REDEVENT_EDIT_EVENT_MAIL')); } else { $created = JHTML::Date($row->created, JText::_('DATE_FORMAT_LC2')); $mailbody = JText::sprintf('COM_REDEVENT_MAIL_NEW_EVENT', $user->name, $user->username, $user->email, $row->author_ip, $created, $row->title, $xref->dates, $xref->times, $rowloc->venue, $rowloc->city, $row->datdescription, $state); $mail->setSubject($SiteName . JText::_('COM_REDEVENT_NEW_EVENT_MAIL')); } $mail->addRecipient($receivers); $mail->setSender(array($MailFrom, $FromName)); $mail->setBody($mailbody); $sent = $mail->Send(); if (!$sent) { RedeventHelperLog::simpleLog('Error sending created/edited event notification to site owner'); } } } //mail end //create the mail for the user if ($params->get('mailinformuser') == 1 || $params->get('mailinformuser') == 3) { $usermail = JFactory::getMailer(); $state = $row->published ? JText::sprintf('COM_REDEVENT_USER_MAIL_EVENT_PUBLISHED', $link) : JText::_('COM_REDEVENT_USER_MAIL_EVENT_UNPUBLISHED'); if ($edited) { $edited = JHTML::Date($row->modified, JText::_('DATE_FORMAT_LC2')); $mailbody = JText::sprintf('COM_REDEVENT_USER_MAIL_EDIT_EVENT', $user->name, $user->username, $edited, $row->title, $xref->dates, $xref->times, $rowloc->venue, $rowloc->city, $row->datdescription, $state); $usermail->setSubject($SiteName . JText::_('COM_REDEVENT_EDIT_USER_EVENT_MAIL')); } else { $created = JHTML::Date($row->created, JText::_('DATE_FORMAT_LC2')); $mailbody = JText::sprintf('COM_REDEVENT_USER_MAIL_NEW_EVENT', $user->name, $user->username, $created, $row->title, $xref->dates, $xref->times, $rowloc->venue, $rowloc->city, $row->datdescription, $state); $usermail->setSubject($SiteName . JText::_('COM_REDEVENT_NEW_USER_EVENT_MAIL')); } $usermail->addRecipient($user->email); $usermail->setSender(array($MailFrom, $FromName)); $usermail->setBody($mailbody); $sent = $usermail->Send(); if (!$sent) { RedeventHelperLog::simpleLog('Error sending created/edited event notification to event owner'); } } return $row; }
echo JText::_('COM_REDEVENT_SESSIONS_EDIT_SESSION'); ?> "> <?php echo $displaydate; ?> </a> <?php } ?> <span class="linkfront hasTip" title="<?php echo JText::_('COM_REDEVENT_EVENT_FRONTEND_LINK'); ?> "> <?php echo JHTML::link(JURI::root() . RedeventHelperRoute::getDetailsRoute($row->eventid, $row->id), JHTML::image('administrator/components/com_redevent/assets/images/linkfront.png', JText::_('COM_REDEVENT_EVENT_FRONTEND_LINK'))); ?> </span> </td> <td><?php echo $displaytime; ?> </td> <?php if (!$this->event) { ?> <td> <?php if (JTable::isCheckedOut($this->user->get('id'), $row->event_checked_out)) { echo $row->event_title;
/** * Creates the Event Feed of the Venue Category * * @since 0.9 */ function display() { $mainframe =& JFactory::getApplication(); $doc =& JFactory::getDocument(); $elsettings =& redEVENTHelper::config(); // Get some data from the model JRequest::setVar('limit', $mainframe->getCfg('feed_limit')); $rows =& $this->get('Data'); foreach ($rows as $row) { // strip html from feed item title $title = $this->escape($row->full_title); $title = html_entity_decode($title); // strip html from feed item category if (!empty($row->categories)) { $category = array(); foreach ($row->categories as $cat) { $category[] = $cat->catname; } $category = $this->escape(implode(', ', $category)); $category = html_entity_decode($category); } else { $category = ''; } //Format date if (redEVENTHelper::isValidDate($row->dates)) { $date = strftime($elsettings->get('formatdate', '%d.%m.%Y'), strtotime($row->dates)); if (!redEVENTHelper::isValidDate($row->enddates) || $row->enddates == $row->dates) { $displaydate = $date; } else { $enddate = strftime($elsettings->get('formatdate', '%d.%m.%Y'), strtotime($row->enddates)); $displaydate = $date . ' - ' . $enddate; } } else { $displaydate = JText::_('COM_REDEVENT_OPEN_DATE'); } //Format time if ($row->times) { $time = strftime($elsettings->get('formattime', '%H:%M'), strtotime($row->times)); $displaytime = $time; } if ($row->endtimes) { $endtime = strftime($elsettings->get('formattime', '%H:%M'), strtotime($row->endtimes)); $displaytime = $time . ' - ' . $endtime; } // url link to article // & used instead of & as this is converted by feed creator $link = RedeventHelperRoute::getDetailsRoute($row->slug, $row->xslug); $link = JRoute::_($link); // feed item description text $description = JText::_('COM_REDEVENT_TITLE') . ': ' . $title . '<br />'; $description .= JText::_('COM_REDEVENT_VENUE') . ': ' . $row->venue . ' / ' . $row->city . '<br />'; $description .= JText::_('COM_REDEVENT_CATEGORY') . ': ' . $category . '<br />'; $description .= JText::_('COM_REDEVENT_DATE') . ': ' . $displaydate . '<br />'; $description .= JText::_('COM_REDEVENT_TIME') . ': ' . $displaytime . '<br />'; //$description .= JText::_('COM_REDEVENT_DESCRIPTION' ).': '.$row->datdescription; @($created = $row->created ? date('r', strtotime($row->created)) : ''); // load individual item creator class $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = $created; $item->category = $category; // loads item info into rss array $doc->addItem($item); } }
echo JHTML::_('grid.sort', 'COM_REDEVENT_EVENT_CREDITS', 'x.course_credit', $this->lists['order_Dir'], $this->lists['order']); JText::_('COM_REDEVENT_EVENT_CREDITS'); ?> </th> <th class="courseinfo_titlesignup"><?php echo JText::_('COM_REDEVENT_EVENT_SIGNUP'); ?> </th> </tr> </thead> <tbody> <?php $elsettings = redEVENTHelper::config(); $imagepath = JURI::base() . 'administrator/components/com_redevent/assets/images/'; foreach ($this->_eventlinks as $key => $event) { $event_url = JRoute::_(RedeventHelperRoute::getDetailsRoute($event->slug, $event->xslug)); $venue_url = JRoute::_(RedeventHelperRoute::getUpcomingVenueEventsRoute($event->venueslug)); ?> <tr> <td class="courseinfo_name"><?php echo JHTML::_('link', $event_url, $event->full_title); ?> </td> <td class="courseinfo_date"><?php echo REOutput::formatdate($event->dates, $event->times); ?> </td> <td class="courseinfo_duration"><?php echo redEVENTHelper::getEventDuration($event); ?> </td>
/** * Creates the Venueevents View * * @since 0.9 */ function display() { $document =& JFactory::getDocument(); $document->link = JRoute::_('index.php?option=com_redevent&view=upcomingvenueevents'); $upcomingevents = $this->get('UpcomingVenueEvents'); $elsettings = redEVENTHelper::config(); $imagepath = JURI::root() . 'administrator/components/com_redevent/assets/images/'; foreach ((array) $upcomingevents as $key => $event) { $event_url = RedeventHelperRoute::getDetailsRoute($event->slug, $event->xslug); $venue_url = RedeventHelperRoute::getVenueEventsRoute($event->venueslug); $description = '<table> <tbody> <tr> <td width="100">Course:</td><td>' . JHTML::_('link', $event_url, $event->full_title, 'target="_blank"') . '</td> </tr><tr> <td>Where:</td><td>' . $event->location . ' ' . REOutput::getFlag($event->country) . '</td> </tr><tr> <td>Date:</td><td>' . REOutput::formatdate($event->dates, $event->times) . '</td> </tr><tr> <td>Duration:</td><td>' . $event->duration; if ($event->duration == 1) { $description .= JText::_('COM_REDEVENT_DAY'); } else { if ($event->duration > 1) { $description .= JText::_('COM_REDEVENT_DAYS'); } } $description .= '</td> </tr><tr> <td>Venue:</td><td>' . JHTML::_('link', $venue_url, $event->venue, 'target="_blank"') . '</td> </tr><tr> <td>Price:</td><td class="re-price">' . REOutput::formatListPrices($event->prices) . '</td> </tr><tr> <td>Credits:</td><td>' . $event->course_credit . '</td> </tr><tr> <td>Signup:</td><td>'; /* Get the different submission types */ $submissiontypes = explode(',', $event->submission_types); $venues_html = ''; foreach ($submissiontypes as $key => $subtype) { switch ($subtype) { case 'email': $venues_html .= ' ' . JHTML::_('link', JRoute::_('index.php?option=com_redevent&view=signup&task=signup&subtype=email&xref=' . $event->xref . '&id=' . $event->id), JHTML::_('image', $imagepath . $elsettings->get('signup_email_img'), JText::_($elsettings->get('signup_email_text')), 'width="24px" height="24px" border="0"'), 'target="_blank"') . ' '; break; case 'phone': $venues_html .= ' ' . JHTML::_('link', JRoute::_('index.php?option=com_redevent&view=signup&task=signup&subtype=phone&xref=' . $event->xref . '&id=' . $event->id), JHTML::_('image', $imagepath . $elsettings->get('signup_phone_img'), JText::_($elsettings->get('signup_phone_text')), 'width="24px" height="24px" border="0"'), 'target="_blank"') . ' '; break; case 'external': $venues_html .= ' ' . JHTML::_('link', $event->submission_type_external, JHTML::_('image', $imagepath . $elsettings->get('signup_external_img'), $elsettings->get('signup_external_text'), 'width="24px" height="24px" border="0"'), 'target="_blank"') . ' '; break; case 'webform': if ($event->prices && count($event->prices)) { foreach ($event->prices as $p) { $img = empty($p->image) ? JHTML::_('image', $imagepath . $elsettings->get('signup_webform_img'), JText::_($elsettings->get('signup_webform_text'))) : JHTML::_('image', $imagepath . $p->image, JText::_($p->name)); $link = JRoute::_(RedeventHelperRoute::getSignupRoute('webform', $event->slug, $event->xslug, $p->slug)); $venues_html .= ' ' . JHTML::_('link', $link, $img) . ' '; } } else { $venues_html .= ' ' . JHTML::_('link', JRoute::_(RedeventHelperRoute::getSignupRoute('webform', $event->slug, $event->xslug)), JHTML::_('image', $imagepath . $elsettings->get('signup_webform_img'), JText::_($elsettings->get('signup_webform_text')))) . ' '; } break; case 'formaloffer': $venues_html .= ' ' . JHTML::_('link', JRoute::_('index.php?option=com_redevent&view=signup&subtype=formaloffer&task=signup&xref=' . $event->xslug . '&id=' . $event->slug), JHTML::_('image', $imagepath . $elsettings->get('signup_formal_offer_img'), JText::_($elsettings->get('signup_formal_offer_text')), 'width="24px" height="24px" border="0"'), 'target="_blank"') . ' '; break; } } $description .= $venues_html; $description .= '</td></tr></tbody></table>'; $item = new JFeedItem(); $item->title = $event->full_title; $item->link = $event_url; $item->description = $description; $item->date = ''; $item->category = $event->venue; // loads item info into rss array $document->addItem($item); } }
function getObjectLink($id) { // url link creation for given object by id $link = JRoute::_(RedeventHelperRoute::getDetailsRoute($id)); return $link; }
foreach ($this->registers as $key => $register) { if ($register->submitter->waitinglist == 1) { if ($register->submitter->uid == $this->user->get('id') || $this->candeleteattendees) { echo '<li><ul class="attendee myreg">'; } else { echo '<li><ul class="attendee">'; } foreach ($register->answers as $k => $name) { if (stristr($name, '~~~')) { $name = str_replace('~~~', '<br />', $name) . '<br />'; } echo "<li class='userfield " . strtolower($k) . "'>" . $name . "</li>"; } if ($this->unreg_check && $register->submitter->uid == $this->user->get('id') || $this->candeleteattendees) { $unreg_url = JRoute::_(RedeventHelperRoute::getDetailsRoute($this->row->slug, $this->row->xslug) . '&task=delreguser&rid=' . $register->attendee_id); echo '<li>' . JHTML::link($unreg_url, JText::_('COM_REDEVENT_UNREGISTER'), array('class' => 'unreglink')) . '</li>'; } echo '</ul></li>'; } } ?> </ul> </div> <?php } ?> </div> <?php } echo JHTML::_('link', JRoute::_(RedeventHelperRoute::getDetailsRoute($this->row->slug, $this->row->xslug)), JText::_('COM_REDEVENT_RETURN_EVENT_DETAILS'));
function _displayRssCal() { define('CACHE', './cache'); $mainframe =& JFactory::getApplication(); $elsettings = redEVENTHelper::config(); $id = JRequest::getInt('id'); $offset = (double) $mainframe->getCfg('offset'); $hours = $offset >= 0 ? floor($offset) : ceil($offset); $mins = abs($offset - $hours) * 60; $utcoffset = sprintf('%+03d:%02d', $hours, $mins); $feed = new rsscalCreator('redEVENT feed', JURI::base(), ''); $feed->setFilename(CACHE, 'venue' . $id . '.rss'); $model = $this->getModel(); $model->setLimit($elsettings->get('ical_max_items', 100)); $model->setLimitstart(0); $rows =& $this->get('Data'); foreach ($rows as $row) { // strip html from feed item title $title = $this->escape($row->full_title); $title = html_entity_decode($title); // strip html from feed item category if (!empty($row->categories)) { $category = array(); foreach ($row->categories as $cat) { $category[] = $cat->catname; } $category = $this->escape(implode(', ', $category)); $category = html_entity_decode($category); } else { $category = ''; } //Format date $date = strftime($elsettings->get('formatdate', '%d.%m.%Y'), strtotime($row->dates)); $rssstartdate = $row->dates; if (!$row->enddates) { $displaydate = $date; $rssenddate = $row->dates; } else { $enddate = strftime($elsettings->get('formatdate', '%d.%m.%Y'), strtotime($row->enddates)); $rssenddate = $row->enddates; $displaydate = $date . ' - ' . $enddate; } //Format time if ($row->times) { $time = strftime($elsettings->get('formattime', '%H:%M'), strtotime($row->times)); $displaytime = $time; $rssstartdate .= 'T' . $row->times . $utcoffset; } if ($row->endtimes) { $endtime = strftime($elsettings->get('formattime', '%H:%M'), strtotime($row->endtimes)); $displaytime = $time . ' - ' . $endtime; $rssenddate .= 'T' . $row->endtimes . $utcoffset; } // url link to event $link = JURI::base() . RedeventHelperRoute::getDetailsRoute($row->id); $link = JRoute::_($link); $item = new rsscalItem($row->full_title, $link); $item->addElement('ev:type', $category); // $item->addElement( 'ev:organizer', "" ); $item->addElement('ev:location', $row->venue); $item->addElement('ev:startdate', $rssstartdate); $item->addElement('ev:enddate', $rssenddate); $item->addElement('dc:subject', $row->full_title); $feed->addItem($item); } $feed->returnRSS(CACHE); }
<?php echo REOutput::mailbutton($this->row->slug, 'details', $this->params); ?> <?php echo REOutput::printbutton($this->print_link, $this->params); ?> <?php if ($this->params->get('event_ics', 1)) { ?> <?php $img = JHTML::image(JURI::base() . 'components/com_redevent/assets/images/iCal2.0.png', JText::_('COM_REDEVENT_EXPORT_ICS')); ?> <?php echo JHTML::link(JRoute::_(RedeventHelperRoute::getDetailsRoute($this->row->slug, $this->row->xslug) . '&format=raw&layout=ics', false), $img); ?> <?php } ?> </p> <?php if ($this->params->def('show_page_title', 1)) { ?> <h1 class="componentheading"> <?php echo $this->row->full_title; ?> </h1> <?php
function _displayCancel($tpl) { $user =& JFactory::getUser(); $uri =& JFactory::getURI(); $xref = JRequest::getInt('xref'); $rid = JRequest::getInt('rid'); $key = JRequest::getVar('submit_key', '', 'request', 'string'); $document =& JFactory::getDocument(); $document->setTitle(JText::_('COM_REDEVENT_PAGETITLE_CANCEL_REGISTRATION')); $model = $this->getModel(); $model->setXref($xref); $course = $this->get('SessionDetails'); $course->dateinfo = REOutput::formatdate($course->dates, $course->times); $cancellink = JRoute::_(RedeventHelperRoute::getDetailsRoute($course->slug, $course->xref) . '&task=delreguser&rid=' . $rid); $this->assignRef('course', $course); $this->assignRef('xref', $xref); $this->assignRef('rid', $rid); $this->assignRef('cancellink', $cancellink); $this->assignRef('action', JRoute::_('index.php?option=com_redevent&xref=' . $xref . '&rid=' . $rid)); parent::display($tpl); }