home *** CD-ROM | disk | FTP | other *** search
/ linuxmafia.com 2016 / linuxmafia.com.tar / linuxmafia.com / calendar-2010-08-23.tar.gz / calendar-2010-08-23.tar / calendar / rss / rss.php < prev   
PHP Script  |  2003-10-12  |  7KB  |  183 lines

  1. <?php
  2.  
  3. define('BASE', '../');
  4. include(BASE.'functions/ical_parser.php');
  5.  
  6. if ($enable_rss != 'yes') {
  7.     die ("RSS feeds are not enabled on this site.");
  8. }
  9.  
  10. $default_path = 'http://'.$HTTP_SERVER_VARS['SERVER_NAME'].':'.$HTTP_SERVER_VARS['SERVER_PORT'].substr($HTTP_SERVER_VARS['PHP_SELF'],0,strpos($HTTP_SERVER_VARS['PHP_SELF'],'/rss/'));
  11. $start_week_time = strtotime(dateOfWeek($getdate, $week_start_day));
  12. $end_week_time = $start_week_time + (6 * 25 * 60 * 60);
  13. $start_week = localizeDate($dateFormat_week, $start_week_time);
  14. $end_week =  localizeDate($dateFormat_week, $end_week_time);
  15. $parse_month = date ("Ym", strtotime($getdate));
  16. $rssview = $HTTP_GET_VARS['rssview'];
  17. $cal_displayname = str_replace("32", " ", $cal);
  18. $events_week = 0;
  19.  
  20. // calculate a value for Last Modified and ETag
  21. $filemod = filemtime("../calendars/$cal.ics");
  22. $filemodtime = date("r", $filemod);
  23.  
  24. //send relevant headers
  25. header ("Last-Modified: $filemodtime");
  26. header ("ETag:\"$filemodtime\"");
  27.  
  28. // checks the user agents headers to see if they kept track of our
  29. // stuff, if so be nice and send back a 304 and exit.
  30.  
  31. if ( ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $filemodtime) || ($_SERVER['HTTP_IF_NONE_MATCH'] == $filemodtime))
  32. {
  33.     header ("HTTP/1.1 304 Not Modified");
  34.     exit;
  35. }
  36.  
  37. if ($rssview == "day") {
  38.     $theview = $day_lang;
  39. } elseif ($rssview == "week") {
  40.     $theview = $week_lang;
  41. } elseif ($rssview == "month") {
  42.     $theview = $month_lang;
  43. }
  44.  
  45.  
  46. $rss =     "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"."\n";
  47. $rss .= '<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">'."\n";
  48. $rss .= '<rss version="0.91">'."\n";
  49. $rss .= '<channel>'."\n";
  50. $rss .= '<title>'.$cal_displayname.' - '.$theview.'</title>'."\n";
  51. $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n";
  52. $rss .= '<description>'.$cal_displayname.' '.$calendar_lang.' - '.$theview.'</description>'."\n";
  53. $rss .= '<language>'.$rss_language.'</language>'."\n";
  54. $rss .= '<copyright>Copyright 2002, '.htmlspecialchars ("$default_path").'</copyright>'."\n";
  55.  
  56.  
  57. if ($rssview == 'day') {
  58.     if (isset($master_array[($getdate)]) && sizeof($master_array[($getdate)]) > 0) {
  59.         foreach ($master_array[("$getdate")] as $event_times) {
  60.             foreach ($event_times as $val) {
  61.                 $event_start     = @$val["event_start"];
  62.                 $event_start     = date ($timeFormat, @strtotime ("$event_start"));
  63.                 $event_text     = stripslashes(urldecode($val["event_text"]));
  64.                 $event_text     = strip_tags($event_text, '<b><i><u>');
  65.                 $event_text     = word_wrap($event_text, 21, $tomorrows_events_lines);
  66.                 $description     = stripslashes(urldecode($val["description"]));
  67.                 $description     = strip_tags($description, '<b><i><u>');
  68.                 $rss_title        = htmlspecialchars ("$event_start $event_text");
  69.                 $rss_link        = htmlspecialchars ("$default_path/day.php?getdate=$getdate&cal=$cal");
  70.                 $rss_description    = htmlspecialchars ("$description");
  71.                 $rss .= '<item>'."\n";
  72.                 $rss .= '<title>'.$rss_title.'</title>'."\n";
  73.                 $rss .= '<link>'.$rss_link.'</link>'."\n";
  74.                 $rss .= '<description>'.$rss_description.'</description>'."\n";
  75.                 $rss .= '</item>'."\n";
  76.                 $events_week++;
  77.             }
  78.         }
  79.     }
  80.     if ($events_week < 1) {
  81.         $rss .= '<item>'."\n";
  82.         $rss .= '<title>'.$no_events_day_lang.'</title>'."\n";
  83.         $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n";
  84.         $rss .= '</item>'."\n";
  85.     }
  86. }
  87.  
  88. $thisdate = $start_week_time;
  89. $i = 0;
  90. if ($rssview == "week") {
  91.     do {
  92.         $getdate = date("Ymd", $thisdate);
  93.         $dayofweek = strtotime ($getdate);
  94.         $dayofweek = localizeDate ($rss_week_date, $dayofweek);
  95.         if (isset($master_array[($getdate)]) && sizeof($master_array[($getdate)]) > 0) {
  96.             foreach ($master_array[("$getdate")] as $event_times) {
  97.                 foreach ($event_times as $val) {
  98.                     $event_start     = @$val["event_start"];
  99.                     $event_start     = date ($timeFormat, @strtotime ("$event_start"));
  100.                     $event_text     = stripslashes(urldecode($val["event_text"]));
  101.                     $event_text     = strip_tags($event_text, '<b><i><u>');
  102.                     $event_text     = word_wrap($event_text, 21, $tomorrows_events_lines);
  103.                     $description     = stripslashes(urldecode($val["description"]));
  104.                     $description     = strip_tags($description, '<b><i><u>');
  105.                     $rss_title        = htmlspecialchars ("$dayofweek: $event_text");
  106.                     $rss_link        = htmlspecialchars ("$default_path/day.php?getdate=$getdate&cal=$cal");
  107.                     $rss_description    = htmlspecialchars ("$dayofweek $event_start: $description");
  108.                     $rss .= '<item>'."\n";
  109.                     $rss .= '<title>'.$rss_title.'</title>'."\n";
  110.                     $rss .= '<link>'.$rss_link.'</link>'."\n";
  111.                     $rss .= '<description>'.$rss_description.'</description>'."\n";
  112.                     $rss .= '</item>'."\n";
  113.                     $events_week++;
  114.                 }
  115.             }
  116.         }
  117.         if (($events_week < 1) && ($i == 6)) {
  118.             $rss .= '<item>'."\n";
  119.             $rss .= '<title>'.$no_events_week_lang.'</title>'."\n";
  120.             $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n";
  121.             $rss .= '</item>'."\n";
  122.         }
  123.         $thisdate = ($thisdate + (25 * 60 * 60));
  124.         $i++;
  125.     } while ($i < 7);
  126. }
  127.  
  128. if ($rssview == "month") {
  129.     foreach($master_array as $key => $new_val2) {
  130.                                         
  131.         // Pull out only this months
  132.         ereg ("([0-9]{6})([0-9]{2})", $key, $regs);
  133.         if ($regs[1] == $parse_month) {
  134.             $getdate = $key;
  135.             $dayofmonth = strtotime ($getdate);
  136.             $dayofmonth = localizeDate ($rss_month_date, $dayofmonth);
  137.             
  138.             // Pull out each day
  139.             foreach ($new_val2 as $new_val) {
  140.                 
  141.                 // Pull out each time
  142.                 foreach ($new_val as $new_key2 => $val) {
  143.                     if ($val["event_text"]) {
  144.                         $event_start     = @$val["event_start"];
  145.                         $event_start     = date ($timeFormat, @strtotime ("$event_start"));
  146.                         $event_text     = stripslashes(urldecode($val["event_text"]));
  147.                         $event_text     = strip_tags($event_text, '<b><i><u>');
  148.                         $event_text     = word_wrap($event_text, 21, $tomorrows_events_lines);
  149.                         $description     = stripslashes(urldecode($val["description"]));
  150.                         $description     = strip_tags($description, '<b><i><u>');
  151.                         $rss_title        = htmlspecialchars ("$dayofmonth: $event_text");
  152.                         $rss_link        = htmlspecialchars ("$default_path/day.php?getdate=$getdate&cal=$cal");
  153.                         $rss_description    = htmlspecialchars ("$dayofmonth $event_start: $description");
  154.                         $rss .= '<item>'."\n";
  155.                         $rss .= '<title>'.$rss_title.'</title>'."\n";
  156.                         $rss .= '<link>'.$rss_link.'</link>'."\n";
  157.                         $rss .= '<description>'.$rss_description.'</description>'."\n";
  158.                         $rss .= '</item>'."\n";
  159.                         $events_week++;
  160.                     }
  161.                             
  162.                     if ($events_week < 1) {
  163.                         $rss .= '<item>'."\n";
  164.                         $rss .= '<title>'.$no_events_month_lang.'</title>'."\n";
  165.                         $rss .= '<link>'.htmlspecialchars ("$default_path").'</link>'."\n";
  166.                         $rss .= '</item>'."\n";
  167.                     }
  168.                 }
  169.             }
  170.         }
  171.     }
  172. }
  173.  
  174.  
  175. $rss .= '</channel>'."\n";
  176. $rss .= '</rss>'."\n";
  177.  
  178. header ("Content-Type: text/xml");
  179.  
  180. echo "$rss";
  181.  
  182. ?>
  183.