$filemod) $filemod = $calinfo['mtime']; } $filemodtime = date("r", $filemod); //send relevant headers header ("Last-Modified: $filemodtime"); header ("ETag:\"$filemodtime\""); // checks the user agents headers to see if they kept track of our // stuff, if so be nice and send back a 304 and exit. if ( ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $filemodtime) || ($_SERVER['HTTP_IF_NONE_MATCH'] == $filemodtime)){ header ("HTTP/1.1 304 Not Modified"); exit; } /* Change languages to ISO 639-1 to validate RSS without changing long version in config.inc.php */ $user_language = array ("english", "polish", "german", "french", "dutch", "italian", "japanese", "norwegian", "spanish", "swedish", "portuguese", "catalan", "traditional_chinese", "esperanto", "korean"); $iso_language = array ("en", "pl", "de", "fr", "nl", "da", "it", "ja", "no", "es", "sv", "pt", "ca", "zh-tw", "eo", "ko"); $rss_language = str_replace($user_language, $iso_language, $language); /* End language modification */ $rss = ""."\n"; /* Use 1.0 and strip encoding, use rss_language */ $rss .= ''."\n"; $rss .= ''."\n"; $rss .= ''.$cal_displayname.' '.$lang['l_calendar'].' - '.$theview.''."\n"; #$rss .= ''.$rss_language.''."\n"; //generate the items $numdays = round((strtotime($todate) - strtotime($fromdate))/(60*60*24))+1; $thisdate = $fromdate; # start at beginning of date range, # note that usage of $thisdate is different from distribution # I use it as a date, dist uses it as a time $i = 1; #day counter $rss .= "\n\n"; $rss_items =''; $uid_arr = array(); do { $thisdate=date('Ymd', strtotime($thisdate)); #echo "Date: $thisdate
\n"; $dayofweek = localizeDate ("%a %b %e %Y", strtotime($thisdate)); if (isset($master_array[($thisdate)]) && sizeof($master_array[($thisdate)]) > 0) { foreach ($master_array[("$thisdate")] as $event_times) { foreach ($event_times as $uid=>$val) { #handle multiday all day events if(!$val["event_start"]){ if (isset($uid_arr[$uid])){ $uid_arr[$uid] .= "+$dayofweek" ; continue; }else{ $uid_arr[$uid] = "$dayofweek" ; } $event_start = $lang['l_all_day']; }else{ $event_start = @$val["event_start"]; $event_start = date ($timeFormat, @strtotime ("$event_start")); } $event_text = stripslashes(urldecode($val["event_text"])); $event_text = strip_tags($event_text, ''); # $event_text = urlencode($event_text); #uncomment for shorter event text with ... # $event_text = word_wrap($event_text, 21, $tomorrows_events_lines); $description = stripslashes(urldecode($val["description"])); $description = strip_tags($description, ''); $rss_title = htmlspecialchars ("$dayofweek: $event_text"); /* original link, not valid url coding $rss_link = htmlspecialchars ("$default_path/day.php?getdate=$thisdate&cal=$cal&cpath=$cpath"); */ /* Add %20's for spaces for the calendar links to make them valid url's */ $urlcal = rawurlencode ("$cal"); $rss_link = ("$default_path/day.php?getdate=$thisdate&cal=$urlcal"); if (isset($cpath) && $cpath !=''){ $rss_link .= "&cpath=$cpath"; } /* End link modification */ $rss_description = htmlspecialchars ("$dayofweek $event_start: $description"); $rss .= ''."\n"; $rss_items .= ''."\n"; /* Create guid, and use uid to make link unique */ # $rss .= ''.$rss_link.$uid.''."\n"; /* End guid modification */ $rss_items .= ''.$rss_title.''."\n"; $rss_items .= ''.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).''."\n"; $rss_items .= ''.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).''."\n"; $rss_items .= ''.$rss_link.''."\n"; $rss_items .= ''.$rss_description.''."\n"; if (isset($val['location']) && $val['location'] !=''){ $location = str_replace('&','&',$val['location']); $location = str_replace('&amp;','&',$location); $rss_items .= ''.$location."\n"; } $rss_items .= ''."\n"; $events_count++; } } } if (($events_count < 1) && ($i == $numdays)) { $rss_items .= '\n"; $rss_items .= 'No events found'."\n"; $rss_items .= ''.htmlspecialchars ("$default_path").''."\n"; $rss_items .= ''."\n"; } $thisdate++; $i++; } while ($i <= $numdays); $rss .= "
\n
\n"; $rss .= "
\n"; $rss .= $rss_items.'
'."\n"; foreach ($uid_arr as $uid=>$date_range){ #echo "date_range:$date_range
"; if(strpos($date_range,"+")>0){ #echo "+ in date_range
"; $temp = explode("+",$date_range); $date_range = $temp[0].'-'.array_pop($temp); } $rss = str_replace("$uid\n".$lang['l_all_day']."","$uid\n$date_range", $rss); } header ("Content-Type: text/xml"); echo "$rss"; ?>