From: <ji...@us...> - 2008-12-11 22:18:13
|
Update of /cvsroot/phpicalendar/phpicalendar/rss In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1548/rss Modified Files: index.php rss.php rss1.0.php rss2.0.php Log Message: update lots of files Index: index.php =================================================================== RCS file: /cvsroot/phpicalendar/phpicalendar/rss/index.php,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** index.php 10 Apr 2006 02:21:07 -0000 1.43 --- index.php 11 Dec 2008 21:54:53 -0000 1.44 *************** *** 8,12 **** require_once(BASE.'functions/calendar_functions.php'); ! if ($enable_rss != 'yes') { exit(error($lang['l_rss_notenabled'], $cal, '../')); } --- 8,12 ---- require_once(BASE.'functions/calendar_functions.php'); ! if ($phpiCal_config->enable_rss != 'yes') { exit(error($lang['l_rss_notenabled'], $cal, '../')); } *************** *** 26,30 **** $xml_icon ="<img src = 'xml.gif' alt='xml'>"; ! $filelist = availableCalendars($username, $password, $ALL_CALENDARS_COMBINED); foreach ($filelist as $file) { // $cal_filename is the filename of the calendar without .ics --- 26,30 ---- $xml_icon ="<img src = 'xml.gif' alt='xml'>"; ! $filelist = availableCalendars($username, $password, $phpiCal_config->ALL_CALENDARS_COMBINED); foreach ($filelist as $file) { // $cal_filename is the filename of the calendar without .ics Index: rss.php =================================================================== RCS file: /cvsroot/phpicalendar/phpicalendar/rss/rss.php,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** rss.php 16 Feb 2007 07:54:44 -0000 1.49 --- rss.php 11 Dec 2008 21:54:53 -0000 1.50 *************** *** 2,257 **** /******************************************************************************** ! * Modified from phpicalendar 2.0a distribution by Jim Hu ! * philosophical changes ! * - instead of having separate generators, use a date range for all views (done) ! * - change the rss generation method to conform to standards(not done) ! * PHP note: #@ is error control operator to suppress execution halt on error ! * - used below to deal with undef? ! * ! * using rssview, RSS feeds can be specified to return events for a given day, week, month, or year ! * feeds can be specified for a number of days to or from a given date ! * feeds can be specified for a range of dates ! * ! *********************************************************************************/ ! /* Modified from 2.21 by dyfrin 2006/03/08 19:09:28 ! Changes: ! -RSS changed to 2.0, encoding removed, languages converted to ISO standard for feeds ! -RSS title changed to be set by config.inc.php. Make sure that is added to it. ! Lines modified: 135-165, 208-223 ! Additional mods by J. Hu ! */ define('BASE', '../'); ! require(BASE.'functions/init.inc.php'); ! ! if ($enable_rss != 'yes') { ! die ("RSS feeds are not enabled on this site."); ! } ! ! include_once(BASE.'functions/date_functions.php'); ! //set the range of days to return based on the view chosen ! $rssview = $_GET['rssview']; ! if (isset($_GET['getdate']) && $_GET['getdate'] !=''){ ! $getdate = $_GET['getdate']; ! }else{ ! $getdate = date("Ymd"); } - # for all views, $fromdate is the first day to be shown and $todate should be the last day. - switch ($rssview){ - case 'day': - $fromdate = $getdate; - $todate = $getdate; - $theview = $lang['l_day']; - break; - case 'week': - $fromdate = dateOfWeek($getdate, 'Sunday'); - $todate = date("Ymd", strtotime($fromdate) + 6*24*60*60); - $theview = $lang['l_week']." of ".date('n/d/Y',strtotime($fromdate)); - break; - case 'month': - $parse_month = date ("Ym", strtotime($getdate)); - $fromdate = ($parse_month *100) + 1; - $todate = ($parse_month *100) + date("t",strtotime($getdate)); - $theview = date('M Y',strtotime($fromdate)); - break; - case 'year': - if(isset($_GET['year'])){ - $theyear = $_GET['year']; - }else{ - $theyear = substr($getdate,0,4); - } - $fromdate = ($theyear*10000)+101; - $todate = date("Ymd", strtotime($theyear*10000+1231)); - $theview = $theyear; - break; - case 'daysfrom': - $fromdate = $getdate; - $todate = date("Ymd", strtotime($getdate) + $_GET['days']*60*60*24); - $theview = $_GET['days']." days from ".date('n/d/Y',strtotime($fromdate)); - break; - case 'daysto': - $todate = $getdate; - $fromdate = date("Ymd", strtotime($getdate) - $_GET['days']*60*60*24); - $theview = $_GET['days']." days before ".date('n/d/Y',strtotime($todate)); - break; - case 'range': - if(isset($_GET['from'])){ - $fromdate = $_GET['from']; - }else{ - $fromdate = $getdate; - } - $todate = $_GET['to']; - $theview = date('n/d/Y',strtotime($fromdate)).'-'.date('n/d/Y',strtotime($todate)); - break; - default: - #default to week - $fromdate = dateOfWeek($getdate, 'Sunday'); - $todate = date("Ymd", strtotime($fromdate) + 6*24*60*60); - $theview = ""; } - #need to give ical_parser the most distant date to correctly set up master_array. - $getdate = $todate; - #echo "from:$fromdate to:$todate"; - - #Note that ical_parser supplies cal_displayname. - include(BASE.'functions/ical_parser.php'); ! $events_count = 0; ! ! // calculate a value for Last Modified and ETag ! $cal = implode(",",$cals); ! ! //get filemtime from master array ! $filemod = 0; #default to start of unix era, overwrite with most recent mtime from master array ! foreach ($master_array['-4'] as $calinfo){ ! if ($calinfo['mtime'] > $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 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."\n"; ! $rss .= '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">'."\n"; ! $rss .= '<rss version="0.91">'."\n"; ! $rss .= '<channel>'."\n"; ! $rss .= '<title>'.$cal_displayname; ! if ($theview !=""){$rss .= ' - '.$theview;} ! $rss .= "</title>\n"; ! ! $rss .= '<link>'.htmlspecialchars("$default_path").'</link>'."\n"; ! if (isset($cpath) && $cpath !='') $rss_link.="?cpath=$cpath"; ! $rss .= "<link>$rss_link</link>\n"; ! ! $rss .= '<description>'.$cal_displayname.' '.$lang['l_calendar'].' - '.$theview.'</description>'."\n"; ! $rss .= '<language>'.$rss_language.'</language>'."\n"; ! $rss .= '<copyright>Copyright '.date(Y).', '.htmlspecialchars ("$default_path").'</copyright>'."\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 ! $thistime = strtotime($thisdate); ! $i = 1; #day counter ! $uid_arr = array(); ! do { ! $thisdate=date('Ymd', $thistime); ! # echo "Date: $thisdate\ti:$i\tnumdays:$numdays<br>\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, '<b><i><u>'); ! $event_text = str_replace('&','&',$event_text); ! $event_text = str_replace('&amp;','&',$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, '<b><i><u>'); ! $description = str_replace('&','&',$description); ! $description = str_replace('&amp;','&',$description); ! ! ! $rss_title = urldecode ("$dayofweek: $event_text"); ! ! $urlcal = rawurlencode ("$cal"); ! if (isset($rss_link_to_event) && $rss_link_to_event == 'yes'){ ! $event_data = urlencode(serialize($val)); ! $rss_link = "$default_path/includes/event.php?getdate=$thisdate&cal=$cal&event_data=$event_data"; ! }else{ ! $rss_link = ("$default_path/day.php?getdate=$thisdate&cal=$urlcal"); ! ! } ! if (isset($cpath) && $cpath !='') $rss_link.="&cpath=$cpath"; ! ! $rss_description = htmlspecialchars ("$dayofweek $event_start: $description"); ! ! $rss .= '<item>'."\n"; ! $rss .= '<uid>'.$uid.'</uid>'."\n"; ! $rss .= '<event_start>'.$event_start.'</event_start>'."\n"; ! $rss .= '<title>'.$rss_title.'</title>'."\n"; ! /* custom stuff for Jim Hu's RSS feeds. Deprecated ! $rss .= '<seminardate>'.$dayofweek.'</seminardate>'."\n"; ! $rss .= '<seminarspeaker>'.$event_text.'</seminarspeaker>'."\n"; ! $rss .= '<seminartitle>'.$description.'</seminartitle>'."\n"; ! $rss .= '<tagged>'.$val["description"].'</tagged>'."\n"; ! $rss .= '<seminarhost>'.$val['attendee'].'</seminarhost>'."\n"; ! $rss .= '<organizer>'.$val['organizer'].'</organizer>'."\n"; ! $rss .= '<status>'.$val['status'].'</status>'."\n"; ! */ ! $rss .= '<link>'.$rss_link.'</link>'."\n"; ! $rss .= '<description>'.$rss_description.'</description>'."\n"; ! if (isset($val['location']) && $val['location'] !=''){ ! $location = str_replace('&','&',$val['location']); ! $location = str_replace('&amp;','&',$location); ! $rss .= '<location>'.$location."</location>\n"; ! } ! $rss .= '</item>'."\n"; ! $events_count++; ! } ! } ! } ! if (($events_count < 1) && ($i == $numdays)) { ! $rss .= '<item>'."\n"; ! $rss .= '<title>No events found</title>'."\n"; ! $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n"; ! $rss .= '</item>'."\n"; ! } ! $thistime = $thistime+(60*60*24); # echo "$thisdate: ".strtotime($thisdate)."->$thistime<br>\n"; ! $i++; ! } while ($i <= $numdays); ! ! $rss .= '</channel>'."\n"; ! $rss .= '</rss>'."\n"; ! ! foreach ($uid_arr as $uid=>$date_range){ ! #echo "date_range:$date_range<br>"; ! ! if(strpos($date_range,"+")>0){ ! #echo "+ in date_range<br>"; ! $temp = explode("+",$date_range); ! $date_range = $temp[0].'-'.array_pop($temp); ! } ! $rss = str_replace("<uid>$uid</uid>\n<event_start>".$lang['l_all_day']."</event_start>","<uid>$uid</uid>\n<event_start>$date_range</event_start>", $rss); ! } - header ("Content-Type: text/xml"); - - echo "$rss"; ?> --- 2,78 ---- /******************************************************************************** ! Changed to use rss_common for date handling and loop ! *********************************************************************************/ define('BASE', '../'); ! $rss_version = '<rss version="0.91">'."\n"; + require(BASE.'rss/rss_common.php'); ! function rss_top(){ ! global $cal_displayname, $theview, $default_path, $cpath, $lang, $rss_link, $rss_language; ! $rss = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."\n"; ! $rss .= '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">'."\n"; ! $rss .= '<rss version="0.91">'."\n"; ! $rss .= '<channel>'."\n"; ! $rss .= '<title>'.$cal_displayname; ! if ($theview !=""){$rss .= ' - '.$theview;} ! $rss .= "</title>\n"; ! ! $rss .= '<link>'.htmlspecialchars("$default_path").'</link>'."\n"; ! if (isset($cpath) && $cpath !='') $rss_link.="?cpath=$cpath"; ! $rss .= "<link>$rss_link</link>\n"; ! ! $rss .= '<description>'.$cal_displayname.' '.$lang['l_calendar'].' - '.$theview.'</description>'."\n"; ! $rss .= '<language>'.$rss_language.'</language>'."\n"; ! $rss .= '<copyright>Copyright '.date(Y).', '.htmlspecialchars ("$default_path").'</copyright>'."\n"; ! return $rss; } + function rss_li($rss_link, $uid){ + $return = ""; } ! function enclose_items($rss_items){ ! return $rss_items; } ! function rss_item(){ ! global $uid,$event_start,$rss_title,$rss_link, $dayofweek, $event_text, $rss_description, $val; ! $rss .= '<item>'."\n"; ! $rss .= '<uid>'.$uid.'</uid>'."\n"; ! $rss .= '<event_start>'.$event_start.'</event_start>'."\n"; ! $rss .= '<title>'.$rss_title.'</title>'."\n"; ! /* custom stuff for Jim Hu's RSS feeds. Deprecated ! $rss .= '<seminardate>'.$dayofweek.'</seminardate>'."\n"; ! $rss .= '<seminarspeaker>'.$event_text.'</seminarspeaker>'."\n"; ! $rss .= '<seminartitle>'.$description.'</seminartitle>'."\n"; ! $rss .= '<tagged>'.$val["description"].'</tagged>'."\n"; ! $rss .= '<seminarhost>'.$val['attendee'].'</seminarhost>'."\n"; ! $rss .= '<organizer>'.$val['organizer'].'</organizer>'."\n"; ! $rss .= '<status>'.$val['status'].'</status>'."\n"; ! */ ! $rss .= '<link>'.$rss_link.'</link>'."\n"; ! $rss .= '<description>'.$rss_description.'</description>'."\n"; ! if (isset($val['location']) && $val['location'] !=''){ ! $location = str_replace('&','&',$val['location']); ! $location = str_replace('&amp;','&',$location); ! $rss .= '<location>'.$location."</location>\n"; ! } ! $rss .= '</item>'."\n"; ! return $rss; ! } ! function rss_noitems(){ ! global $default_path; ! $rss .= '<item>'."\n"; ! $rss .= '<title>No events found</title>'."\n"; ! $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n"; ! $rss .= '</item>'."\n"; ! return $rss; } + function rss_close(){ + return "</channel>\n</rss>\n"; + } ?> Index: rss1.0.php =================================================================== RCS file: /cvsroot/phpicalendar/phpicalendar/rss/rss1.0.php,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** rss1.0.php 16 Feb 2007 07:54:44 -0000 1.6 --- rss1.0.php 11 Dec 2008 21:54:53 -0000 1.7 *************** *** 2,263 **** /******************************************************************************** ! * Modified from phpicalendar 2.0a distribution by Jim Hu ! * philosophical changes ! * - instead of having separate generators, use a date range for all views (done) ! * - change the rss generation method to conform to standards(not done) ! * PHP note: #@ is error control operator to suppress execution halt on error ! * - used below to deal with undef? ! * ! * using rssview, RSS feeds can be specified to return events for a given day, week, month, or year ! * feeds can be specified for a number of days to or from a given date ! * feeds can be specified for a range of dates ! * *********************************************************************************/ - /* Modified from 2.21 by dyfrin 2006/03/08 19:09:28 - Changes: - -RSS changed to 2.0, encoding removed, languages converted to ISO standard for feeds - -RSS title changed to be set by config.inc.php. Make sure that is added to it. - Lines modified: 135-165, 208-223 - Additional mods by J. Hu - */ define('BASE', '../'); ! require(BASE.'functions/init.inc.php'); ! ! if ($enable_rss != 'yes') { ! die ("RSS feeds are not enabled on this site."); } ! ! include_once(BASE.'functions/date_functions.php'); ! ! ! //set the range of days to return based on the view chosen ! $rssview = $_GET['rssview']; ! if (isset($_GET['getdate']) && $_GET['getdate'] !=''){ ! $getdate = $_GET['getdate']; ! }else{ ! $getdate = date("Ymd"); } - # for all views, $fromdate is the first day to be shown and $todate should be the last day. - switch ($rssview){ - case 'day': - $fromdate = $getdate; - $todate = $getdate; - $theview = $lang['l_day']; - break; - case 'week': - $fromdate = dateOfWeek($getdate, 'Sunday'); - $todate = $fromdate + 6; - $theview = $lang['l_week']." of ".date('n/d/Y',strtotime($fromdate)); - break; - case 'month': - $parse_month = date ("Ym", strtotime($getdate)); - $fromdate = ($parse_month *100) + 1; - $todate = ($parse_month *100) + date("t",strtotime($getdate)); - $theview = date('M Y',strtotime($fromdate)); - break; - case 'year': - if(isset($_GET['year'])){ - $theyear = $_GET['year']; - }else{ - $theyear = substr($getdate,0,4); - } - $fromdate = ($theyear*10000)+101; - $todate = date("Ymd", strtotime($theyear*10000+1231)); - $theview = $theyear; - break; - case 'daysfrom': - $fromdate = $getdate; - $todate = date("Ymd", strtotime($getdate) + $_GET['days']*60*60*24); - $theview = $_GET['days']." days from ".date('n/d/Y',strtotime($fromdate)); - break; - case 'daysto': - $todate = $getdate; - $fromdate = date("Ymd", strtotime($getdate) - $_GET['days']*60*60*24); - $theview = $_GET['days']." days before ".date('n/d/Y',strtotime($todate)); - break; - case 'range': - if(isset($_GET['from'])){ - $fromdate = $_GET['from']; - }else{ - $fromdate = $getdate; - } - $todate = $_GET['to']; - $theview = date('n/d/Y',strtotime($fromdate)).'-'.date('n/d/Y',strtotime($todate)); - break; - default: - #default to week - $fromdate = dateOfWeek($getdate, 'Sunday'); - $todate = $fromdate + 6; - $theview = ""; } - #need to give ical_parser the most distant date to correctly set up master_array. - $getdate = $todate; - #echo "from:$fromdate to:$todate"; - - #Note that ical_parser supplies cal_displayname. - include(BASE.'functions/ical_parser.php'); - - $events_count = 0; ! // calculate a value for Last Modified and ETag ! $cal = implode(",",$cals); ! ! //get filemtime from master array ! $filemod = 0; #default to start of unix era, overwrite with most recent mtime from master array ! foreach ($master_array['-4'] as $calinfo){ ! if ($calinfo['mtime'] > $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 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."\n"; ! ! /* Use 1.0 and strip encoding, use rss_language */ ! $rss .= '<rdf:RDF ! xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ! xmlns:ev="http://purl.org/rss/1.0/modules/event/" ! xmlns:dc="http://purl.org/dc/elements/1.1/" ! xmlns="http://purl.org/rss/1.0/">'."\n"; ! ! $rss .= '<channel rdf:about="'.$default_path.'/rss/rss.php/'; ! if (isset($cpath) && $cpath !='') $rss_link.="?cpath=$cpath"; ! $rss .='">'."\n"; ! ! $rss .= '<title>'.$cal_displayname; ! if ($theview !=""){$rss .= ' - '.$theview;} ! $rss .= "</title>\n"; ! ! $rss .= '<link>'.htmlspecialchars("$default_path").'</link>'."\n"; ! $rss .= '<description>'.$cal_displayname.' '.$lang['l_calendar'].' - '.$theview.'</description>'."\n"; ! #$rss .= '<language>'.$rss_language.'</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 .= "<items>\n<rdf:Seq>\n"; ! $rss_items =''; ! $uid_arr = array(); ! do { ! $thisdate=date('Ymd', strtotime($thisdate)); ! #echo "Date: $thisdate<br>\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, '<b><i><u>'); ! # $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, '<b><i><u>'); ! ! $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"); ! ! if (isset($rss_link_to_event) && $$rss_link_to_event == 'yes'){ ! $event_data = urlencode(serialize($val)); ! $rss_link = "$default_path/includes/event.php?getdate=$thisdate&cal=$cal&event_data=$event_data"; ! }else{ ! $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 .= '<rdf:li rdf:resource="'.$rss_link.'&uid='.$uid.'/" />'."\n"; ! $rss_items .= '<item rdf:about="'.$rss_link.'&uid='.$uid.'/">'."\n"; ! ! /* Create guid, and use uid to make link unique */ ! # $rss .= '<guid isPermaLink="false">'.$rss_link.$uid.'</guid>'."\n"; ! /* End guid modification */ ! $rss_items .= '<title>'.$rss_title.'</title>'."\n"; ! $rss_items .= '<ev:startdate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:startdate>'."\n"; ! $rss_items .= '<ev:enddate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:enddate>'."\n"; ! ! $rss_items .= '<link>'.$rss_link.'</link>'."\n"; ! $rss_items .= '<description>'.$rss_description.'</description>'."\n"; ! if (isset($val['location']) && $val['location'] !=''){ ! $location = str_replace('&','&',$val['location']); ! $location = str_replace('&amp;','&',$location); ! $rss_items .= '<ev:location>'.$location."</ev:location>\n"; ! } ! $rss_items .= '</item>'."\n"; ! $events_count++; ! } ! } ! } ! if (($events_count < 1) && ($i == $numdays)) { ! $rss_items .= '<item rdf:about="'.$default_path."\">\n"; ! $rss_items .= '<title>No events found</title>'."\n"; ! $rss_items .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n"; ! $rss_items .= '</item>'."\n"; ! } ! $thisdate++; ! $i++; ! } while ($i <= $numdays); ! ! $rss .= "</rdf:Seq>\n</items>\n"; ! $rss .= "</channel>\n"; ! $rss .= $rss_items.'</rdf:RDF>'."\n"; ! ! foreach ($uid_arr as $uid=>$date_range){ ! #echo "date_range:$date_range<br>"; ! ! if(strpos($date_range,"+")>0){ ! #echo "+ in date_range<br>"; ! $temp = explode("+",$date_range); ! $date_range = $temp[0].'-'.array_pop($temp); ! } ! $rss = str_replace("<uid>$uid</uid>\n<event_start>".$lang['l_all_day']."</event_start>","<uid>$uid</uid>\n<event_start>$date_range</event_start>", $rss); ! } - header ("Content-Type: text/xml"); - - echo "$rss"; ?> --- 2,76 ---- /******************************************************************************** ! changed to use rss_common ! J. Hu 12/10/2008 *********************************************************************************/ define('BASE', '../'); ! require(BASE.'rss/rss_common.php'); ! function rss_top(){ ! global $cal_displayname, $theview, $default_path, $cpath, $lang, $rss_link, $rss_language; ! $rss = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."\n"; ! ! /* Use 1.0 and strip encoding, use rss_language */ ! $rss .= '<rdf:RDF ! xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ! xmlns:ev="http://purl.org/rss/1.0/modules/event/" ! xmlns:dc="http://purl.org/dc/elements/1.1/" ! xmlns="http://purl.org/rss/1.0/">'."\n"; ! ! $rss .= '<channel rdf:about="'.$default_path.'/rss/rss.php/'; ! if (isset($cpath) && $cpath !='') $rss_link.="?cpath=$cpath"; ! $rss .='">'."\n"; ! ! $rss .= '<title>'.$cal_displayname; ! if ($theview !=""){$rss .= ' - '.$theview;} ! $rss .= "</title>\n"; ! ! $rss .= '<link>'.htmlspecialchars("$default_path").'</link>'."\n"; ! $rss .= '<description>'.$cal_displayname.' '.$lang['l_calendar'].' - '.$theview.'</description>'."\n"; ! #$rss .= '<language>'.$rss_language.'</language>'."\n"; ! return $rss; } ! function rss_li($rss_link, $uid){ ! return '<rdf:li rdf:resource="'.$rss_link.'&uid='.$uid.'/" />'."\n"; } + function enclose_items($rss_items){ + return "<items>\n<rdf:Seq>\n".$rss_items."</rdf:Seq>\n</items>\n</channel>\n"; } ! function rss_item(){ ! global $uid,$event_start,$rss_title,$rss_link, $dayofweek, $event_text, $rss_description, $val; ! $rss_item = '<item rdf:about="'.$rss_link.'&uid='.$uid.'/">'."\n"; ! /* Create guid, and use uid to make link unique */ ! # $rss .= '<guid isPermaLink="false">'.$rss_link.$uid.'</guid>'."\n"; ! /* End guid modification */ ! $rss_item .= '<title>'.$rss_title.'</title>'."\n"; ! $rss_item .= '<ev:startdate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:startdate>'."\n"; ! $rss_item .= '<ev:enddate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:enddate>'."\n"; ! $rss_item .= '<link>'.$rss_link.'</link>'."\n"; ! $rss_item .= '<description>'.$rss_description.'</description>'."\n"; ! if (isset($val['location']) && $val['location'] !=''){ ! $location = str_replace('&','&',$val['location']); ! $location = str_replace('&amp;','&',$location); ! $rss_item .= '<ev:location>'.$location."</ev:location>\n"; ! } ! $rss_item .= '</item>'."\n"; ! return $rss_item; } ! function rss_noitems(){ ! $rss_item = '<item rdf:about="'.$default_path."\">\n"; ! $rss_item .= '<title>No events found</title>'."\n"; ! $rss_item .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n"; ! $rss_item .= '</item>'."\n"; ! return $rss_item; } + function rss_close(){ + return "</rdf:RDF>\n"; + } ?> Index: rss2.0.php =================================================================== RCS file: /cvsroot/phpicalendar/phpicalendar/rss/rss2.0.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** rss2.0.php 16 Feb 2007 07:54:44 -0000 1.5 --- rss2.0.php 11 Dec 2008 21:54:53 -0000 1.6 *************** *** 23,264 **** define('BASE', '../'); ! require(BASE.'functions/init.inc.php'); ! if ($enable_rss != 'yes') { ! die ("RSS feeds are not enabled on this site."); } ! include_once(BASE.'functions/date_functions.php'); ! ! ! //set the range of days to return based on the view chosen ! $rssview = $_GET['rssview']; ! if (isset($_GET['getdate']) && $_GET['getdate'] !=''){ ! $getdate = $_GET['getdate']; ! }else{ ! $getdate = date("Ymd"); } - # for all views, $fromdate is the first day to be shown and $todate should be the last day. - switch ($rssview){ - case 'day': - $fromdate = $getdate; - $todate = $getdate; - $theview = $lang['l_day']; - break; - case 'week': - $fromdate = dateOfWeek($getdate, 'Sunday'); - $todate = $fromdate + 6; - $theview = $lang['l_week']." of ".date('n/d/Y',strtotime($fromdate)); - break; - case 'month': - $parse_month = date ("Ym", strtotime($getdate)); - $fromdate = ($parse_month *100) + 1; - $todate = ($parse_month *100) + date("t",strtotime($getdate)); - $theview = date('M Y',strtotime($fromdate)); - break; - case 'year': - if(isset($_GET['year'])){ - $theyear = $_GET['year']; - }else{ - $theyear = substr($getdate,0,4); - } - $fromdate = ($theyear*10000)+101; - $todate = date("Ymd", strtotime($theyear*10000+1231)); - $theview = $theyear; - break; - case 'daysfrom': - $fromdate = $getdate; - $todate = date("Ymd", strtotime($getdate) + $_GET['days']*60*60*24); - $theview = $_GET['days']." days from ".date('n/d/Y',strtotime($fromdate)); - break; - case 'daysto': - $todate = $getdate; - $fromdate = date("Ymd", strtotime($getdate) - $_GET['days']*60*60*24); - $theview = $_GET['days']." days before ".date('n/d/Y',strtotime($todate)); - break; - case 'range': - if(isset($_GET['from'])){ - $fromdate = $_GET['from']; - }else{ - $fromdate = $getdate; - } - $todate = $_GET['to']; - $theview = date('n/d/Y',strtotime($fromdate)).'-'.date('n/d/Y',strtotime($todate)); - break; - default: - #default to week - $fromdate = dateOfWeek($getdate, 'Sunday'); - $todate = $fromdate + 6; - $theview = ""; } - #need to give ical_parser the most distant date to correctly set up master_array. - $getdate = $todate; - #echo "from:$fromdate to:$todate"; - - #Note that ical_parser supplies cal_displayname. - include(BASE.'functions/ical_parser.php'); - - $events_count = 0; - - // calculate a value for Last Modified and ETag - $cal = implode(",",$cals); - - //get filemtime from master array - $filemod = 0; #default to start of unix era, overwrite with most recent mtime from master array - foreach ($master_array['-4'] as $calinfo){ - if ($calinfo['mtime'] > $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 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."\n"; ! #$rss .= '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 2.01//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">'."\n"; ! ! /* Use 2.0 and strip encoding, use rss_language */ ! $rss .= '<rss version="2.0"'."\n"; ! $rss .= 'xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ! xmlns:ev="http://purl.org/rss/1.0/modules/event/" ! xmlns:dc="http://purl.org/dc/elements/1.1/" ! >'."\n"; ! $rss .= '<channel>'."\n"; ! ! ! $rss .= '<title>'.$cal_displayname; ! if ($theview !=""){$rss .= ' - '.$theview;} ! $rss .= "</title>\n"; ! ! $rss .= '<link>'.$default_path.'/rss/rss2.0.php/'; ! if (isset($cpath) && $cpath !='') $rss_link.="?cpath=$cpath"; ! $rss .='</link>'."\n"; ! $rss .= '<description>'.$cal_displayname.' '.$lang['l_calendar'].' - '.$theview.'</description>'."\n"; ! $rss .= '<language>'.$rss_language.'</language>'."\n"; ! ! ! /* End rss 2.0 modification */ ! ! ! //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 .= "<items>\n<rdf:Seq>\n"; ! $uid_arr = array(); ! do { ! $thisdate=date('Ymd', strtotime($thisdate)); ! #echo "Date: $thisdate<br>\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, '<b><i><u>'); ! # $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, '<b><i><u>'); ! ! $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"); ! if (isset($rss_link_to_event) && $$rss_link_to_event == 'yes'){ ! $event_data = urlencode(serialize($val)); ! $rss_link = "$default_path/includes/event.php?getdate=$thisdate&cal=$cal&event_data=$event_data"; ! }else{ ! $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 .= '<rdf:li rdf:resource="'.$rss_link.'&uid='.$uid.'/" />'."\n"; ! $rss .= '<item>'."\n"; ! ! /* Create guid, and use uid to make link unique */ ! $rss .= '<guid isPermaLink="false">'.$rss_link.'&uid='.$uid.'</guid>'."\n"; ! /* End guid modification */ ! $rss .= '<title>'.$rss_title.'</title>'."\n"; ! $rss .= '<ev:startdate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:startdate>'."\n"; ! $rss .= '<ev:enddate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:enddate>'."\n"; ! ! $rss .= '<link>'.$rss_link.'</link>'."\n"; ! $rss .= '<description>'.$rss_description.'</description>'."\n"; ! if (isset($val['location']) && $val['location'] !=''){ ! $location = str_replace('&','&',$val['location']); ! $location = str_replace('&amp;','&',$location); ! $rss .= '<ev:location>'.$location."</ev:location>\n"; ! } ! $rss .= '</item>'."\n"; ! $events_count++; ! } ! } ! } ! if (($events_count < 1) && ($i == $numdays)) { ! $rss .= '<item>'."\n"; ! $rss .= '<guid isPermaLink="false">'.$default_path.'&uid='.$thisdate.'</guid>'."\n"; ! $rss .= '<title>No events found</title>'."\n"; ! $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n"; ! $rss .= '</item>'."\n"; ! } ! $thisdate++; ! $i++; ! } while ($i <= $numdays); ! ! #$rss .= "</rdf:Seq>\n</items>\n"; ! $rss .= "\n</channel>\n</rss>\n"; ! ! foreach ($uid_arr as $uid=>$date_range){ ! #echo "date_range:$date_range<br>"; ! ! if(strpos($date_range,"+")>0){ ! #echo "+ in date_range<br>"; ! $temp = explode("+",$date_range); ! $date_range = $temp[0].'-'.array_pop($temp); ! } ! $rss = str_replace("<uid>$uid</uid>\n<event_start>".$lang['l_all_day']."</event_start>","<uid>$uid</uid>\n<event_start>$date_range</event_start>", $rss); ! } - header ("Content-Type: text/xml"); - - echo "$rss"; ?> --- 23,89 ---- define('BASE', '../'); ! require(BASE.'rss/rss_common.php'); ! function rss_top(){ ! global $cal_displayname, $theview, $default_path, $cpath, $lang, $rss_link, $rss_language; ! $rss = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."\n"; ! /* Use 2.0 and strip encoding, use rss_language */ ! $rss .= '<rss version="2.0"'."\n"; ! $rss .= 'xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ! xmlns:ev="http://purl.org/rss/1.0/modules/event/" ! xmlns:dc="http://purl.org/dc/elements/1.1/">'."\n"; ! $rss .= '<channel>'."\n"; ! $rss .= '<title>'.$cal_displayname; ! if ($theview !=""){$rss .= ' - '.$theview;} ! $rss .= "</title>\n"; ! ! $rss .= '<link>'.$default_path.'/rss/rss2.0.php/'; ! if (isset($cpath) && $cpath !='') $rss_link.="?cpath=$cpath"; ! $rss .='</link>'."\n"; ! $rss .= '<description>'.$cal_displayname.' '.$lang['l_calendar'].' - '.$theview.'</description>'."\n"; ! $rss .= '<language>'.$rss_language.'</language>'."\n"; ! return $rss; } ! function rss_li($rss_link, $uid){ ! $return = ""; } + function enclose_items($rss_items){ + return $rss_items; } ! function rss_item(){ ! global $uid,$event_start,$rss_title,$rss_link, $dayofweek, $event_text, $rss_description, $val, $thisdate; ! $rss = '<item>'."\n"; ! /* Create guid, and use uid to make link unique */ ! $rss .= '<guid isPermaLink="false">'.$rss_link.'&uid='.$uid.'</guid>'."\n"; ! /* End guid modification */ ! $rss .= '<title>'.$rss_title.'</title>'."\n"; ! $rss .= '<ev:startdate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:startdate>'."\n"; ! $rss .= '<ev:enddate>'.date("Y-m-d", strtotime($thisdate)).'T'.date("h:m:s",$val["event_start"]).'</ev:enddate>'."\n"; ! $rss .= '<link>'.$rss_link.'</link>'."\n"; ! $rss .= '<description>'.$rss_description.'</description>'."\n"; ! if (isset($val['location']) && $val['location'] !=''){ ! $location = str_replace('&','&',$val['location']); ! $location = str_replace('&amp;','&',$location); ! $rss .= '<ev:location>'.$location."</ev:location>\n"; ! } ! $rss .= '</item>'."\n"; ! return $rss; } ! function rss_noitems(){ ! $rss = '<item>'."\n"; ! $rss .= '<guid isPermaLink="false">'.$default_path.'&uid='.$thisdate.'</guid>'."\n"; ! $rss .= '<title>No events found</title>'."\n"; ! $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n"; ! $rss .= '</item>'."\n"; ! return $rss; } + function rss_close(){ + return "\n</channel>\n</rss>\n"; + } ?> |