/administrator/components/com_xmap/extensions/com_eventlist.php
PHP | 232 lines | 199 code | 14 blank | 19 comment | 37 complexity | e8503638bd2f14516d9735ce9499a2de MD5 | raw file
- <?php
- /**
- * $Id: com_eventlist.php 52 2009-10-24 22:35:11Z guilleva $
- * $LastChangedDate: 2009-10-24 16:35:11 -0600 (Sat, 24 Oct 2009) $
- * $LastChangedBy: guilleva $
- * Xmap by Guillermo Vargas
- * a sitemap component for Joomla! CMS (http://www.joomla.org)
- * Author Website: http://joomla.vargas.co.cr
- * Project License: GNU/GPL http://www.gnu.org/copyleft/gpl.html
- */
-
- /*
- * Handles EventList Category structure
- */
- class xmap_com_eventlist
- {
- /*
- * This function is called before a menu item is printed. We use it to set the
- * proper uniqueid for the item
- */
- function prepareMenuItem(&$node) {
- $link_query = parse_url( $node->link );
- parse_str( html_entity_decode($link_query['query']), $link_vars);
- $id = intval(xmap_com_eventlist::getParam($link_vars,'id',0));
- $view = xmap_com_eventlist::getParam($link_vars,'view',0);
- if ( !$id ) {
- $menu =& JSite::getMenu();
- $params = $menu->getParams($node->id);
- $id = $params->get('id',0);
- }
- if ( $id ) {
- if ( $view == 'details' ) {
- $node->uid = 'com_eventliste'.$id;
- $node->expandible = false;
- } elseif ( $view == 'categoryevents' ) {
- $node->expandible = true;
- $node->uid = 'com_eventlistc'.$id;
- } elseif ( $view == 'venueevents' ) {
- $node->expandible = true;
- $node->uid = 'com_eventlistv'.$id;
- }
- } else {
- $node->expandible = true;
- }
- }
-
- /*
- * Return Category tree
- */
- function getTree( &$xmap, &$parent, $params )
- {
- $catid=0;
- $venid=0;
- $link_query = parse_url( $parent->link );
- parse_str( html_entity_decode($link_query['query']), $link_vars );
- $view = JArrayHelper::getValue($link_vars,'view','');
-
- if ( $view == 'categoryevents' ) {
- $catid = intval(JArrayHelper::getValue($link_vars,'id',0));
- }elseif ( $view == 'venueevents' ) {
- $venid = intval(JArrayHelper::getValue($link_vars,'id',0));
- }elseif ( $view != 'venues' && $view != 'categories' ) { //Do not expand other kind of menu items
- return true;
- }
-
- $include_events = JArrayHelper::getValue( $params, 'include_events',1,'' );
- $include_events = ( $include_events == 1
- || ( $include_events == 2 && $xmap->view == 'xml')
- || ( $include_events == 3 && $xmap->view == 'html'));
- $params['include_events'] = $include_events;
-
- $priority = JArrayHelper::getValue($params,'cat_priority',$parent->priority,'');
- $changefreq = JArrayHelper::getValue($params,'cat_changefreq',$parent->changefreq,'');
- if ($priority == '-1')
- $priority = $parent->priority;
- if ($changefreq == '-1')
- $changefreq = $parent->changefreq;
-
- $params['cat_priority'] = $priority;
- $params['cat_changefreq'] = $changefreq;
-
- $priority = JArrayHelper::getValue($params,'venue_priority',$parent->priority,'');
- $changefreq = JArrayHelper::getValue($params,'venue_changefreq',$parent->changefreq,'');
- if ($priority == '-1')
- $priority = $parent->priority;
- if ($changefreq == '-1')
- $changefreq = $parent->changefreq;
-
- $params['venue_priority'] = $priority;
- $params['venue_changefreq'] = $changefreq;
-
- $priority = JArrayHelper::getValue($params,'event_priority',$parent->priority,'');
- $changefreq = JArrayHelper::getValue($params,'event_changefreq',$parent->changefreq,'');
- if ($priority == '-1')
- $priority = $parent->priority;
-
- if ($changefreq == '-1')
- $changefreq = $parent->changefreq;
-
- $params['event_priority'] = $priority;
- $params['event_changefreq'] = $changefreq;
-
- if ( $include_events ) {
- $params['limit'] = '';
- $params['days'] = '';
- $limit = JArrayHelper::getValue($params,'max_events','','');
-
- if ( intval($limit) )
- $params['limit'] = ' LIMIT '.$limit;
-
- $days = JArrayHelper::getValue($params,'max_age','','');
- if ( intval($days) )
- $params['days'] = ' AND filedate >= \''.date('Y-m-d H:m:s', ($xmap->now - ($days*86400)) ) ."' ";
- }
-
- switch ($view) {
- case 'categories':
- case 'categoriesdetailed':
- case 'categoryevents':
- xmap_com_eventlist::getCategoryTree( $xmap, $parent, $params, $catid );
- break;
- case 'venues':
- case 'venueevents':
- xmap_com_eventlist::getVenueTree( $xmap, $parent, $params, $venid );
- break;
- }
- }
-
- function getCategoryTree(&$xmap, &$parent, $params,$catid=0)
- {
-
- $db = &JFactory::getDBO();
- $gid = intval($xmap->gid);
-
- $query = "SELECT id , catname, alias"
- . "\nFROM #__eventlist_categories"
- . "\nWHERE published = 1 and parent_id=$catid"
- . "\nAND access <= $gid"
- . "\nORDER BY ordering";
- $db->setQuery($query);
- $cats = $db->loadObjectList();
-
- $xmap->changeLevel(1);
- foreach($cats as $cat)
- {
- $node = new stdclass;
- $node->id = $parent->id;
- $node->uid = $parent->uid.'c'.$cat->id;
- $node->name = $cat->catname;
- $node->link = 'index.php?option=com_eventlist&view=categoryevents&id='.$cat->id.':'.$cat->alias;
- $node->expandible = true;
- $xmap->printNode($node);
- }
-
- if ($params['include_events']) {
- $db->setQuery ("select `id`, `title`,`alias`,UNIX_TIMESTAMP(`created`) as `created`,UNIX_TIMESTAMP(`modified`) as `modified` from #__eventlist_events where catsid=$catid and `published` = '1' ".$params['days']." order by dates,times,enddates,endtimes " . $params['limit']);
- # echo $db->getQuery ();
- $rows = $db->loadObjectList();
- foreach ($rows as $event) {
- $node = new stdclass;
- $node->id = $parent->id;
- $node->uid = $parent->uid .'e'.$event->id;
- $node->name = $event->title;
- $node->modified = ($event->modified? $event->modified : $event->created);
- $node->link = 'index.php?option=com_eventlist&view=details&id='.$event->id.':'.$event->alias;
- $node->priority = $params['event_priority'];
- $node->changefreq = $params['event_changefreq'];
- $node->expandible = false;
- $xmap->printNode($node);
- }
- }
-
- $xmap->changeLevel(-1);
-
- }
-
- function getVenueTree(&$xmap, &$parent, $params,$id=0)
- {
-
- $db = &JFactory::getDBO();
- $gid = intval($xmap->gid);
-
- $xmap->changeLevel(1);
- if ( !$id ) {
- $query = "SELECT id , venue, alias"
- . "\nFROM #__eventlist_venues"
- . "\nWHERE published = 1"
- . "\nORDER BY ordering";
- $db->setQuery($query);
- $venues = $db->loadObjectList();
-
- foreach($venues as $venue)
- {
- $node = new stdclass;
- $node->id = $parent->id;
- $node->uid = $parent->uid.'v'.$venue->id;
- $node->name = $venue->venue;
- $node->link = 'index.php?option=com_eventlist&view=venueevents&id='.$venue->id.':'.$venue->alias;
- $node->expandible = true;
- if ( $xmap->printNode($node) ) {
- xmap_com_eventlist::getVenueTree($xmap, $parent,$params,$venue->id);
- }
- }
- } else {
- if ($params['include_events']) {
- $db->setQuery ("select `id`, `title`,`alias`,UNIX_TIMESTAMP(`created`) as `created`,UNIX_TIMESTAMP(`modified`) as `modified` from #__eventlist_events where catsid=$id and `published` = '1' ".$params['days']." order by dates,times,enddates,endtimes " . $params['limit']);
- $rows = $db->loadObjectList();
- foreach($rows as $event) {
- $node = new stdclass;
- $node->id = $parent->id;
- $node->uid = $parent->uid .'e'.$event->id;
- $node->name = $event->title;
- $node->modified = ($event->modified? $event->modified : $event->created);
- $node->link = 'index.php?option=com_eventlist&view=details&id='.$event->id.':'.$event->alias;
- $node->priority = $params['event_priority'];
- $node->changefreq = $params['event_changefreq'];
- $node->expandible = false;
- $xmap->printNode($node);
- }
- }
- }
-
- $xmap->changeLevel(-1);
-
- }
-
- function &getParam($arr, $name, $def) {
- $var = JArrayHelper::getValue( $arr, $name, $def, '' );
- return $var;
- }
- }
- ?>