Diff for /loncom/interface/lonrss.pm between versions 1.2 and 1.3

version 1.2, 2005/11/18 13:35:30 version 1.3, 2005/11/18 19:11:06
Line 36  use Apache::lontexconvert; Line 36  use Apache::lontexconvert;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
   
 my $feedcounter=0;  
   
 sub filterfeedname {  sub filterfeedname {
     my $filename=shift;      my $filename=shift;
     $filename=~s/\.rss$//;      $filename=~s/\.rss$//;
Line 79  sub advertisefeeds { Line 77  sub advertisefeeds {
     my ($uname,$udom)=@_;      my ($uname,$udom)=@_;
     my $feeds='';      my $feeds='';
     my %feednames=&Apache::lonnet::dump('nohist_all_rss_feeds',$udom,$uname);      my %feednames=&Apache::lonnet::dump('nohist_all_rss_feeds',$udom,$uname);
     foreach (sort keys %feednames) {      foreach my $feed (sort(keys(%feednames))) {
  if ($_!~/^error\:/) {   if ($feed!~/^error\:/) {
     my $url='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$udom.'/'.$uname.'/'.$_.'.rss';      my $url='feed://'.$ENV{'HTTP_HOST'}.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss';
     $feeds.='<li><a href="'.$url.'">'.      $feeds.='<li><a href="'.$url.'">'.
  $feednames{$_}.'</a><br /><tt>'.$url.'</tt></li>';   $feednames{$feed}.'</a><br /><tt>'.$url.'</tt></li>';
  }   }
     }      }
     if ($feeds) {      if ($feeds) {
Line 93  sub advertisefeeds { Line 91  sub advertisefeeds {
     }      }
 }  }
   
 sub addentry {  {
     $feedcounter++;      my $feedcounter;
     my $id=time.'00000'.$$.'00000'.$feedcounter;      sub addentry {
     return &editentry($id,@_);   $feedcounter++;
    my $id=time.'00000'.$$.'00000'.$feedcounter;
    return &editentry($id,@_);
       }
 }  }
   
 sub editentry {  sub editentry {
Line 133  sub changestatus { Line 134  sub changestatus {
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     &Apache::loncommon::content_type($r,'text/xml');      &Apache::loncommon::content_type($r,'application/rss+xml');
     $r->send_http_header;      $r->send_http_header;
     return OK if $r->header_only;      return OK if $r->header_only;
   
Line 165  sub handler { Line 166  sub handler {
  }   }
 # Get feed items  # Get feed items
         my %newsfeed=&Apache::lonnet::dump($feedname,$udom,$uname);          my %newsfeed=&Apache::lonnet::dump($feedname,$udom,$uname);
  foreach (sort keys %newsfeed) {   foreach $entry (sort(keys(%newsfeed))) {
     if ($_=~/^(\d+)\_status$/) {      if ($entry=~/^(\d+)\_status$/) {
  my $id=$1;   my $id=$1;
  if (($newsfeed{$id.'_status'} ne 'public') && ($viewpubliconly)) { next; }   if (($newsfeed{$id.'_status'} ne 'public') && ($viewpubliconly)) { next; }
  if ($newsfeed{$id.'_status'} eq 'hidden') { next; }   if ($newsfeed{$id.'_status'} eq 'hidden') { next; }
  $r->print("\n<item>\n<title>".$newsfeed{$id.'_title'}."</title>\n<description>".   $r->print("\n<item>\n<title>".$newsfeed{$id.'_title'}."</title>\n<description>".
   $newsfeed{$id.'_description'}."</description>\n<link>".    $newsfeed{$id.'_description'}."</description>\n<link>"."http://".$ENV{'HTTP_HOST'}.
   $newsfeed{$id.'_link'}."</link>\n");    $newsfeed{$id.'_link'}."</link>\n");
  if ($newsfeed{$id.'_enclosureurl'}) {   if ($newsfeed{$id.'_enclosureurl'}) {
     $r->print("\n<enclosure url='".$newsfeed{$id.'_enclosureurl'}."' length='".$newsfeed{$id.'_enclosurelength'}.      $r->print("\n<enclosure url='".$newsfeed{$id.'_enclosureurl'}."' length='".$newsfeed{$id.'_enclosurelength'}.
       "' type='".$newsfeed{$id.'_enclosuretype'}."' />");        "' type='".$newsfeed{$id.'_enclosuretype'}."' />");
  }   }
  $r->print("\n<guid>".$id.$filterfeedname.'_'.$udom.'_'.$uname."</guid></item>\n");   $r->print("\n<guid isPermaLink='false'>".$id.$filterfeedname.'_'.$udom.'_'.$uname."</guid></item>\n");
     }      }
  }   }
     }      }

Removed from v.1.2  
changed lines
  Added in v.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>