예제 #1
0
 /**
  * Method to get the field input markup.
  *
  * @return    string    The field input markup.
  * @since    1.6
  */
 protected function getInput()
 {
     if (!class_exists('rseventsproHelper')) {
         require_once JPATH_SITE . '/components/com_rseventspro/helpers/rseventspro.php';
     }
     $locations = rseventsproHelper::getLocations(true);
     $options = array();
     $options[] = JHTML::_('select.option', '0', JText::_('ROKMINIEVENTS3_RSEVENTS_ALL_LOCATIONS'));
     foreach ($locations as $option) {
         $options[] = JHTML::_('select.option', $option->value, $option->text);
     }
     return JHTML::_('select.genericlist', $options, $this->name, 'multiple="multiple" class="inputbox"', 'value', 'text', $this->value, $this->name);
 }
예제 #2
0
 /**
  * @param $params
  * @return array
  */
 function getEvents(&$params)
 {
     if (!class_exists('rseventsproHelper')) {
         require_once JPATH_SITE . '/components/com_rseventspro/helpers/rseventspro.php';
     }
     if (!class_exists('RSEvent')) {
         require_once JPATH_SITE . '/components/com_rseventspro/helpers/events.php';
     }
     if (!class_exists('RseventsproHelperRoute')) {
         require_once JPATH_SITE . '/components/com_rseventspro/helpers/route.php';
     }
     // Reuse existing language file from JomSocial
     $language = JFactory::getLanguage();
     $language->load('com_rseventspro', JPATH_ROOT);
     $query_start_date = null;
     $query_end_date = null;
     if ($params->get('time_range') == 'time_span' || $params->get('rangespan') != 'all_events') {
         $query_start_date = $params->get('startmin', null);
         $startMax = $params->get('startmax', false);
         if ($startMax !== false) {
             $query_end_date = $startMax;
         }
     }
     $db = JFactory::getDBO();
     $query = $db->getQuery(true);
     $nullDate = $db->getNullDate();
     $now = JFactory::getDate()->toSql();
     $query->select('e.id, e.name as title ,e.description, e.start as startdate, e.end as enddate, e.allday');
     $query->select('CONCAT_WS(",", t.id) AS category_ids');
     $query->from('#__rseventspro_events AS e');
     $query->join('left', '#__rseventspro_taxonomy AS t ON (t.ide = e.id AND t.type = "category")');
     $query->where('e.published = 1');
     $query->group('e.id');
     $query->order('e.start ASC');
     $catids = $params->get('rsevents_category', array());
     if (isset($catids) && !empty($catids) && !in_array('0', $catids)) {
         foreach ($catids as $catid) {
             $query->where($catid . ' IN (' . 'CONCAT_WS(",", t.id)' . ')');
         }
     }
     $locationids = $params->get('rsevents_venue', array());
     if (!is_array($locationids)) {
         $locationids = array($locationids);
     }
     if (isset($locationids) && !empty($locationids) && !in_array('0', $locationids)) {
         $query->where('e.location IN (' . implode(",", $locationids) . ')');
     }
     if (!empty($query_start_date) && !is_null($query_start_date)) {
         $rstartdate = $query_start_date;
         if ($params->get('rsevents_past', 0) == 0 && $rstartdate < $now) {
             $rstartdate = $now;
         }
         $query->where('e.start >= ' . $db->quote($rstartdate));
     } else {
         if ($params->get('rsevents_past', 0) == 0) {
             $rstartdate = $now;
             $query->where('((e.end >= ' . $db->quote($rstartdate) . ') OR (e.start >= ' . $db->quote($rstartdate) . ' AND e.allday = 1))');
         }
     }
     if (!empty($query_end_date) && !is_null($query_end_date)) {
         $renddate = $query_end_date;
         $query->where('e.start <= ' . $db->quote($renddate));
     }
     $db->setQuery($query);
     $rows = $db->loadObjectList();
     $events = array();
     if (empty($rows)) {
         return $events;
     }
     $total_count = 1;
     $total_max = $params->get('rsevents_total', 10);
     foreach ($rows as $row) {
         if ($params->get('rsevents_links') != 'link_no') {
             $link = array('internal' => $params->get('rsevents_links') == 'link_internal' ? true : false, 'link' => 'index.php?option=com_rseventspro&layout=show&id=' . rseventsproHelper::sef($row->id, $row->title));
         } else {
             $link = false;
         }
         $event = new RokMiniEvents3_Event($row->startdate, $row->enddate, $row->title, $row->description, $link);
         if ($row->allday) {
             $event->setAllDay(true);
         }
         $events[] = $event;
         $total_count++;
         if ($total_count > $total_max) {
             break;
         }
     }
     //$events = array();
     return $events;
 }