Hide X
The Translation of the JEvents Component in this language is incomplete - please consider completing the translation and contributing it to the project"; } $cfg = & EventsConfig::getInstance(); /* // get configuration parameters $cfgclass = $mosConfig_absolute_path . '/administrator/components/com_events/lib/config.php'; require_once($cfgclass); $cfg = & EventsConfig::getInstance(); // CHECK LANGUAGE if( !defined( '_CAL_LANG_INCLUDED' )) { $pathLang = $mosConfig_absolute_path . '/components/com_events/language/'; if( file_exists( $pathLang . $mosConfig_lang . '.php' )){ include_once( $pathLang . $mosConfig_lang . '.php' ); } else { include_once( $pathLang . 'english.php'); } } */ // SOMES VARIABLES global $agid, $mainframe; $option = mosGetParam( $_REQUEST, 'option', 'com_events' ); $task = mosGetParam( $_REQUEST, 'task', $cfg->get('com_startview')); $mode = mosGetParam( $_REQUEST, 'mode', 'com_events' ); $limit = intval( mosGetParam( $_REQUEST, 'limit', '' ) ); $limitstart = intval( mosGetParam( $_REQUEST, 'limitstart', 0 ) ); $offset = intval( mosGetParam( $_REQUEST, 'offset', 0 ) ); $id = intval( mosGetParam( $_REQUEST, 'id', 0 ) ); $agid = intval( mosGetParam( $_REQUEST, 'agid', 0 ) ); $keyword = $database->getEscaped(mosGetParam( $_REQUEST, 'keyword', '' )); $goodexit = mosGetParam( $_REQUEST, 'goodexit', 0 ); $Itemid = intval( mosGetParam( $_REQUEST, 'Itemid', 0 )); $pop = mosGetParam( $_REQUEST, 'pop', 0 ); $catid = intval( mosGetParam( $_REQUEST, 'catid', 0 )); $catidsIn =urldecode( mosGetParam( $_REQUEST, 'catids', 'NONE' ) ); $menu = $mainframe->get( 'menu' ); // if no catids from GET or POST default to the menu values // Note that module links must pass a non default value $catids = array(); if ($catidsIn == "NONE") { // Parameters // Joomla 1.5 compatability if (isset($menu)) $params = new mosParameters( $menu->params ); else $params =& new mosParameters(null); $catidList = ""; for ($c=0; $c < 999; $c++) { $nextCID = "catid$c"; // stop looking for more catids when you reach the last one! if (!$nextCatId = $params->get( $nextCID, null)) { break; } if ( !in_array( $nextCatId, $catids )){ $catids[] = $nextCatId; $catidList .= ( strlen( $catidList )>0 ? ',' : '' ) . $nextCatId; } } $catidsOut = str_replace( ',', '|', $catidList ); } else { $catids = explode( '|', $catidsIn ); // paranoid hardening! $catidList = ''; for ($i=0; $i < count($catids); $i++) { $catids[$i] = intval($catids[$i]); $catidList .= (strlen($catidList) > 0 ? ',' : '') . $catids[$i]; } $catidsOut = str_replace(',', '|', $catidList); } // SET LOCAL $year = intval( mosGetParam( $_REQUEST, 'year', strftime( '%Y', time() + ( $mosConfig_offset*60*60 )) )); $month = intval( mosGetParam( $_REQUEST, 'month', strftime( '%m', time() + ( $mosConfig_offset*60*60 )) )); $day = intval( mosGetParam( $_REQUEST, 'day', strftime( '%d', time() + ( $mosConfig_offset*60*60 )) )); if( $day <= '9' & ereg( "(^[1-9]{1})", $day )) { $day = '0' . $day; } if( $month <= '9' & ereg( "(^[1-9]{1})", $month )) { $month = '0' . $month; } /* moved to comutils.php [tstahl] // SOMES INCLUDES require_once( $mainframe->getPath( 'front_html' ) ); if( !class_exists( 'mosEvents' )) { require_once( $mainframe->getPath( 'class' ) ); } */ // paging must be implemented //require_once( "includes/pageNavigation.php" ); // PREVENT Itemid MISSING if( !isset($Itemid) || empty( $Itemid )){ $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE link = 'index.php?option=$option'" ; $database->setQuery( $query ); // This should ideally to a test on catids and find nice enclosing menu item! $_REQUEST['Itemid'] = $database->loadResult(); } $Itemid = intval( mosgetParam( $_REQUEST, 'Itemid') ); // CHECK ACCESS global $agid, $gid,$is_event_editor; // Joomla1.5 $gid = intval( $my->gid ); $username = $my->username; $is_event_editor = 0; // override standard MOS ACLs with Events Config settings if (( $cfg->get('com_adminlevel') == 0 ) && ( strtolower( $my->usertype ) == 'registered')) { $is_event_editor = 1; } elseif ( $cfg->get('com_adminlevel') == 2) { $is_event_editor = 1; } else { $is_event_editor = ( strtolower( $my->usertype ) == 'author' || strtolower( $my->usertype ) == 'publisher' || strtolower( $my->usertype ) == 'editor' || strtolower( $my->usertype ) == 'manager' || strtolower( $my->usertype ) == 'administrator' || strtolower( $my->usertype ) == 'super administrator' ); } // Dynamic Page Title // Joomla1.5 global $mainframe; if (isset($menu->name) && isset($mainframe)) $mainframe->SetPageTitle( $menu->name ); // Editor usertype check $access = new stdClass(); $access->canEdit = $acl->acl_check( 'action', 'edit', 'users', $my->usertype, 'content', 'all' ); $access->canEditOwn = $acl->acl_check( 'action', 'edit', 'users', $my->usertype, 'content', 'own' ); $access->canPublish = $acl->acl_check( 'action', 'publish', 'users', $my->usertype, 'content', 'all' ); // cache $now = date( 'Y-m-d H:i', time() + $mosConfig_offset * 60 * 60 ); // cache activation $cache =& mosCache::getCache( 'com_events' ); //////////////////////////////////////////////////////////////////// // FONCTIONS //////////////////////////////////////////////////////////////////// function hasAdvancedRowPermissions($row,$my){ if( strtolower( $my->usertype ) == 'editor' || strtolower( $my->usertype ) == 'manager' || strtolower( $my->usertype ) == 'publisher' || strtolower( $my->usertype ) == 'administrator' || strtolower( $my->usertype ) == 'super administrator') { return true; } else if( $row->created_by == $my->id ){ return true; } return false; } function sendAdminMail( $adminName, $adminEmail, $subject='', $title='', $content='', $author='', $live_site, $modifylink ) { if (!$adminEmail) return; $htmlmail = true; $lf = ($htmlmail === true) ? '
' : '\r\n'; $content = 'Title: ' . $title . $lf.$lf . $content; $content .= $lf.$lf. sprintf( _CAL_LANG_MAIL_TO_ADMIN, $live_site, $author ); $content .= $lf . 'Edit : ' . $modifylink; // mail function //mosMail( $mosConfig_mailfrom, $mosConfig_fromname, $email, $subject, $msg ); mosMail( $adminEmail, $adminName, $adminEmail, $subject, $content, $htmlmail ); } function publishEvent($id) { global $database, $access; if($access->canPublish ){ $id = intval($id); $query = "UPDATE #__events" . "\n SET state = 1" . "\n WHERE id = $id" ; $database->setQuery( $query ); $database->query(); } } function saveEvent( $db ) { global $mosConfig_offset, $access, $my, $is_event_editor, $Itemid, $option; $cfg = & EventsConfig::getInstance(); $start_time = mosGetParam( $_POST, 'start_time', '08:00' ); $start_pm = intval( mosGetParam( $_POST, 'start_pm', '0' ) ); $end_time = mosGetParam( $_POST, 'end_time', '17:00' ); $end_pm = intval( mosGetParam( $_POST, 'end_pm', '0' ) ); $reccurweekdays = mosGetParam( $_POST, 'reccurweekdays', '' ); $reccurweeks = mosGetParam( $_POST, 'reccurweeks', '' ); $reccurday_week = mosGetParam( $_POST, 'reccurday_week', '' ); $reccurday_month = mosGetParam( $_POST, 'reccurday_month', '' ); $reccurday_year = mosGetParam( $_POST, 'reccurday_year', '' ); $now = strftime( '%Y-%m-%d %H:%M:%S', time() + ( $mosConfig_offset * 60 * 60 )); $row = new mosEvents( $db ); if (!$row->bind( $_POST )) { echo "\n"; exit(); } if( is_null( $row->useCatColor )){ $row->useCatColor = 0; } if( $row->id ){ $row->modified = $now; if( $my->id ){ $row->modified_by = $my->id; } } else { $row->created = $now; if( $my->id ){ $row->created_by = $my->id; } } if( $row->catid ){ $row->catid = intval( $row->catid ); } $row->title = htmlspecialchars( $row->title ); // Clean content $row->content = preg_replace( "']*?>.*?'si", '', $row->content ); $row->content = preg_replace( "']*?>.*?'si", '', $row->content ); $row->content = preg_replace( "']*?>.*?'si", '', $row->content ); $row->content = str_replace( '&', '&', $row->content ); $row->content = html_entity_decode( $row->content ); // Clean adress $row->adresse_info = preg_replace( "']*?>.*?'si", '', $row->adresse_info ); $row->adresse_info = preg_replace( "']*?>.*?'si", '', $row->adresse_info ); $row->adresse_info = preg_replace( "']*?>.*?'si", '', $row->adresse_info ); $row->adresse_info = str_replace( '&', '&', $row->adresse_info ); $row->adresse_info = strip_tags( $row->adresse_info ); $row->adresse_info = htmlspecialchars( $row->adresse_info, ENT_QUOTES ); // Clean contact $row->contact_info = preg_replace( "']*?>.*?'si", '', $row->contact_info ); $row->contact_info = preg_replace( "']*?>.*?'si", '', $row->contact_info ); $row->contact_info = preg_replace( "']*?>.*?'si", '', $row->contact_info ); $row->contact_info = str_replace( '&', '&', $row->contact_info ); $row->contact_info = strip_tags( $row->contact_info ); $row->contact_info = htmlspecialchars( $row->contact_info, ENT_QUOTES ); // Clean extra $row->extra_info = preg_replace( "']*?>.*?'si", '', $row->extra_info ); $row->extra_info = preg_replace( "']*?>.*?'si", '', $row->extra_info ); $row->extra_info = preg_replace( "']*?>.*?'si", '', $row->extra_info ); $row->extra_info = str_replace( '&', '&', $row->extra_info ); $row->extra_info = strip_tags( $row->extra_info ); $row->extra_info = htmlspecialchars( $row->extra_info, ENT_QUOTES ); $row->created_by_alias = htmlspecialchars( $row->created_by_alias ); // reformat the time into 24hr format if necessary if( $cfg->get('com_calUseStdTime') == '1' ){ list( $hrs,$mins) = explode( ':', $start_time ); $hrs = intval( $hrs ); $mins = intval( $mins ); if( $hrs != 12 && $start_pm ){ $hrs += 12; }elseif( $hrs == 12 && !$start_pm ){ $hrs = 0; } if( $hrs < 10 ){ $hrs = '0' . $hrs; } if( $mins < 10 ){ $mins = '0' . $mins; } $start_time = $hrs . ':' . $mins; list( $hrs,$mins ) = explode( ':', $end_time ); $hrs = intval( $hrs ); $mins = intval( $mins ); if( $hrs != 12 && $end_pm ){ $hrs += 12; }elseif( $hrs == 12 && !$end_pm ){ $hrs = 0; } if( $hrs < 10 ){ $hrs = '0' . $hrs; } if( $mins < 10 ){ $mins = '0' . $mins; } $end_time = $hrs . ':' . $mins; } if( $row->publish_up ){ $publishtime = $row->publish_up . ' ' . $start_time . ':00'; $row->publish_up = strftime( '%Y-%m-%d %H:%M:%S', strtotime( $publishtime )); } else { $row->publish_up = strftime( "%Y-%m-%d 00:00:00", time()+($mosConfig_offset*60*60)); //date( "Y-m-d 00:00:00" ); } if ($row->publish_down) { $publishtime = $row->publish_down." ".$end_time.":00"; $row->publish_down = strftime("%Y-%m-%d %H:%M:%S",strtotime($publishtime)); } else { $row->publish_down = $now; } if( $row->publish_up <> $row->publish_down ){ $row->reccurtype = intval( $row->reccurtype ); } else { $row->reccurtype = 0; } if( $row->reccurtype == 0 ){ $row->reccurday = ''; }elseif( $row->reccurtype == 1 ){ $row->reccurday = $reccurday_week; }elseif( $row->reccurtype == 2 ){ $row->reccurday = ''; }elseif( $row->reccurtype == 3 ){ $row->reccurday = $reccurday_month; }elseif( $row->reccurtype == 4 ){ $row->reccurday = ''; }elseif( $row->reccurtype == 5 ){ $row->reccurday = $reccurday_year; } // Reccur week days if( $reccurweekdays == '' ){ $weekdays = ''; } else { $weekdays = implode( '|', $reccurweekdays ); } $row->reccurweekdays = $weekdays; // Reccur viewable weeks if( $reccurweeks == '' ){ $weekweeks = ''; } else { $weekweeks = implode( '|', $reccurweeks ); } $row->reccurweeks = $weekweeks; // Always unpublish if no Publisher otherwise publish automatically // dmcd nov 16/04 if this is a modified event rather than a new one, // reflect whatever change the user has made to the publish state? $mapping = array( 'registered'=>1, 'author' =>2, 'editor' =>3, 'publisher' =>4, 'manager' =>5, 'administrator'=>6, 'super administrator'=>7); $frontendPublish = $cfg->get('com_frontendPublish'); if ($frontendPublish==0) $frontendPublish=7; // to protect old config files if(array_key_exists( strtolower( $my->usertype ),$mapping)){ $frontendPublish = ($frontendPublish <= $mapping[strtolower( $my->usertype )]); } else { $frontendPublish=false; } if( $row->state == '' ){ if ($frontendPublish){ $row->state = 1; }else{ $row->state = 0; } } $row->mask = 0; if( !$row->check() ){ echo "\n"; exit(); } if( !$row->store() ) { echo "\n"; exit(); } $row->checkin(); // Update Category Count $query = "UPDATE #__categories" . "\n SET count = count+1" . "\n WHERE id = '$row->catid'" ; $db->setQuery( $query ); //$returnlink = 'index.php?option=' . $option . '&Itemid=' . $Itemid; return $row; } function removeEvent( $agid ) { global $database, $option, $Itemid; $cfg = & EventsConfig::getInstance(); //Get Category ID prior to removing event, in order to update counts $query = "SELECT catid" . "\n FROM #__events" . "\n WHERE id = '$agid'" ; $database->setQuery( $query ); $catid = $database->loadResult(); $query = "DELETE FROM #__events" . "\n WHERE id = '$agid'" ; $database->setQuery( $query ); if( !$database->query() ){ echo "\n"; } // Update Category Count $query = "UPDATE #__categories" . "\n SET count = count-1" . "\n WHERE id = '$catid'" ; $database->setQuery( $query ); if( !$database->query() ){ echo "\n"; exit(); } $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_ACT_DELETED )); } function listEventsById( $agid, $includeUnpublished=0 ) { global $database, $gid, $access; // dmcd May 7/04 added category access condition //$sql = "SELECT * FROM #__events WHERE id = '$agid' AND state = '1'"; /* $sql = "SELECT #__events.* FROM #__categories AS b, #__events WHERE #__events.catid = b.id AND b.access <= $gid AND #__events.access <= $gid AND #__events.id = '$agid' AND #__events.state = '1'"; $database->setQuery($sql); */ if( $access->canPublish && $includeUnpublished ){ $query = "SELECT *" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND #__events.id = '$agid'" ; }else{ $query = "SELECT *" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND #__events.id = '$agid'" . "\n AND #__events.state = '1'" ; } $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } function listEventsByDateNEW( $select_date ){ global $database, $gid; $query = "SELECT #__events.*" . "\n , YEAR(publish_up ) as yup, MONTH(publish_up ) as mup, DAYOFMONTH(publish_up ) as dup" . "\n , YEAR(publish_down) as ydn, MONTH(publish_down) as mdn, DAYOFMONTH(publish_down) as ddn" . "\n , HOUR(publish_up ) as hup, MINUTE(publish_up ) as minup, SECOND(publish_up ) as sup" . "\n , HOUR(publish_down) as hdn, MINUTE(publish_down) as mindn, SECOND(publish_down) as sdn" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND ((publish_up >= '$select_date 00:00:00' AND publish_up <= '$select_date 23:59:59')" . "\n OR (publish_down >= '$select_date 00:00:00' AND publish_down <= '$select_date 23:59:59')" . "\n OR (publish_up <= '$select_date 00:00:00' AND publish_down >= '$select_date 23:59:59')" . "\n OR (publish_up >= '$select_date 00:00:00' AND publish_down <= '$select_date 23:59:59')" // added RC3 . "\n )" . "\n AND #__events.state = '1'" . "\n ORDER BY publish_up ASC" ; $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } function listEventsByWeekNEW( $weekstart, $weekend){ global $database, $gid; $query = "SELECT #__events.*" . "\n , YEAR(publish_up ) as yup, MONTH(publish_up ) as mup, DAYOFMONTH(publish_up ) as dup" . "\n , YEAR(publish_down) as ydn, MONTH(publish_down) as mdn, DAYOFMONTH(publish_down) as ddn" . "\n , HOUR(publish_up ) as hup, MINUTE(publish_up ) as minup, SECOND(publish_up ) as sup" . "\n , HOUR(publish_down) as hdn, MINUTE(publish_down) as mindn, SECOND(publish_down) as sdn" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND ((publish_up >= '$weekstart 00:00:00' AND publish_up <= '$weekend 23:59:59')" . "\n OR (publish_down >= '$weekstart 00:00:00' AND publish_down <= '$weekend 23:59:59')" . "\n OR (publish_up <= '$weekstart 00:00:00' AND publish_down >= '$weekend 23:59:59')" . "\n OR (publish_up >= '$weekstart 00:00:00' AND publish_down <= '$weekend 23:59:59')" . "\n )" . "\n AND #__events.state = '1'" . "\n ORDER BY publish_up ASC" ; $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } function listEventsByMonthNew( $year, $month, $order ){ global $database, $gid; $cfg = & EventsConfig::getInstance(); $select_date = $year . '-' . $month . '-01 00:00:00'; $select_date_fin = $year . '-' . $month . '-' . date( 't', mktime( 0, 0, 0, ( $month + 1 ), 0, $year )) . ' 23:59:59'; if( !$order ){ $order = 'publish_up'; } //echo "STILL EXPERMIENTING
"; $query = "SELECT #__events.*" . "\n , YEAR(publish_up ) as yup, MONTH(publish_up ) as mup, DAYOFMONTH(publish_up ) as dup" . "\n , YEAR(publish_down) as ydn, MONTH(publish_down) as mdn, DAYOFMONTH(publish_down) as ddn" . "\n , HOUR(publish_up ) as hup, MINUTE(publish_up ) as minup, SECOND(publish_up ) as sup" . "\n , HOUR(publish_down) as hdn, MINUTE(publish_down) as mindn, SECOND(publish_down) as sdn" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND (((publish_up >= '$select_date%' AND publish_up <= '$select_date_fin%')" . "\n OR (publish_down >= '$select_date%' AND publish_down <= '$select_date_fin%')" . "\n OR (publish_up >= '$select_date%' AND publish_down <= '$select_date_fin%')" . "\n OR (publish_up <= '$select_date%' AND publish_down >= '$select_date_fin%')" . "\n )" . "\n AND #__events.state = '1')" . "\n ORDER BY $order ASC" //publish_up ASC, reccurtype ASC ; $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } // listEventsByWeek NOT USED /* function listEventsByWeek ($year,$month,$day,$offset) { global $database; $rows_per_page=20; if (empty($offset) || !$offset) $offset=1; $from = ($offset-1) * $rows_per_page; $limit = "LIMIT $from, $rows_per_page"; $startday = _CAL_CONF_STARDAY; $numday=((date("w",mktime(0,0,0,$month,$day,$year))-$startday)%7); if ($numday == -1){ $numday = 6; } $week_start = mktime (0, 0, 0, $month, ($day - $numday), $year ); $week_end = $week_start + ( 3600 * 24 * 6 ); $startdate = date ( "Y-m-d 00:00:00", $week_start ); $enddate = date ( "Y-m-d 23:59:59", $week_end ); $sql = "SELECT * FROM #__events WHERE ((publish_up >= '$startdate%' AND publish_up <= '$enddate%') OR (publish_down >= '$startdate%' AND publish_down <= '$enddate%') OR (publish_up >= '$startdate%' AND publish_down <= '$enddate%') OR (publish_down >= '$enddate%' AND publish_up <= '$startdate%')) AND state = '1' ORDER BY publish_up ASC $limit"; $database->setQuery($sql); $detevent = $database->loadObjectList(); return $detevent; } */ function listEventsByYearNEW( $year, $limitstart, $limit ) { global $database, $gid; $rows_per_page = $limit; if( empty( $limitstart ) || !$limitstart ){ $limitstart = 0; } $limit = "LIMIT $limitstart, $rows_per_page"; $query = "SELECT *" . "\n , YEAR(publish_up ) as yup, MONTH(publish_up ) as mup, DAYOFMONTH(publish_up ) as dup" . "\n , YEAR(publish_down) as ydn, MONTH(publish_down) as mdn, DAYOFMONTH(publish_down) as ddn" . "\n , HOUR(publish_up ) as hup, MINUTE(publish_up ) as minup, SECOND(publish_up ) as sup" . "\n , HOUR(publish_down) as hdn, MINUTE(publish_down) as mindn, SECOND(publish_down) as sdn" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND publish_up LIKE '$year%'" . "\n AND (publish_down >= '$year%' OR publish_down = '0000-00-00 00:00:00')" . "\n AND #__events.state = '1'" . "\n ORDER BY publish_up ASC $limit" ; $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } function listEventsByCreator( $creator_id, $limitstart, $limit ){ global $database, $gid, $access; $cfg = & EventsConfig::getInstance(); $rows_per_page = $limit; if( empty( $limitstart) || !$limitstart ){ $limitstart = 0; } $limit = "LIMIT $limitstart, $rows_per_page"; $where = ''; if( $creator_id <> 'ADMIN' ){ $where = " AND created_by = '$creator_id' "; } // dmcd May 7/04 added category access condition /* $sql = "SELECT #__events.* FROM #__categories AS b, #__events WHERE #__events.catid = b.id AND b.access <= $gid AND #__events.access <= $gid AND $where #__events.state='1' ORDER BY publish_up ASC $limit"; */ // Show unpublished events too for publishers and above listing events created by others too! $frontendPublish = $cfg->get('com_frontendPublish', 0) > 0; if( $access->canPublish && $frontendPublish ){ $query = "SELECT *" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n ORDER BY publish_up ASC $limit" ; }else{ $query = "SELECT *" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid $where" . "\n AND #__events.state='1'" . "\n ORDER BY publish_up ASC $limit" ; } $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } function listEventsByCat( $catid, $limitstart, $limit ){ global $database, $gid, $option; $rows_per_page = $limit; if( empty( $limitstart ) || !$limitstart ){ $limitstart = 0; } $limit = "LIMIT $limitstart, $rows_per_page"; // dmcd May 7/04 not sure if this is correct, need to look at function caller to see if( $catid ){ /* $sql = "SELECT * FROM #__categories AS b,#__events WHERE #__events.catid = '$catid' AND #__events.catid = b.id AND b.access <= $gid AND #__events.access <= $gid AND #__events.state = '1' ORDER BY #__events.publish_up ASC $limit"; */ /* GWE change to allow mambelfish to work!*/ $query = "SELECT #__events.*" . "\n FROM #__events" . "\n WHERE #__events.catid IN($catid)" . "\n AND #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND #__events.state = '1'" . "\n ORDER BY publish_up ASC $limit" ; } else { /* $sql = "SELECT #__events.* FROM #__categories AS b, #__events WHERE #__events.catid = b.id AND b.access <= $gid AND #__events.access <= $gid AND b.section='$option' AND b.published='1' AND #__events.state = '1' ORDER BY #__events.publish_up ASC $limit"; */ /* GWE change to allow mambelfish to work!*/ $query = "SELECT #__events.*" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND #__events.state = '1'" . "\n ORDER BY publish_up ASC $limit" ; } $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } function listEventsByKeyword( $keyword, $order, $limit, $limitstart, $useRegX=false ){ global $database, $gid; $rows_per_page = $limit; if( empty( $limitstart ) || !$limitstart ){ $limitstart = 0; } $limit = "LIMIT $limitstart, $rows_per_page"; // dmcd May 7/04, added a FULLTEXT index if not present to events db table for better search // Note this is really temporary. Need to add this to the db schema for events table if( !$useRegX ){ $query = "SHOW INDEX" . "\n FROM #__events" ; $database->setQuery( $query ); $index = $database->loadObjectList('Key_name'); if( !array_key_exists( 'searchIdx', $index ) || $index['searchIdx']->Index_type != 'FULLTEXT' ){ // dmcd go add the required index now $query = "ALTER TABLE #__events" . "\n ADD FULLTEXT searchIdx (title, content)" ; $database->setQuery( $query ); $database->query(); } } //$limit = "LIMIT $from, $rows_per_page"; $limit = "LIMIT $limitstart, $rows_per_page"; if( !$order ){ $order = 'publish_up'; } $order = preg_replace( "/[\t ]+/", '', $order ); $orders = explode( ",", $order ); // this function adds #__events. to the beginning of each ordering field function app_db( $strng ){ return '#__events.' . $strng; } $order = implode( ',', array_map( 'app_db', $orders )); // dmcd May 7/04 added category access condition // $sql = "SELECT * FROM #__events" // WHERE (title LIKE '$keyword' OR content LIKE '$keyword') AND state = '1' ORDER BY $order ASC $limit"; $query = "SELECT #__events.*" . "\n FROM #__categories AS b, #__events" . "\n WHERE #__events.catid = b.id" . "\n AND b.access <= $gid" . "\n AND #__events.access <= $gid" . "\n AND\n" ; $query .= ( $useRegX ) ? "(#__events.title RLIKE '$keyword' OR #__events.content RLIKE '$keyword')\n" : "MATCH (#__events.title, #__events.content) AGAINST ('$keyword' IN BOOLEAN MODE)\n"; $query .= "AND #__events.state = '1'" . "\n ORDER BY $order ASC $limit" ; $database->setQuery( $query ); $detevent = $database->loadObjectList(); return $detevent; } function showNavTableBar( $year, $month, $day, $option, $task, $Itemid ){ // this, previous and next date handling global $mosConfig_offset; $cfg = & EventsConfig::getInstance(); $datetime = strftime( '%Y-%m-%d %H:%M:%S', time() + ( $mosConfig_offset * 60 * 60 )); ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $datetime, $regs ); $this_date = new mosEventDate(); $this_date->setDate( $year, $month, $day ); $today_date = clone($this_date); $today_date->setDate( $regs[1], $regs[2], $regs[3] ); $prev_year = clone($this_date); $prev_year->addMonths( -12 ); $next_year = clone($this_date); $next_year->addMonths( +12 ); $prev_month = clone($this_date); $prev_month->addMonths( -1 ); $next_month = clone($this_date); $next_month->addMonths( +1 ); $prev_week = clone($this_date); $prev_week->addDays( -7 ); $next_week = clone($this_date); $next_week->addDays( +7 ); $prev_day = clone($this_date); $prev_day->addDays( -1 ); $next_day = clone($this_date); $next_day->addDays( +1 ); switch( $task ){ case 'view_year': $dates['prev2'] = $prev_year; $dates['prev1'] = $prev_year; $dates['next1'] = $next_year; $dates['next2'] = $next_year; $alts['prev2'] = _CAL_LANG_PREVIOUSYEAR; $alts['prev1'] = _CAL_LANG_PREVIOUSYEAR; $alts['next1'] = _CAL_LANG_NEXTYEAR; $alts['next2'] = _CAL_LANG_NEXTYEAR; // Show if($cfg->get('com_calUseIconic', 1) == 1) HTML_events::viewNavTableBarIconic( $today_date, $this_date, $dates, $alts, $option, $task, $Itemid ); else HTML_events::viewNavTableBar( $today_date, $this_date, $dates, $alts, $option, $task, $Itemid ); break; case 'view_last': case 'view_month': $dates['prev2'] = $prev_year; $dates['prev1'] = $prev_month; $dates['next1'] = $next_month; $dates['next2'] = $next_year; $alts['prev2'] = _CAL_LANG_PREVIOUSYEAR; $alts['prev1'] = _CAL_LANG_PREVIOUSMONTH; $alts['next1'] = _CAL_LANG_NEXTMONTH; $alts['next2'] = _CAL_LANG_NEXTYEAR; // Show if($cfg->get('com_calUseIconic', 1) == 1) HTML_events::viewNavTableBarIconic( $today_date, $this_date, $dates, $alts, $option, $task, $Itemid ); else HTML_events::viewNavTableBar( $today_date, $this_date, $dates, $alts, $option, $task, $Itemid ); break; case 'view_week': $dates['prev2'] = $prev_month; $dates['prev1'] = $prev_week; $dates['next1'] = $next_week; $dates['next2'] = $next_month; $alts['prev2'] = _CAL_LANG_PREVIOUSMONTH; $alts['prev1'] = _CAL_LANG_PREVIOUSWEEK; $alts['next1'] = _CAL_LANG_NEXTWEEK; $alts['next2'] = _CAL_LANG_NEXTMONTH; // Show if($cfg->get('com_calUseIconic', 1) == 1) HTML_events::viewNavTableBarIconic( $today_date, $this_date, $dates, $alts, $option, $task, $Itemid ); else HTML_events::viewNavTableBar( $today_date, $this_date, $dates, $alts, $option, $task, $Itemid ); break; case 'view_day': default: $dates['prev2'] = $prev_month; $dates['prev1'] = $prev_day; $dates['next1'] = $next_day; $dates['next2'] = $next_month; $alts['prev2'] = _CAL_LANG_PREVIOUSMONTH; $alts['prev1'] = _CAL_LANG_PREVIOUSDAY; $alts['next1'] = _CAL_LANG_NEXTDAY; $alts['next2'] = _CAL_LANG_NEXTMONTH; // Show if($cfg->get('com_calUseIconic', 1) == 1) HTML_events::viewNavTableBarIconic( $today_date, $this_date, $dates, $alts, $option, "view_day", $Itemid ); else HTML_events::viewNavTableBar( $today_date, $this_date, $dates, $alts, $option, "view_day", $Itemid ); break; } } // page navigation function showNavTableText( $year, $total, $limitstart, $limit, $task ){ global $option, $Itemid, $mainframe; if ( ( $total <= $limit ) ) { // not visible when they is no 'other' pages to display } else { // get the total number of records $limitstart = $limitstart ? $limitstart : 0; require_once( mosMainFrame::getCfg( 'absolute_path' ). '/includes/pageNavigation.php' ); $pageNav = new mosPageNav( $total, $limitstart, $limit ); $link = 'index.php?option=' .$option. '&task=' .$task. '&year=' .$year. '&Itemid='. $Itemid; //echo ''; //echo ''; echo '
'; echo $pageNav->writePagesLinks( $link ); echo '

'; //echo ''; //echo ''; } } function showEventsByYearNEW( $year, $limit, $limitstart ){ global $database, $option, $Itemid, $gid, $mosConfig_list_limit; global $mainframe; $cfg = & EventsConfig::getInstance(); include_once(mosMainFrame::getBasePath()."/administrator/components/com_events/colorMap.php"); $query = "SELECT *" . "\n FROM #__categories as b, #__events" . "\n WHERE #__events.catid = b.id" . "\n AND b.access <= $gid" . "\n AND #__events.access <= $gid" . "\n AND publish_up" . "\n LIKE '$year%'" . "\n AND (publish_down >= '$year%' OR publish_down = '0000-00-00 00:00:00')" . "\n AND #__events.state = '1'" ; $database->setQuery( $query ); $counter = $database->loadObjectList(); $total = count( $counter ); // MLr: discuss replacing _CAL_CONF_EVENT_LIST_ROWS_PPG with $mosConfig_list_limit $limit = $limit ? $limit : $cfg->get('com_calEventListRowsPpg'); if( $total <= $limit ) { $limitstart = 0; } if ($cfg->get('com_showrepeats') == '1') { echo '
' . _CAL_LANG_ARCHIVE . '
' . "\n"; echo '' . "\n"; ?> 0){ echo "\n"; echo "' . "\n"; } } echo '
".mosEventsHTML::getDateFormat($year,$month,'',3)."
    \n "; for ($r = 0; $r < count($rows); $r++) { $row = $rows[$r]; // skip repeat type year and not matching month if ($row->reccurtype == 5 & $month != $row->mup) continue; $contactlink = mosEventsHTML::getUserMailtoLink($row->id, $row->created_by); $catid = $row->catid; $catname = mosEventsHTML::getCategoryName($row->catid); $bgcolor = setColor($row); //$fgcolor = mapColor($bgcolor); $fgcolor = "inherit"; //$listyle = 'style="background-color:'.$bgcolor.';color:'.$fgcolor.';margin-bottom:1px;"'; $listyle = 'style="border-color:'.$bgcolor.';"'; echo "
  • \n"; HTML_events::viewEventRow ($row->id,$row->title,'view_detail',$row->yup,$row->mup,$row->dup,$contactlink, $option, $Itemid, $fgcolor,$bgcolor); echo " :: "; HTML_events::viewEventCatRow ($catid,$catname,'view_cat',$row->yup,$row->mup,$row->dup,$option,$Itemid, $fgcolor,$bgcolor); echo "
  • \n"; } echo '

' . "\n"; echo '

' . "\n"; } else { $rows = listEventsByYearNEW( $year, $limitstart, $limit ); $num_events = count( $rows ); $chdate = ''; echo '
' . _CAL_LANG_ARCHIVE . '
' . "\n"; echo '' . "\n"; if( $num_events > 0 ){ for( $r = 0; $r < count( $rows ); $r++ ) { $row = $rows[$r]; $event_month_year = $row->mup . $row->yup; $contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); $catid = $row->catid; $catname = mosEventsHTML::getCategoryName( $row->catid ); $bgcolor = setColor($row); //$fgcolor = mapColor($bgcolor); $fgcolor = "inherit"; //$listyle = 'style="background-color:'.$bgcolor.';color:'.$fgcolor.';margin-bottom:1px;"'; $listyle = 'style="border-color:'.$bgcolor.';"'; if(( $event_month_year <> $chdate ) && $chdate <> '' ){ echo '' . "\n"; } if( $event_month_year <> $chdate ){ echo '' . "\n"; echo '\n"; } else { echo ''; echo ''; } echo '
' . mosEventsHTML::getDateFormat( $row->yup, $row->mup, '', 3 ) . '
    ' . "\n "; } echo "
  • \n"; HTML_events::viewEventRow( $row->id, $row->title, 'view_detail', $row->yup, $row->mup, $row->dup, $contactlink, $option, $Itemid, $fgcolor,$bgcolor); echo ' :: '; HTML_events::viewEventCatRow( $catid, $catname, 'view_cat', $row->yup, $row->mup, $row->dup, $option, $Itemid, $fgcolor,$bgcolor); echo "
  • \n"; $chdate = $event_month_year; } echo "
' . "\n"; echo _CAL_LANG_NO_EVENTFOR . ' ' . $year . '

' . "\n"; echo '

' . "\n"; } showNavTableText( $year, $total, $limitstart, $limit, 'view_year' ); } function showEventsById( $agid, $year, $month, $day ){ global $database, $option, $Itemid,$mainframe,$pop; $cfg = & EventsConfig::getInstance(); // MLr: check if called from detail navigation. if yes, only showEventsByDate make sense if( 0 == $agid ) { showEventsByDate ($year,$month,$day); } else { $rows = listEventsById ($agid, 1); // include unpublished events for publishers and above if( $rows ){ $row = $rows[0]; }else{ $row=null; } $num_row = count($row); if( $num_row ){ $params =& new mosParameters(null); $contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); $event_up = new mosEventDate( $row->publish_up ); $row->start_date = mosEventsHTML::getDateFormat( $event_up->year, $event_up->month, $event_up->day, 0 ); $row->start_time = ( $cfg->get('com_calUseStdTime')== '1' ) ? $event_up->get12hrTime() : $event_up->get24hrTime(); $event_down = new mosEventDate( $row->publish_down ); $row->stop_date = mosEventsHTML::getDateFormat( $event_down->year, $event_down->month, $event_down->day, 0 ); $row->stop_time = ( $cfg->get('com_calUseStdTime') == '1' ) ? $event_down->get12hrTime() : $event_down->get24hrTime(); // jul 8th/04 dmcd - kludge for overnite events, advance the displayed stop_date by 1 day // when an overniter is detected if( $row->stop_time < $row->start_time ) $event_down->addDays(1); // ******************* // ******************* // ******************* // ******************* // ******************* // ******************* // ** This cloaking should be done by mambot/Joomla function // ******************* // ******************* // ******************* // ******************* // ******************* // ******************* // ******************* // ******************* // Parse http and mailto $alphadigit = "([a-z]|[A-Z]|[0-9])"; // Adresse $row->adresse_info = preg_replace("/(mailto:\/\/)?((-|$alphadigit|\.)+)@((-|$alphadigit|\.)+)(\.$alphadigit+)/i","$2@$5$8", $row->adresse_info); $row->adresse_info = preg_replace("/(http:\/\/)((-|$alphadigit|\.)+)(\.$alphadigit+)/i", "$1$2$5$8", $row->adresse_info); //Contact - use global mail cloaking routine! // Joomla 1.5 global $_VERSION, $dispatcher; if (floatval($_VERSION->getShortVersion())>=1.5){ $dispatcher =& JEventDispatcher::getInstance(); } else { global $_MAMBOTS; $_MAMBOTS->loadBotGroup( 'content' ); $dispatcher =& $_MAMBOTS; } $contactDetails = new stdClass(); $contactDetails->text = $row->contact_info; $page = null; $dispatcher->trigger( 'onPrepareContent', array( &$contactDetails, &$params, $page ), true ); $row->contact_info=$contactDetails->text; //$row->contact_info = preg_replace("/(mailto:\/\/)?((-|$alphadigit|\.)+)@((-|$alphadigit|\.)+)(\.$alphadigit+)/i","$2@$5$8", $row->contact_info); //$row->contact_info = preg_replace("/(http:\/\/)((-|$alphadigit|\.)+)(\.$alphadigit+)/i", "$1$2$5$8", $row->contact_info); //Extra $row->extra_info = preg_replace("/(mailto:\/\/)?((-|$alphadigit|\.)+)@((-|$alphadigit|\.)+)(\.$alphadigit+)/i","$2@$5$8", $row->extra_info); //$row->extra_info = preg_replace("/(http:\/\/)((-|$alphadigit|\.)+)(\.$alphadigit+)/i", "$1$2$5", $row->extra_info); $row->extra_info = preg_replace('#(http://)([^\s]*)#', '\\1\\2', $row->extra_info); $mask = mosMainFrame::getCfg( 'hideAuthor' ) ? MASK_HIDEAUTHOR : 0; $mask |= mosMainFrame::getCfg( 'hideCreateDate' ) ? MASK_HIDECREATEDATE : 0; $mask |= mosMainFrame::getCfg( 'hideModifyDate' ) ? MASK_HIDEMODIFYDATE : 0; $mask |= mosMainFrame::getCfg( 'hidePdf' ) ? MASK_HIDEPDF : 0; $mask |= mosMainFrame::getCfg( 'hidePrint' ) ? MASK_HIDEPRINT : 0; $mask |= mosMainFrame::getCfg( 'hideEmail' ) ? MASK_HIDEEMAIL : 0; //$mask |= mosMainFrame::getCfg( 'vote' ) ? MASK_VOTES : 0; $mask |= mosMainFrame::getCfg( 'vote' ) ? (MASK_VOTES|MASK_VOTEFORM) : 0; $mask |= $pop ? MASK_POPUP | MASK_IMAGES | MASK_BACKTOLIST : 0; // Dynamic Page Title // Joomla1.5 global $mainframe; if (isset($mainframe)) $mainframe->SetPageTitle( $row->title ); HTML_events::viewEventDetail($row, $contactlink, $mask, $params); $query = "UPDATE #__events" . "\n SET hits=(hits+1)" . "\n WHERE id='$row->id'" ; $database->setQuery( $query ); if( !$database->query() ) { echo "\n"; exit(); } } } } function showEventsByDateNEW( $year, $month, $day ){ global $database, $option, $Itemid, $catid; global $mainframe; $cfg = & EventsConfig::getInstance(); include_once(mosMainFrame::getBasePath()."/administrator/components/com_events/colorMap.php"); $select_date = sprintf( '%4d-%02d-%02d', $year, $month, $day ); $rows = listEventsByDateNEW( $select_date ); $target_date = mktime(0,0,0,$month,$day,$year); usort( $rows, 'sortEvents' ); $num_events = count( $rows ); $chhours = ''; $printcount = 0; $new_rows_events = array(); if( $num_events > 0 ){ $repeatArray = array(); for( $i = 0; $i < $num_events; $i++ ){ // build array of dates for each event $repeatArray[$i] = mosEventRepeatArrayDay( $rows[$i], $year, $month, $day); } for( $r = 0; $r < $num_events; $r++ ){ $row = $rows[$r]; $event_up = new mosEventDate( $row->publish_up ); $event_up->day = sprintf( '%02d', $event_up->day ); $event_up->month = sprintf( '%02d', $event_up->month ); $event_up->year = sprintf( '%4d', $event_up->year ); $start_time = ( $cfg->get('com_calUseStdTime') == '1' ) ? $event_up->get12hrTime() : $event_up->get24hrTime(); // if start and end times are the same show no start time $event_down = new mosEventDate( $row->publish_down ); $end_time = ($cfg->get('com_calUseStdTime') == "1") ? $event_down->get12hrTime() : $event_down->get24hrTime(); if ($start_time == $end_time) { $start_time = " "; } $new_contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); $new_catname = mosEventsHTML::getCategoryName( $row->catid ); $checkprint = new stdClass(); $checkprint->viewable = false; if (array_key_exists($target_date,$repeatArray[$r])) $checkprint->viewable = true ; if( $checkprint->viewable == true ){ $new_rows_events[] = array($start_time, $row->id, $row->title, $event_up->year, $event_up->month, $event_up->day, $new_contactlink, $row->catid, $new_catname, $row->color_bar, $row->useCatColor, $row); $printcount++; } } } //////////////////////////////////// AFFICHAGE DU TABLEAU echo '
' . _CAL_LANG_EVENTSFORTHE .'
' . "\n"; echo '' . "\n"; ?> 0 ){ //sort ($new_rows_events); // Commenting out fixes bug #2606 for( $t = 0; $t < $num_newevents; $t++ ){ list( $start_time, $id, $title, $event_year, $event_month, $event_day, $contactlink, $catid, $catname, $color_bar, $useCatColor, $row ) = $new_rows_events[$t]; if(( $start_time <> $chhours ) && $chhours <> '' ){ echo '' . "\n"; } if( $start_time <> $chhours ){ echo '' . "\n"; echo '\n"; } else { echo ''; echo '"; } // end if echo '
' . $start_time . '
    ' . "\n"; } $bgcolor = setColor($row); //$fgcolor = mapColor($bgcolor); $fgcolor = "inherit"; //$listyle = 'style="background-color:'.$bgcolor.';color:'.$fgcolor.';margin-bottom:1px;"'; $listyle = 'style="border-color:'.$bgcolor.';"'; echo "
  • \n"; HTML_events::viewEventRow ( $id, $title, 'view_detail', $event_year, $event_month, $event_day, $contactlink, $option, $Itemid,$fgcolor); echo ' :: '; HTML_events::viewEventCatRow( $catid, $catname, 'view_cat', $year, $month, $day, $option, $Itemid,$fgcolor,$bgcolor); echo "
  • \n"; $chhours = $start_time; } echo "
' . "\n"; echo _CAL_LANG_NO_EVENTFORTHE . ' ' . mosEventsHTML::getDateFormat( $year, $month, $day, 0 ) . ''; echo "

' . "\n"; echo '


' . "\n"; // showNavTableText(10, 10, $num_events, $offset, ''); } function showEventsByMonthNEW( $year, $month ){ global $database, $option, $Itemid, $mosConfig_offset, $catid,$mainframe; $cfg = & EventsConfig::getInstance(); include_once(mosMainFrame::getBasePath()."/administrator/components/com_events/colorMap.php"); $rows = listEventsByMonthNew( $year, $month, 'publish_up,catid' ); $num_events = count( $rows ); $chdate = ''; $chcat = ''; $rowcount = count( $rows ); usort( $rows, 'sortEvents' ); $repeatArray = array(); for( $i = 0; $i < $rowcount; $i++ ){ // build array of dates for each event //$repeatArray[$i] = mosEventRepeatArray( $rows[$i], $year, $month ); $repeatArray[$i] = mosEventRepeatArrayMonth( $rows[$i], $year, $month ); } echo '
' . _CAL_LANG_EVENTSFOR . '
' . "\n"; echo '' . "\n"; ?> 0 ){ for( $d = 1; $d <= date( 't', mktime( 0, 0, 0,( $month + 1 ), 0, $year )); $d++ ){ $cellDate = mktime (0, 0, 0, $month, $d, $year); if( $rowcount > 0 ){ $dayHasEvent = false; for( $i = 0; $i < $rowcount && !$dayHasEvent; $i++ ){ if (array_key_exists($cellDate,$repeatArray[$i])) $dayHasEvent=true; } if ($dayHasEvent){ echo ''; echo '' . "\n"; echo '' . "\n"; } } } } echo '
'; echo mosEventsHTML::getDateFormat( $year, $month, $d, 7 ); echo '
    ' . "\n"; for( $i = 0; $i < $rowcount; $i++ ){ $row = $rows[$i]; if (array_key_exists($cellDate,$repeatArray[$i])){ $event_up = new mosEventDate( $row->publish_up ); $contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); $catname = mosEventsHTML::getCategoryName( $row->catid ); $bgcolor = setColor($row); //$fgcolor = mapColor($bgcolor); $fgcolor = "inherit"; //$listyle = 'style="background-color:'.$bgcolor.';color:'.$fgcolor.';margin-bottom:1px;"'; $listyle = 'style="border-color:'.$bgcolor.';"'; echo "
  • \n"; HTML_events::viewEventRow ( $row->id, $row->title, 'view_detail', $event_up->year, $event_up->month, $event_up->day, $contactlink, $option, $Itemid,$fgcolor ,$bgcolor); echo ' :: '; HTML_events::viewEventCatRow ( $row->catid, $catname, 'view_cat', $event_up->year, $event_up->month, $event_up->day, $option, $Itemid,$fgcolor ,$bgcolor); echo "
  • \n"; } } echo '

' . "\n"; echo '


' . "\n"; } function showEventsByWeekNEW( $year, $month, $day ){ global $mosConfig_offset, $database, $option, $Itemid; global $mainframe; global $catidsOut; $cat = ""; if ($catidsOut != 0){ $cat = '&catids='.$catidsOut; } $cfg = & EventsConfig::getInstance(); include_once(mosMainFrame::getBasePath()."/administrator/components/com_events/colorMap.php"); // Other methode to investigate //$rows = listEventsByWeek ($year,$month,$day,$offset); //$max_events = count($rows); $startday = $cfg->get('com_starday', 0); $numday = (( date( 'w', mktime( 0, 0, 0, $month, $day, $year )) - $startday ) %7 ); if( $numday == -1 ){ $numday = 6; } $week_start = mktime( 0, 0, 0, $month, ( $day - $numday ), $year ); $week_end = mktime( 0, 0, 0, $month, ( $day - $numday )+6, $year ); // + 6 for inclusinve week $this_date = new mosEventDate(); $this_date->setDate( strftime( '%Y', $week_start ), strftime( '%m', $week_start ), strftime( '%d', $week_start )); //$this_date->setDate( date ( "Y", $week_start ),date ( "m", $week_start ),date ( "d", $week_start )); $this_enddate = clone( $this_date ); $this_enddate->addDays( +6 ); $rows = listEventsByWeekNEW(strftime("%Y-%m-%d",$week_start),strftime("%Y-%m-%d",$week_end)); $rowcount = count($rows); usort( $rows, 'sortEvents' ); $repeatArray = array(); for( $i = 0; $i < $rowcount; $i++ ){ // build array of dates for each event $repeatArray[$i] = mosEventRepeatArrayWeek( $rows[$i], $week_start, $week_end); } $startdate = mosEventsHTML::getDateFormat( $this_date->year, $this_date->month, $this_date->day, 1 ); $enddate = mosEventsHTML::getDateFormat( $this_enddate->year, $this_enddate->month, $this_enddate->day ,1 ); echo '
' . _CAL_LANG_EVENTSFOR . ' ' . _CAL_LANG_WEEK . ' :
' . "\n"; echo '' . "\n"; ?> 0 ){ $this_currentdate->addDays( +1 ); } $week_day = sprintf( '%02d', $this_currentdate->day ); $week_month = sprintf( '%02d', $this_currentdate->month ); $week_year = sprintf( '%4d', $this_currentdate->year ); $link = sefRelToAbs( 'index.php?option=' . $option . '&task=view_day&year=' . $week_year . '&month=' . $week_month . '&day=' . $week_day . '&Itemid=' . $Itemid . $cat); $day_link = '' . mosEventsHTML::getDateFormat( $week_year, $week_month, $week_day, 2 ) . '' . "\n"; //if($week_month==date("m")&$week_year==date("Y")&$week_day==date("d")) { if( $week_month == strftime( '%m', time() + ( $mosConfig_offset * 60 * 60 ) ) && $week_year == strftime( '%Y', time() + ( $mosConfig_offset * 60 * 60 ) ) && $week_day == strftime( '%d', time() + ( $mosConfig_offset * 60 * 60 ) ) ) { $bg = 'class="ev_td_today"'; }else{ $bg = 'class="ev_td_left"'; } echo '' . "\n"; echo '' . "\n"; } // end for days echo '
' . $day_link . '' . "\n"; $select_date = sprintf( '%4d-%02d-%02d', $week_year, $week_month, $week_day ); //$rows = listEventsByDateNEW( $select_date ); $num_events = count( $rows ); $countprint = 0; for( $r = 0; $r < $num_events; $r++ ){ $row = $rows[$r]; $event_up = new mosEventDate( $row->publish_up ); $event_up->day = sprintf( '%02d', $event_up->day ); $event_up->month = sprintf( '%02d', $event_up->month ); $event_up->year = sprintf( '%4d', $event_up->year ); $contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); $catname = mosEventsHTML::getCategoryName( $row->catid ); $bgcolor = setColor($row); //$fgcolor = mapColor($bgcolor); $fgcolor = "inherit"; //$listyle = 'style="background-color:'.$bgcolor.';color:'.$fgcolor.';margin-bottom:1px;"'; $listyle = 'style="border-color:'.$bgcolor.';"'; $checkprint = new stdClass(); $checkprint->viewable = false; $target_date = mktime(0,0,0,$week_month,$week_day,$week_year); if (array_key_exists($target_date,$repeatArray[$r])) $checkprint->viewable = true ; if( $checkprint->viewable == true ){ // xhtml says I shouldn't open
    that is empty! So only open it if I have something!! if ($countprint==0) echo "
      \n"; echo "
    • \n"; HTML_events::viewEventRow ( $row->id, $row->title, 'view_detail', $event_up->year, $event_up->month, $event_up->day, $contactlink, $option, $Itemid,$fgcolor ,$bgcolor); echo ' :: '; HTML_events::viewEventCatRow ( $row->catid, $catname, 'view_cat', $event_up->year, $event_up->month, $event_up->day, $option, $Itemid,$fgcolor ,$bgcolor); echo "
    • \n"; $countprint++; } } if ($countprint>0) echo "
    \n"; else echo " "; echo '

' . "\n"; echo '


' . "\n"; //showNavTableText(20, 20, $max_events, $offset, 'view_week'); } function showEventsByCat( $catid, $limit, $limitstart ){ global $database, $option, $Itemid, $gid; $cfg = & EventsConfig::getInstance(); if( !$catid ){ // no category selected // $sql = "SELECT * FROM #__categories as b, #__events WHERE #__events.catid = b.id AND b.access <= $gid" // AND #__events.access <= $gid AND #__events.state = '1'"; /* GWE change to allow mambelfish to work!*/ $query = "SELECT *" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid" . "\n AND #__events.state = '1'" ; }else { // category selected //$sql = "SELECT * FROM #__categories as b, #__events WHERE #__events.catid = b.id" // AND #__events.catid = '$catid' AND b.access <= $gid AND #__events.access <= $gid AND #__events.state = '1'"; /* GWE change to allow mambelfish to work!*/ $query = "SELECT *" . "\n FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.catid = '$catid'" . "\n AND #__events.access <= $gid" . "\n AND #__events.state = '1'" ; } $database->setQuery( $query ); //$max_events = $database->loadResult(); $counter = $database->loadObjectList(); $total = count( $counter ); // MLr: discuss replacing _CAL_CONF_EVENT_LIST_ROWS_PPG with $mosConfig_list_limit $limit = $limit ? $limit : $cfg->get('com_calEventListRowsPpg'); if ( $total <= $limit ) { $limitstart = 0; } $rows = listEventsByCat( $catid, $limitstart, $limit ); $catname = mosEventsHTML::getCategoryName( $catid ); $num_events = count( $rows ); $chdate = ''; if( $catid == 0 ) { $catname = _CAL_LANG_EVENT_CHOOSE_CATEG; } echo '
' . $catname . '
' . "\n"; echo '' . "\n"; if( $num_events > 0 ){ for( $r = 0; $r < $num_events; $r++ ){ $row = $rows[$r]; $event_up = new mosEventDate( $row->publish_up ); $event_up->day = sprintf( '%02d', $event_up->day ); $event_up->month = sprintf( '%02d', $event_up->month ); $event_up->year = sprintf( '%4d', $event_up->year ); $event_day_month_year = $event_up->day . $event_up->month . $event_up->year; $contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); if(( $event_day_month_year <> $chdate ) && $chdate <> '' ){ echo '' . "\n"; } if( $event_day_month_year <> $chdate ){ echo '' . "\n"; echo '\n"; } else { echo ''; echo ''; } else { echo _CAL_LANG_NO_EVENTFOR . ' ' . $catname . ''; } } echo '
' . mosEventsHTML::getDateFormat( $event_up->year, $event_up->month, $event_up->day, 1 ) . '
    ' . "\n"; } $bgcolor = setColor($row); $listyle = 'style="border-color:'.$bgcolor.';"'; echo "
  • \n"; HTML_events::viewEventRow ( $row->id, $row->title, 'view_detail', $event_up->year, $event_up->month, $event_up->day, $contactlink, $option, $Itemid, "#222222" ); echo "
  • \n"; $chdate = $event_day_month_year; } echo "
' . "\n"; if( $catid==0 ){ echo _CAL_LANG_EVENT_CHOOSE_CATEG . '

' . "\n"; echo '


' . "\n"; global $year; showNavTableText( $year, $total, $limitstart, $limit, 'view_cat&catid=' . $catid ); } function showEventsByKeyword( $keyword, $limit, $limitstart, $useRegX=false ) { global $database, $option, $Itemid, $mosConfig_offset, $gid; global $mainframe; $cfg = & EventsConfig::getInstance(); include_once(mosMainFrame::getBasePath()."/administrator/components/com_events/colorMap.php"); $keyword = preg_replace( "/[[:space:]]+/", ' +', $keyword ); $keyword = trim( $keyword ); $keyword = preg_replace( "/\++/", '+', $keyword ); $keywordcheck = preg_replace( "/ |\+/", '', $keyword ); $searchisValid = false; // new [mic] $total = 0; if( empty( $keyword ) || strlen( $keywordcheck ) < 3 || $keyword == '%%' || $keywordcheck == '' ) { $keyword = _CAL_LANG_KEYWORD_NOT_VALID; $num_events = 0; } else { $searchisValid = true; // new mic $query = "SELECT #__events.*" . "\n FROM #__categories AS b, #__events" . "\n WHERE #__events.catid = b.id" . "\n AND b.access <= $gid" . "\n AND #__events.access <= $gid" . "\n AND\n" ; $query .= $useRegX ? "(#__events.title RLIKE '$keyword' OR #__events.content RLIKE '$keyword')\n" : "MATCH (#__events.title, #__events.content) AGAINST ('$keyword' IN BOOLEAN MODE)\n"; $query .= "AND #__events.state = '1'"; $database->setQuery( $query ); $counter = $database->loadObjectList(); $total = count( $counter ); // MLr: discuss replacing _CAL_CONF_EVENT_LIST_ROWS_PPG with $mosConfig_list_limit $limit = $limit ? $limit : $cfg->get('com_calEventListRowsPpg'); if ( $total <= $limit ) { $limitstart = 0; } $rows = listEventsByKeyword( $keyword, 'publish_up,catid', $limit, $limitstart, $useRegX ); $num_events = count( $rows ); } $chdate = ''; $chcat = ''; echo '
' . _CAL_LANG_SEARCHRESULTS. ' : 
' . "\n"; echo '' . "\n"; ?> "; //echo "
\n"; if( $num_events > 0 ){ for( $r = 0; $r < $num_events; $r++ ){ $row = $rows[$r]; $event_up = new mosEventDate( $row->publish_up ); $event_up->day = sprintf( '%02d', $event_up->day); $event_up->month = sprintf( '%02d', $event_up->month); $event_up->year = sprintf( '%4d', $event_up->year); $event_day_month_year = $event_up->day . $event_up->month . $event_up->year; $catname = mosEventsHTML::getCategoryName( $row->catid ); $contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); if(( $event_day_month_year <> $chdate ) && $chdate <> '' ){ echo '
' . "\n"; } if( $event_day_month_year <> $chdate ){ echo ''; if( $event_up->month == strftime( '%m', time() + ( $mosConfig_offset * 60 * 60 ) ) && $event_up->year == strftime( '%Y', time() + ( $mosConfig_offset * 60 * 60 ) ) && $event_up->day == strftime( '%d', time() + ( $mosConfig_offset * 60 * 60 ) ) ){ $bg = 'class="cal_td_today"'; }else{ $bg = 'class="ev_td_left"'; } echo ''; echo mosEventsHTML::getDateFormat( $event_up->year, $event_up->month, $event_up->day, 1 ); echo '' . "\n"; echo '' . "\n"; echo ''; echo '' . "\n"; } $bgcolor = setColor($row); //$fgcolor = mapColor($bgcolor); $fgcolor = "inherit"; $tdstyle = 'style="background-color:'.$bgcolor.';color:'.$fgcolor.';margin-bottom:1px;"'; if( $row->catid <> $chcat ){ echo '' . "\n"; echo '
'; // class='ev_td_left'>"; $chcat = ''; } if(( $row->catid <> $chcat ) && $chcat <> '' ){ echo '
';// class='ev_td_left'>\n"; echo ''; HTML_events::viewEventCatRow ( $row->catid, $catname, 'view_cat', $event_up->year, $event_up->month, $event_up->day, $option, $Itemid ,$fgcolor,$bgcolor); echo ''; // class='ev_td_right'>\n"; } if( $row->reccurtype == 5 ){ //each year if( $month == $event_up->month ){ HTML_events::viewEventRow ( $row->id, $row->title, 'view_detail', $event_up->year, $event_up->month, $event_up->day, $contactlink, $option, $Itemid ,$fgcolor, $bgcolor); } else { echo ' '; } } else { HTML_events::viewEventRow ( $row->id, $row->title, 'view_detail', $event_up->year, $event_up->month, $event_up->day, $contactlink, $option, $Itemid ,$fgcolor,$bgcolor); } $chcat = $row->catid; $chdate = $event_day_month_year; } echo '
' . "\n"; } else { //echo ""; //echo "\n"; // new by mic if( $searchisValid ){ echo _CAL_LANG_NO_EVENTFOR . ' ' . $keyword . ''; }else{ echo '' . $keyword . ''; $keyword = ''; } } echo '
' . "\n"; echo '


' . "\n"; global $year; showNavTableText( $year, $total, $limitstart, $limit, 'search&keyword=' . $keyword); } function showEventsForAdmin( $creator_id, $limit, $limitstart ) { global $database, $option, $Itemid, $is_event_editor, $my, $gid, $access; $cfg = & EventsConfig::getInstance(); $where = ''; if( $creator_id <> 'ADMIN' ){ //$where = "created_by = '$creator_id' AND"; $where = "AND created_by = '$creator_id'"; } //$sql = "SELECT count(id) as count FROM #__events WHERE created_by='$creator_id' AND state='1'"; /* $sql = "SELECT #__events.* FROM #__categories AS b, #__events WHERE #__events.catid = b.id AND b.access <= $gid AND #__events.access <= $gid AND $where #__events.state='1'"; */ $frontendPublish = $cfg->get('com_frontendPublish', 0) > 0; if( $access->canPublish && $frontendPublish ) { $sql = "SELECT * FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid"; } else { $sql = "SELECT * FROM #__events" . "\n WHERE #__events.catid IN(".accessibleCategoryList().")" . "\n AND #__events.access <= $gid $where" . "\n AND #__events.state='1'"; } $database->setQuery( $sql ); //$max_events = $database->loadResult(); $counter = $database->loadObjectList(); $total = count( $counter ); // MLr: discuss replacing _CAL_CONF_EVENT_LIST_ROWS_PPG with $mosConfig_list_limit $limit = $limit ? $limit : $cfg->get('com_calEventListRowsPpg'); if ( $total <= $limit ) { $limitstart = 0; } $rows = listEventsByCreator ($creator_id, $limitstart, $limit); $num_events = count( $rows ); $chdate = ''; echo '
' . _CAL_LANG_ADMINPANEL . '
' . "\n"; echo '' . "\n"; if( $num_events > 0 ){ for( $r = 0; $r < $num_events; $r++ ) { $row = $rows[$r]; $event_up = new mosEventDate( $row->publish_up ); $event_up->day = sprintf( '%02d', $event_up->day); $event_up->month = sprintf( '%02d', $event_up->month); $event_up->year = sprintf( '%4d', $event_up->year); $event_month_year = $event_up->month . $event_up->year; $contactlink = mosEventsHTML::getUserMailtoLink( $row->id, $row->created_by ); if( $is_event_editor ){ $link_day = sprintf( '%02d', $event_up->day ); $link_month = sprintf( '%02d', $event_up->month ); $link_year = sprintf( '%4d', $event_up->year ); $deletelink = '' . _CAL_LANG_DELETE . '' . "\n"; $modifylink = '' . _CAL_LANG_MODIFY . '' . "\n"; } if( $event_month_year <> $chdate && $chdate <> ""){ echo '' . "\n"; } if( $event_month_year <> $chdate ){ echo '' . "\n"; echo '' . "\n"; } else { echo '' . "\n"; echo '
'. "\n" . mosEventsHTML::getDateFormat( $event_up->year, $event_up->month, '', 3 ) .'
    ' . "\n"; } HTML_events::viewEventRowAdmin ( $row, 'view_detail', $event_up->year, $event_up->month, $event_up->day, $deletelink, $modifylink, $contactlink, $option, $Itemid, $row->state ); $chdate = $event_month_year; } echo '
' . "\n"; echo _CAL_LANG_NO_EVENTS; } echo '

' . "\n"; echo '


' . "\n"; global $year; showNavTableText( $year, $total, $limitstart, $limit, 'admin' ); } function sortEvents( $a, $b ){ list( $adate, $atime ) = split( ' ', $a->publish_up ); list( $bdate, $btime ) = split( ' ', $b->publish_up ); return strcmp( $atime, $btime ); } function getCategoryData(){ global $database; $database->setQuery( "SELECT c.* FROM #__events_categories AS c"); $cats = $database->loadObjectList('id'); return $cats; } function showCalendarNEW( $rows, $year, $month, $day ){ global $mosConfig_offset, $database, $option, $Itemid; global $mosConfig_absolute_path; global $mosConfig_live_site; $cfg = & EventsConfig::getInstance(); $rowcount = count( $rows ); usort( $rows, 'sortEvents' ); $repeatArray = array(); for( $i = 0; $i < $rowcount; $i++ ){ // build array of dates for each event //$repeatArray[$i] = mosEventRepeatArray( $rows[$i], $year, $month ); $repeatArray[$i] = mosEventRepeatArrayMonth( $rows[$i], $year, $month ); } $thisday = $year . '-' . $month . '-' . $day; $day_name = array( _CAL_LANG_SUNDAYSHORT, _CAL_LANG_MONDAYSHORT, _CAL_LANG_TUESDAYSHORT, _CAL_LANG_WEDNESDAYSHORT, _CAL_LANG_THURSDAYSHORT, _CAL_LANG_FRIDAYSHORT, _CAL_LANG_SATURDAYSHORT ); // $y=date("Y"); $month_name = EventsHelper::getMonthName( $month ); if( $month <= '9' & ereg( "(^[1-9]{1})", $month )) { $month = '0' . $month; } mosCommonHTML::loadOverlib(); //if( _CAL_CONF_TT_SHADOW == 1 ){ // disbled only for test [mic] if( !defined( '_LOAD_OVERLIB_SHADOW' )){ define( '_LOAD_OVERLIB_SHADOW', 1 ); ?>

get('com_starday'); if(( !$startday ) || ( $startday > 1 )){ $startday = 0; } for( $i = 0; $i < 7; $i++ ) { ?> 0; $a-- ){ // Remove comment if you get problems with wrong month displays(bug #4475) // $start=((date("w",mktime(0,0,0,$month,1,$year))-$startday+6)%7); // for($a=$start;$a>=0 && $a<6;$a--) { $d = date( 't', mktime( 0, 0, 0, $month, 0, $year )) - $a + 1; ?> 1) { $days = ( 7 - date( 'w', mktime( 0, 0, 0, $month + 1, 1, $year )) + $startday ) %7; $d = 1; for( $d = 1; $d <= $days; $d++ ) { // while(((date("w",mktime(0,0,0,($month+1),$d,$year))-$startday+1)%7)<>1) { ?>
width="14%" valign="top" style="height:80px;"> 0 ){ //echo ''; // org mic for( $i = 0; $i < $rowcount; $i++ ){ // checks if event should be displayed $checkprint = new stdClass(); $checkprint->viewable = false; if (array_key_exists($cellDate,$repeatArray[$i])) $checkprint->viewable = true ; // checking here speeds up [mic] if( $checkprint->viewable == true ){ $countDisplay++; // Event publication infomations $event_up = new mosEventDate( $rows[$i]->publish_up ); // $showEventUp[] = $event_up; // test mic $event_down = new mosEventDate( $rows[$i]->publish_down ); // $showEventDown[] = $event_down; // test mic // Event repeat variable initiate $repeat_event_type = $rows[$i]->reccurtype; // $showRepeatEventType[] = $repeat_event_type; // test mic // BAR COLOR GENERATION $bgeventcolor = setColor($rows[$i]); // $showBGEventColor[] = $bgeventcolor; // test mic $start_publish = mktime( 0, 0, 0, $rows[$i]->mup, $rows[$i]->dup, $rows[$i]->yup ); $stop_publish = mktime( 0, 0, 0, $rows[$i]->mdn, $rows[$i]->ddn, $rows[$i]->ydn ); $event_day = $rows[$i]->dup; $event_month = $rows[$i]->mup; $title = $rows[$i]->title; // $showTitle[] = $title; // test mic // $content = $content_Array[$i]; // new mic - not used now $id = $rows[$i]->id; // $showID[] = $id; // test mic // moved into events_calender_cell.php [mic] //$colStart = '
' . "\n"; require( $mosConfig_absolute_path . '/components/' . $option . '/events_calendar_cell.php' ); echo '' . "\n"; } } // print all events for this date? Not going to be pretty for a large # of events!! // Need to work on this to make it scale better? [ >> done mic ;) ] //echo '
' . "\n"; } ?>

old version for testing"; } function viewYear( $Itemid, $year, $month, $day, $option, $task ,$limit, $limitstart ){ //echo $cssHTML; HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); $newVersion = intval(mosGetParam($_REQUEST,"nv","1")); if ($newVersion){ showEventsByYearNEW( $year, $limit, $limitstart ); } else{ oldMsg(); showEventsByYear( $year, $limit, $limitstart ); } HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); } function viewMonth( $Itemid, $year, $month, $day, $option, $task ){ HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); $newVersion = intval(mosGetParam($_REQUEST,"nv","1")); if ($newVersion){ $rows = listEventsByMonthNEW( $year, $month, 'reccurtype ASC,publish_up' ); showCalendarNEW( $rows, $year, $month, $day ); } else { oldMsg(); $rows = listEventsByMonth( $year, $month, 'reccurtype ASC,publish_up' ); showCalendar( $rows, $year, $month, $day ); } HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); } function view_week( $Itemid, $year, $month, $day, $option, $task ){ HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar($year, $month, $day, $option, $task, $Itemid ); $newVersion = intval(mosGetParam($_REQUEST,"nv","1")); if ($newVersion){ showEventsByWeekNEW( $year, $month, $day ); } else { oldMsg(); showEventsByWeek( $year, $month, $day ); } HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); } function view_day( $Itemid, $year, $month, $day, $option, $task ){ HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); $newVersion = intval(mosGetParam($_REQUEST,"nv","1")); if ($newVersion){ showEventsByDateNEW( $year, $month, $day ); } else { oldMsg(); showEventsByDate( $year, $month, $day ); } HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); } function view_last( $Itemid, $year, $month, $day, $option, $task ){ HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); $newVersion = intval(mosGetParam($_REQUEST,"nv","1")); if ($newVersion){ showEventsByMonthNEW( $year, $month ); } else { oldMsg(); showEventsByMonth( $year, $month ); } HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); } function view_detail( $Itemid, $year, $month, $day, $option, $task, $pop, $agid ){ HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); // dmcd oct 4/04 don't show navbar stuff for events detail popup if( !$pop ){ showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); } showEventsById( $agid, $year, $month, $day ); if( !$pop ){ HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); } HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); } function view_cat( $Itemid, $year, $month, $day, $option, $task, $catid, $limit, $limitstart ){ HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); HTML_events::viewNavCatText( $catid, $option, 'view_cat', $Itemid ); showEventsByCat( $catid, $limit, $limitstart ); HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); } /////////////////////////////////////// CHOOSE SECTION ////////////////////////////////////////// // if (!isset($task) || empty($task)) {$task = _CAL_CONF_STARTVIEW;} // dmcd Aug 6/04. Check the Events Table to see if the new useCatColor field is in // If not dynamically insert it now /* redundant for upgraded calendars! $query = "SELECT useCatColor" . "\n FROM #__events" ; $database->setQuery( $query ); if( !$database->query() ){ // dmcd go add the NEW FIELD NOW $query = "ALTER TABLE #__events" . "\n ADD useCatColor TINYINT(1) NOT NULL DEFAULT '0'" . "\n AFTER color_bar" ; $database->setQuery( $query ); if( !$database->query() ){ echo "\n"; } } */ // dmcd May 29/04 create the new events_categories db table here to hold the color field. // eventually we will delete this code for the newer version since it will be created by the xml install file. // This at least allows an easier upgrade for people with minimal performance issues // dmcd Sep 14/04 new mos does not like DB errors. It will flag a php 'NOTICE' message to user by default if // enabled. Now instead, test for presence of the events_categories table in the DB instead //xdebug_break(); /* redundant for upgraded calendars! $database->setQuery( 'SHOW TABLES' ); $tables = $database->loadResultArray(); if( $tables && array_search( $database->_table_prefix . 'events_categories', $tables ) === false ){ // ok need to create new table $query = "CREATE TABLE IF NOT EXISTS #__events_categories " . "\n (id INT(12) NOT NULL DEFAULT 0 PRIMARY KEY, color VARCHAR(8) NOT NULL DEFAULT '')" ; $database->setQuery( $query ); $database->query(); // create table entries for any existing event categories $query = "SELECT id" . "\n FROM #__categories" . "\n WHERE section='$option'" . "\n ORDER BY ordering" ; $database->setQuery( $query ); $cats = $database->loadObjectList(); foreach( $cats AS $cat ){ $query = "INSERT INTO #__events_categories" . "\n VALUES (".$cat->id.", '')" ; $database->setQuery( $query ); $database->query(); } } */ $cssHTML = '' . "\n"; if (isset($mainframe)) $mainframe->addCustomHeadTag( $cssHTML ); else mosMainFrame::addCustomHeadTag( $cssHTML ); if ($task== 'save') { $mode ="write"; $id = intval( mosGetParam( $_REQUEST, 'id', 0 ) ); if ($id==0) $task="add"; else $task="edit"; } if ($task=="edit"){ if ($agid==0){ $task="add"; } } switch( $task ){ case 'add': // clear content caches since too we need the modules to be cleaned out too! mosCache::cleanCache( 'com_events' ); mosCache::cleanCache( 'com_content' ); if( $is_event_editor ){ if( $mode == 'write' ){ if( $goodexit == 1 ){ // Captch code for anon and registered users /* global $my; if ($my->gid<2){ if (file_exists($mosConfig_absolute_path.'/administrator/components/com_securityimages/server.php')) { include_once($mosConfig_absolute_path.'/administrator/components/com_securityimages/server.php'); $security_refid = trim( mosGetParam( $_POST, 'security_refid', '' ) ); $security_try = trim( mosGetParam( $_POST, 'security_try', '' ) ); $checkSecurity = checkSecurityImage($security_refid, $security_try); if (!$checkSecurity){ $returnlink = sefRelToAbs( 'index.php?option=' . $option , '&Itemid=' . $Itemid ); mosRedirect( $returnlink, "You did not enter the correct string!"); } } } */ $adminEmail = $cfg->get('com_adminmail'); $event = saveEvent( $database ); if (isset($event)){ $agid=($event->id>0)?"&agid=".$event->id:""; if ($event->created_by_alias!="") $created_by=$event->created_by_alias; else $created_by = $my->name; } $subject = _CAL_LANG_MAIL_ADDED . ' ' . $mosConfig_sitename; $subject = ($event->state == '1') ? '[Info] ' . $subject : '[Approval] ' . $subject; global $Itemid; $modifylink = '' . _CAL_LANG_MODIFY . '' . "\n"; if ($created_by==null) $created_by="Anonymous"; sendAdminMail( $mosConfig_sitename, $adminEmail, $subject, $event->title, $event->content, $created_by, $mosConfig_live_site, $modifylink ); $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); if( $event->state == '1' ){ mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_ACT_MODIFIED )); } else { mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_ACT_ADDED )); } //$returnlink = "index.php?option=$option&Itemid=$Itemid"; //mosRedirect("$returnlink", _CAL_LANG_ACT_ADDED); } } else { if( $year && $month && $day ){ $start_publish = $year . '-' . $month . '-' . $day; $stop_publish = $year . '-' . $month . '-' . $day; } else { $start_publish = strftime( '%Y-%m-%d', time() + ( $mosConfig_offset * 60 * 60 )); $stop_publish = strftime( '%Y-%m-%d', time() + ( $mosConfig_offset * 60 * 60 )); } $row = new mosEvents( $database ); // if user hits refresh, try to maintain event form state $row->bind( $_POST ); $row->color_bar = mosEventsHTML::getColorBar( null, '' ); $start_time = '08:00'; $end_time = '17:00'; $row->reccurday_month = -1; $row->reccurday_week = -1; $row->reccurday_year = -1; $row->created_by_alias = $my->username; $row->reccurtype = 0; $lists = ''; // dmcd May 20/04 fetch the new category colors from the '#__events_category' db table $query = "SELECT *" . "\n FROM #__events_categories" ; $database->setQuery( $query ); $catColors = $database->loadObjectList( 'id' ); HTML_events::viewFormEvent( $row, $start_publish, $stop_publish, $start_time, $end_time, $lists, $Itemid, $option, $task, 'new', $catColors, $agid ); } } else { $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } break; case 'delete': // clear content caches since too we need the modules to be cleaned out too! mosCache::cleanCache( 'com_events' ); mosCache::cleanCache( 'com_content' ); if( $is_event_editor && !( strtolower( $my->usertype ) == '' )){ if( $agid ){ $rows = listEventsById( $agid, 1 ); // include unpublished events for publishers and above $row = $rows[0]; // Have to check this condition if (hasAdvancedRowPermissions($row,$my)) { removeEvent( $agid ); } else { echo $my->usertype; $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } } } else { $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } break; case 'publish' : // clear content caches since too we need the modules to be cleaned out too! mosCache::cleanCache( 'com_events' ); mosCache::cleanCache( 'com_content' ); if( $is_event_editor && !( strtolower( $my->usertype ) == '' )){ $rows = listEventsById( $id, 1 ); // include unpublished events for publishers and above $row = $rows[0]; if( strtolower( $my->usertype ) == 'user' || strtolower( $my->usertype ) == '' ){ if( $row->creator_id != $my->id ){ $returnlink = sefRelToAbs( 'index.php?option=' . $option , '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } } if( $goodexit == 1 ){ $event = publishEvent($row->id); $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_ACT_PUBLISHED)); } } else { $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } break; case 'edit': // clear content caches since too we need the modules to be cleaned out too! mosCache::cleanCache( 'com_events' ); mosCache::cleanCache( 'com_content' ); if( $is_event_editor && !( strtolower( $my->usertype ) == '' )){ $rows = listEventsById( $agid, 1 ); // include unpublished events for publishers and above $row = $rows[0]; if( strtolower( $my->usertype ) == 'user' || strtolower( $my->usertype ) == '' ){ if( $row->creator_id != $my->id ){ $returnlink = sefRelToAbs( 'index.php?option=' . $option , '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } } if( !hasAdvancedRowPermissions($row,$my)){ $returnlink = sefRelToAbs( 'index.php?option=' . $option , '&Itemid=' . $Itemid ); mosRedirect( $returnlink, _CAL_LANG_NOPERMISSION ); } if( $mode == 'write'){ if( $goodexit == 1 ){ $adminEmail = $cfg->get('com_adminmail'); $event = saveEvent( $database ); if (isset($event)){ $agid=($event->id>0)?"&agid=".$event->id:""; if ($event->created_by_alias!="") $created_by=$event->created_by_alias; else $created_by = $my->name; } $subject = _CAL_LANG_MAIL_MODIFIED . ' ' . $mosConfig_sitename; $subject = ($event->state == '1') ? '[Info] ' . $subject : '[Approval] ' . $subject; global $Itemid; $modifylink = '' . _CAL_LANG_MODIFY . '' . "\n"; sendAdminMail( $mosConfig_sitename, $adminEmail, $subject, $event->title, $event->content, $created_by, $mosConfig_live_site, $modifylink ); $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); if( $event->state == '1' ){ mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_ACT_MODIFIED )); } else { mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_ACT_ADDED )); } } } else { if( $agid ){ $rows = listEventsById( $agid, 1 ); // include unpublished events for publishers and above $row = $rows[0]; $event_up = new mosEventDate( $row->publish_up ); $start_publish = sprintf( '%4d-%02d-%02d', $event_up->year, $event_up->month, $event_up->day ); $start_time = $event_up->hour . ':' . $event_up->minute; $event_down = new mosEventDate( $row->publish_down ); $stop_publish = sprintf( '%4d-%02d-%02d', $event_down->year, $event_down->month, $event_down->day ); $end_time = $event_down->hour . ':' . $event_down->minute; $row->reccurday_month = 99; $row->reccurday_week = 99; $row->reccurday_year = 99; if( $row->reccurday <> '' ){ if( $row->reccurtype == 1 ){ $row->reccurday_week = $row->reccurday; }elseif( $row->reccurtype == 3 ){ $row->reccurday_month = $row->reccurday; }elseif( $row->reccurtype == 5 ){ $row->reccurday_year = $row->reccurday; } } $lists['state'] = mosHTML::yesnoSelectList( 'state', 'size="1" class="inputbox"', $row->state ); // dmcd May 20/04 fetch the new category colors from the '#__events_category' db table $query = "SELECT *" . "\n FROM #__events_categories" ; $database->setQuery( $query ); $catColors = $database->loadObjectList( 'id' ); HTML_events::viewFormEvent( $row, $start_publish, $stop_publish, $start_time, $end_time, $lists, $Itemid, $option, $task, 'edit', $catColors, $agid ); } } } else { $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } break; case 'cancel': // clear content caches since too we need the modules to be cleaned out too! mosCache::cleanCache( 'com_events' ); mosCache::cleanCache( 'com_content' ); $row = new mosEvents( $database ); $row->bind( $_POST ); if( $access->canEdit || ( $access->canEditOwn && $row->created_by == $my->id )) { $row->checkin(); } mosRedirect( sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid )); break; case 'view_year': $cache->call( 'viewYear', $Itemid, $year, $month, $day, $option, $task, $limit, $limitstart, $catids, $mosConfig_lang,$my->usertype ); break; case 'view_month': $cache->call( 'viewMonth', $Itemid, $year, $month, $day, $option, $task, $catids, $mosConfig_lang,$my->usertype ); break; case 'view_week': $cache->call( 'view_week', $Itemid, $year, $month, $day, $option, $task, $catids, $mosConfig_lang ,$my->usertype ); break; case 'view_day': $cache->call( 'view_day', $Itemid, $year, $month, $day, $option, $task, $catids, $mosConfig_lang ,$my->usertype ); break; case 'view_last': $cache->call( 'view_last', $Itemid, $year, $month, $day, $option, $task, $catids, $mosConfig_lang ,$my->usertype ); break; case 'view_detail': $cache->call( 'view_detail', $Itemid, $year, $month, $day, $option, $task, $pop, $agid, $mosConfig_lang ,$my->usertype ); break; case 'view_cat': $cache->call( 'view_cat', $Itemid, $year, $month, $day, $option, $task, $catid, $limit, $limitstart, $mosConfig_lang ,$my->usertype ); break; case 'view_search': HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); HTML_events::viewSearchForm( '', $option, $task, $Itemid ); HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); break; case 'search': HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); showEventsByKeyword( $keyword, $limit, $limitstart, true ); HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); break; case 'admin': if( $is_event_editor ){ if( strtolower( $my->usertype ) == 'administrator' || strtolower( $my->usertype ) == 'super administrator' ) { $creator_id = 'ADMIN'; }else{ $creator_id = $my->id; } HTML_events::eventsHeader( $Itemid, $year, $month, $day, $task ); showNavTableBar( $year, $month, $day, $option, $task, $Itemid ); if (!( strtolower( $my->usertype ) == '')) showEventsForAdmin( $creator_id, $limit, $limitstart ); HTML_events::viewNavAdminPanel( $year, $month, $day, $option, $Itemid ); HTML_events::eventsFooter( $Itemid, $year, $month, $day, $task); }else{ $returnlink = sefRelToAbs( 'index.php?option=' . $option . '&Itemid=' . $Itemid ); mosRedirect( $returnlink, html_entity_decode( _CAL_LANG_NOPERMISSION )); } break; default: break; } ?>