Example #1
0
 /**
  * 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);
 }
Example #2
0
 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();
 }
Example #3
0
 /**
  * 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);
 }
Example #4
0
 /**
  * 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;
 }
Example #5
0
      <?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 
}
Example #6
0
 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;
 }
Example #7
0
 /**
  * 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);
 }
Example #8
0
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':
                    ?>
Example #9
0
				<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));
Example #10
0
 /**
  * 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;
 }
Example #11
0
            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;
Example #12
0
 /**
  * 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 &amp; 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);
     }
 }
Example #13
0
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>
Example #14
0
    /**
     * 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 . ' &nbsp; ' . 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 .= '&nbsp;' . 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"') . '&nbsp; ';
                        break;
                    case 'phone':
                        $venues_html .= '&nbsp;' . 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"') . '&nbsp; ';
                        break;
                    case 'external':
                        $venues_html .= '&nbsp;' . 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"') . '&nbsp; ';
                        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 .= '&nbsp;' . JHTML::_('link', $link, $img) . '&nbsp; ';
                            }
                        } else {
                            $venues_html .= '&nbsp;' . JHTML::_('link', JRoute::_(RedeventHelperRoute::getSignupRoute('webform', $event->slug, $event->xslug)), JHTML::_('image', $imagepath . $elsettings->get('signup_webform_img'), JText::_($elsettings->get('signup_webform_text')))) . '&nbsp; ';
                        }
                        break;
                    case 'formaloffer':
                        $venues_html .= '&nbsp;' . 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"') . '&nbsp; ';
                        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;
 }
Example #16
0
        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'));
Example #17
0
 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);
 }
Example #18
0
		<?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 
Example #19
0
 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);
 }