Diff for /loncom/interface/lonrss.pm between versions 1.41 and 1.61

version 1.41, 2008/12/15 16:09:12 version 1.61, 2021/12/14 03:15:12
Line 61  sub displayfeedname { Line 61  sub displayfeedname {
     my $name=$filterfilename;       my $name=$filterfilename; 
     if ($name=~/^CourseBlog/) {      if ($name=~/^CourseBlog/) {
         $name=&mt('Course Blog');          $name=&mt('Course Blog');
           if ($env{'course.'.$env{'request.course.id'}.'.type'} eq 'Community') {
               $name = &mt('Community Blog'); 
           }
  if ($env{'course.'.$env{'request.course.id'}.'.description'}) {   if ($env{'course.'.$env{'request.course.id'}.'.description'}) {
     $name.=' '.$env{'course.'.$env{'request.course.id'}.'.description'};      $name.=' '.$env{'course.'.$env{'request.course.id'}.'.description'};
  }   }
Line 85  sub changefeeddisplay { Line 88  sub changefeeddisplay {
 }  }
   
 sub advertisefeeds {  sub advertisefeeds {
     my ($uname,$udom,$edit)=@_;      my ($uname,$udom,$edit,$count,$hidden)=@_;
     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);
     my $mode='public';      my $mode='public';
Line 97  sub advertisefeeds { Line 100  sub advertisefeeds {
  next if ($feed =~/^\s*$/    ||   next if ($feed =~/^\s*$/    ||
  $feed =~ /^error:/ ||   $feed =~ /^error:/ ||
  $feed =~ /^feed_display_option_/);   $feed =~ /^feed_display_option_/);
           if ($feednames{'feed_display_option_'.$feed} eq 'hidden') {
               if (ref($hidden)) {
                   $$hidden ++;
               }
               if (ref($count)) {
                   unless ($edit) {
                       next;
                   }
               }
           } else {
               if (ref($count)) {
                   $$count ++;
               }
           }
  my $feedurl= $server.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss';   my $feedurl= $server.'/public/'.$udom.'/'.$uname.'/'.$feed.'.rss';
  my $htmlurl= $server.'/'.$mode.'/'.$udom.'/'.$uname.'/'.$feed.'_rss.html';   my $htmlurl= $server.'/'.$mode.'/'.$udom.'/'.$uname.'/'.$feed.'_rss.html';
  if ($feednames{'feed_display_option_'.$feed} eq 'hidden') {   if ($feednames{'feed_display_option_'.$feed} eq 'hidden') {
Line 112  sub advertisefeeds { Line 128  sub advertisefeeds {
     }      }
     if ($feeds) {      if ($feeds) {
  return '<h4>'.&mt('Available RSS Feeds and Blogs').'</h4><ul>'.$feeds.'</ul>';   return '<h4>'.&mt('Available RSS Feeds and Blogs').'</h4><ul>'.$feeds.'</ul>';
     } else {      } elsif (!$edit) {
         return '';          return '<h4>'.&mt('No available RSS Feeds and Blogs').'</h4>';
     }      }
 }  }
   
Line 228  sub add_blog_entry_link { Line 244  sub add_blog_entry_link {
 }  }
   
 sub blocking_blogdisplay {  sub blocking_blogdisplay {
     my ($uname,$udom,$html,$filterfeedname) = @_;      my ($uname,$udom,$html,$filterfeedname,$clientip) = @_;
     my $user = &Apache::loncommon::plainname($uname,$udom);      my $user = &Apache::loncommon::plainname($uname,$udom);
     if ($html) {      if ($html) {
         $user = &Apache::loncommon::aboutmewrapper($user,$uname,$udom);          $user = &Apache::loncommon::aboutmewrapper($user,$uname,$udom);
Line 237  sub blocking_blogdisplay { Line 253  sub blocking_blogdisplay {
     }      }
     my %setters;      my %setters;
     my ($blocked,$output,$blockcause);      my ($blocked,$output,$blockcause);
     my ($startblock,$endblock) =      my ($startblock,$endblock,$triggerblock,$by_ip,$blockdom) =
              &Apache::loncommon::blockcheck(\%setters,'blogs');               &Apache::loncommon::blockcheck(\%setters,'blogs',$clientip);
     if ($startblock && $endblock) {      if ($startblock && $endblock) {
         $blockcause = 'user';          $blockcause = 'user';
       } elsif ($by_ip) {
           $blockcause = 'ip';
     } else {       } else { 
         if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {          if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
             ($startblock,$endblock) =              ($startblock,$endblock) =
                  &Apache::loncommon::blockcheck(\%setters,'blogs',                   &Apache::loncommon::blockcheck(\%setters,'blogs',$clientip,
                                                 $uname,$udom);                                                  $uname,$udom);
             $blockcause = 'blogowner';              $blockcause = 'blogowner';
         }          }
     }      }
     if ($startblock && $endblock) {      if (($startblock && $endblock) || ($by_ip)) {
         $blocked = 1;          $blocked = 1;
         my $showstart = &Apache::lonlocal::locallocaltime($startblock);          if ($startblock && $endblock) {
         my $showend = &Apache::lonlocal::locallocaltime($endblock);              my $showstart = &Apache::lonlocal::locallocaltime($startblock);
         $output = &mt('Blogs belonging to [_1] are unavailable from [_2] to [_3].',$user,$showstart,$showend);              my $showend = &Apache::lonlocal::locallocaltime($endblock);
               $output = &mt('Blogs belonging to [_1] are unavailable from [_2] to [_3].',$user,$showstart,$showend);
           } else {
               $output = &mt('Blogs are unavailable from your current IP address: [_1].',$clientip);
           }
         if ($html) {$output.='<br />';}          if ($html) {$output.='<br />';}
         if ($blockcause eq 'user') {          if ($blockcause eq 'user') {
             $output .= &mt('This is because you are a student in one or more courses in which communication is being blocked.');              $output .= &mt('This is because you are a student in one or more courses in which communication is being blocked.');
             if ($html) {              if ($html) {
                 $output .= '<br />'.                  #$output .= '<br />'.
                        &Apache::loncommon::build_block_table($startblock,                         #&Apache::loncommon::build_block_table($startblock,
                                                         $endblock,\%setters);                         #                                 $endblock,\%setters);
                    my ($blocked, $blocktext) = Apache::loncommon::blocking_status('blogs',$clientip);
                    $output .= '<br /><br />'.$blocktext;
               }
           } elsif ($blockcause eq 'ip') {
               my $showdom = &Apache::lonnet::domain($blockdom);
               if ($showdom eq '') {
                   $showdom = $blockdom;
             }              }
               $output .= &mt('This restriction was set by an administrator in the [_1] LON-CAPA domain',$showdom);
         } else {          } else {
             $output .= &mt('This is because the blog owner is a student in one or more courses in which communication is being blocked.');              $output .= &mt('This is because the blog owner is a student in one or more courses in which communication is being blocked.');
         }          }
Line 283  sub handler { Line 313  sub handler {
  $edit=1;   $edit=1;
  $html=1;   $html=1;
     }      }
     if  (($mode eq 'adm') && (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {      if  (($mode eq 'adm') && (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))
           && ($uname eq $env{'course.'.$env{'request.course.id'}.'.num'} &&
               $udom eq $env{'course.'.$env{'request.course.id'}.'.domain'})) {
  $edit=1;   $edit=1;
  $html=1;   $html=1;
     }      }
Line 305  sub handler { Line 337  sub handler {
     my ($displayfeedname,$displayoption)=&displayfeedname($filename,$uname,$udom);      my ($displayfeedname,$displayoption)=&displayfeedname($filename,$uname,$udom);
     my ($blocked,$blocktext,$disabled,$disabletext);      my ($blocked,$blocktext,$disabled,$disabletext);
     if (!&Apache::lonnet::is_course($udom,$uname)) {      if (!&Apache::lonnet::is_course($udom,$uname)) {
         ($blocked,$blocktext) = &blocking_blogdisplay($uname,$udom,$html,$filterfeedname);          my $clientip = &Apache::lonnet::get_requestor_ip($r); 
         $disabled = &Apache::lonnet::usertools_access($uname,$udom,'blog');          ($blocked,$blocktext) = &blocking_blogdisplay($uname,$udom,$html,$filterfeedname,$clientip);
         if ($disabled) {          if (&Apache::lonnet::usertools_access($uname,$udom,'blog')) {
               $disabled = 0;
           } else {
               $disabled = 1;
             if ($html) {              if ($html) {
                 $disabletext = '<h2>'.&mt('No user blog available') .'</h2>'.                  $disabletext = '<h2>'.&mt('No user blog available') .'</h2>'.
                                &mt('This is a result of one of the following:').'<ul>'.                                 &mt('This is a result of one of the following:').'<ul>'.
Line 320  sub handler { Line 355  sub handler {
         }          }
     }      }
     if ($html) {      if ($html) {
  my $title = $displayfeedname?$displayfeedname  # my $title = $displayfeedname?$displayfeedname:"Available RSS Feeds and Blogs";
                                     :"Available RSS Feeds and Blogs";          my $title = "My Space";
  my $rss_link = &Apache::lonrss::rss_link($uname,$udom);   my $rss_link = &Apache::lonrss::rss_link($uname,$udom);
  my @brcrumb = [{href=>$rss_link,text=>"Available RSS Feeds and Blogs"}];          my $head_extra = $rss_link.'<script type="text/javascript" '
  $r->print(&Apache::loncommon::start_page($title,$rss_link,                                    .'src="/res/adm/includes/file_upload.js"></script>';
  {'bread_crumbs' => @brcrumb,   my $brcrumb = [{href=>$rss_link,text=>"Available RSS Feeds and Blogs"}];
   'domain'         => $udom,   $r->print(&Apache::loncommon::start_page($title,$head_extra,
   'force_register' =>   {'bread_crumbs'   => $brcrumb,
       $env{'form.register'}}).    'domain'         => $udom,
     'force_register' => $env{'form.register'}}).
   &changed_js());    &changed_js());
     } else { # render RSS      } else { # render RSS
         my $server = &Apache::lonnet::absolute_url();          my $server = &Apache::lonnet::absolute_url();
Line 389  sub handler { Line 425  sub handler {
  }   }
 # Add a new feed  # Add a new feed
         if (($html) && ($edit)) {          if (($html) && ($edit)) {
     $r->print('<form method="post" name="makenewfeed">');      $r->print('<h4>' . &mt('New RSS Feed or Blog'). '</h4>');
             $r->print(&mt('Name for New Feed').": <input type='text' size='40' name='namenewblog' />");      $r->print('<form method="post" name="makenewfeed" action="">');
     $r->print('<input type="submit" value="'.&mt('Start a New Feed').'" />');              $r->print(&mt('Name').": <input type='text' size='40' name='namenewblog' />");
       $r->print('<input type="submit" value="'.&mt('New Feed').'" />');
     $r->print('</form>');      $r->print('</form>');
  }   }
         if ($displayfeedname) { # this is an existing feed          if ($displayfeedname) { # this is an existing feed
Line 491  sub handler { Line 528  sub handler {
       ($html?'<hr /><h3>':'<title>').        ($html?'<hr /><h3>':'<title>').
       &mt('LON-CAPA Feed "[_1]" for [_2]',$displayfeedname,$name).        &mt('LON-CAPA Feed "[_1]" for [_2]',$displayfeedname,$name).
       ($displayoption eq 'hidden'?' ('.&mt('Hidden').')':'').        ($displayoption eq 'hidden'?' ('.&mt('Hidden').')':'').
       ($html?'</h3>'.($edit?'<form method="post" name="lonhomework" enctype="multipart/form-data"><br />'.        ($html?'</h3>'.($edit?'<form method="post" name="lonhomework" enctype="multipart/form-data" action=""><br />'.
       &mt('Name of this Feed').        &mt('Name of this Feed').
       ': <input type="text" size="50" name="newblogname" value="'.        ': <input type="text" size="50" name="newblogname" value="'.
       $displayfeedname.'" />':'').'<ul>':'</title>'));        $displayfeedname.'" />':'').'<ul>':'</title>'));
Line 508  sub handler { Line 545  sub handler {
    'private' => 'private',     'private' => 'private',
    'hidden' => 'hidden',     'hidden' => 'hidden',
    'delete' => 'delete',     'delete' => 'delete',
    'store' => 'Save changes',     'store' => 'Select',
    'title' => 'Title',     'title' => 'Title',
    'link' => 'Link',     'link' => 'Link',
    'description' => 'Description',     'description' => 'Description',
Line 516  sub handler { Line 553  sub handler {
                         my $uploadlink;                          my $uploadlink;
                         if ($entry==$newid) {                          if ($entry==$newid) {
 # Generate upload link only for last (new) entry  # Generate upload link only for last (new) entry
     $uploadlink=&Apache::inputtags::file_selector(0,0,'*','both');  # Calculate the quota space available in the user's portfolio
                               my $disk_quota = &Apache::loncommon::get_user_quota($env{'user.name'},
                                                    $env{'user.domain'}); # expressed in MB
                               my $portfolio_root = '/userfiles/portfolio';
                               my $getpropath = 1;
                               my $current_disk_usage = &Apache::lonnet::diskusage(
                                   $env{'user.domain'}, $env{'user.name'},
                                   $portfolio_root, $getpropath); # Expressed in kB
                               # Convert to MB for use in file_selector()
                               my $free_space = $disk_quota - ($current_disk_usage / 1024.);
                               # Format this number since it will be displayed onscreen
                               $free_space = sprintf("%.1f", $free_space);
                               $uploadlink=&Apache::inputtags::file_selector(0,0,'*','both','',$free_space);
  } else {   } else {
 # Otherwise, display  # Otherwise, display
                             $uploadlink='<tt>'.$newsfeed{$id.'_enclosureurl'}.'</tt>'.                              $uploadlink='<tt>'.$newsfeed{$id.'_enclosureurl'}.'</tt>'.
Line 530  sub handler { Line 579  sub handler {
 <li>  <li>
 <label><input name='$id\_modified' type='checkbox' value="modified" /> $lt{'store'}</label>  <label><input name='$id\_modified' type='checkbox' value="modified" /> $lt{'store'}</label>
 &nbsp;&nbsp;  &nbsp;&nbsp;
 <label><input name='$id\_status' type="radio" value="public" $status{'public'} onClick="changed(this.form,'$id');" /> $lt{'public'}</label>  <label><input name='$id\_status' type="radio" value="public" $status{'public'} onclick="changed(this.form,'$id');" /> $lt{'public'}</label>
 &nbsp;&nbsp;  &nbsp;&nbsp;
 <label><input name='$id\_status' type="radio" value="private" $status{'private'} onClick="changed(this.form,'$id');" /> $lt{'private'}</label>  <label><input name='$id\_status' type="radio" value="private" $status{'private'} onclick="changed(this.form,'$id');" /> $lt{'private'}</label>
 &nbsp;&nbsp;  &nbsp;&nbsp;
 <label><input name='$id\_status' type="radio" value="hidden" $status{'hidden'} onClick="changed(this.form,'$id');" /> $lt{'hidden'}</label>  <label><input name='$id\_status' type="radio" value="hidden" $status{'hidden'} onclick="changed(this.form,'$id');" /> $lt{'hidden'}</label>
 &nbsp;&nbsp;  &nbsp;&nbsp;
 <label><input name='$id\_status' type="radio" value="deleted" onClick="changed(this.form,'$id');" /> $lt{'delete'}</label>  <label><input name='$id\_status' type="radio" value="deleted" onclick="changed(this.form,'$id');" /> $lt{'delete'}</label>
 <br />  <br />
 $lt{'title'}:  $lt{'title'}:
 <input name='$id\_title' type='text' size='60' value='$newsfeed{$id.'_title'}' onChange="changed(this.form,'$id');" /><br />  <input name='$id\_title' type='text' size='60' value='$newsfeed{$id.'_title'}' onchange="changed(this.form,'$id');" /><br />
 $lt{'description'}:<br />  $lt{'description'}:<br />
 <textarea name='$id\_description' rows="6" cols="80" onChange="changed(this.form,'$id');">$newsfeed{$id.'_description'}</textarea><br />  <textarea name='$id\_description' rows="6" cols="80" onchange="changed(this.form,'$id');">$newsfeed{$id.'_description'}</textarea><br />
 $lt{'link'}:  $lt{'link'}:
 <input name='$id\_link' type='text' size='60' value='$newsfeed{$id.'_link'}' onChange="changed(this.form,'$id');" /><br />  <input name='$id\_link' type='text' size='60' value='$newsfeed{$id.'_link'}' onchange="changed(this.form,'$id');" /><br />
 $lt{'enc'} -  $lt{'enc'} -
 $uploadlink  $uploadlink
 <hr /></li>  <hr /></li>
Line 588  ENDEDIT Line 637  ENDEDIT
     if ($html) {      if ($html) {
  $r->print('</ul>');   $r->print('</ul>');
  if ($edit) {   if ($edit) {
     $r->print('<input type="hidden" name="newid" value="'.$newid.'"/><input type="submit" value="'.&mt('Save Marked Changes').'" />'.      $r->print('<input type="hidden" name="newid" value="'.$newid.'"/><input type="submit" value="'.&mt('Save Selected').'" />'.
       ($displayoption eq 'hidden'?'<input type="submit" name="advertisethisblog" value="'.&mt('Advertise this Feed').'" />':        ($displayoption eq 'hidden'?'<input type="submit" name="advertisethisblog" value="'.&mt('Advertise this Feed').'" />':
        '<input type="submit" name="hidethisblog" value="'.&mt('Hide this Feed').'" />'));         '<input type="submit" name="hidethisblog" value="'.&mt('Hide this Feed').'" />'));
  }   }
                   $r->print('</form>');
     }      }
  } # was a real display feedname   } # was a real display feedname
  $r->print(($html?'</form>'.&Apache::loncommon::end_page():'</channel></rss>'."\n"));   $r->print(($html?&Apache::loncommon::end_page():'</channel></rss>'."\n"));
     } # a real user      } # a real user
     return OK;      return OK;
 } # end handler  } # end handler

Removed from v.1.41  
changed lines
  Added in v.1.61


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.