Diff for /loncom/interface/lonfeedback.pm between versions 1.101 and 1.102

version 1.101, 2004/07/21 23:57:24 version 1.102, 2004/07/22 23:18:01
Line 222  sub list_discussion { Line 222  sub list_discussion {
                 $newpostsflag = 1;                  $newpostsflag = 1;
             }              }
     my $hidden=($contrib{'hidden'}=~/\.$idx\./);      my $hidden=($contrib{'hidden'}=~/\.$idx\./);
               my $studenthidden=($contrib{'studenthidden'}=~/\.$idx\./);
     my $deleted=($contrib{'deleted'}=~/\.$idx\./);      my $deleted=($contrib{'deleted'}=~/\.$idx\./);
     my $origindex='0.';      my $origindex='0.';
               my $numoldver=0;
     if ($contrib{$idx.':replyto'}) {      if ($contrib{$idx.':replyto'}) {
                 if ( (($ENV{'environment.threadeddiscussion'}) && (($sortposts eq '') || ($sortposts eq 'ascdate'))) || ($sortposts eq 'thread')) {                  if ( (($ENV{'environment.threadeddiscussion'}) && (($sortposts eq '') || ($sortposts eq 'ascdate'))) || ($sortposts eq 'thread')) {
 # this is a follow-up message  # this is a follow-up message
Line 247  sub list_discussion { Line 249  sub list_discussion {
     }      }
     unless ((($hidden) && (!$seeid)) || ($deleted)) {      unless ((($hidden) && (!$seeid)) || ($deleted)) {
  $visible++;   $visible++;
                   if ($contrib{$idx.':history'}) {
                       if ($contrib{$idx.':history'} =~ /:/) {
                           my @oldversions = split/:/,$contrib{$idx.':history'};
                           $numoldver = @oldversions;
                       } else {
                           $numoldver = 1;
                       } 
                   }
  my $message=$contrib{$idx.':message'};   my $message=$contrib{$idx.':message'};
  $message=~s/\n/\<br \/\>/g;   $message=~s/\n/\<br \/\>/g;
  $message=&Apache::lontexconvert::msgtexconverted($message);   $message=&Apache::lontexconvert::msgtexconverted($message,undef,$numoldver);
                 my $subject=$contrib{$idx.':subject'};                  my $subject=$contrib{$idx.':subject'};
                 if (defined($subject)) {                  if (defined($subject)) {
                     $subject=~s/\n/\<br \/\>/g;                      $subject=~s/\n/\<br \/\>/g;
                     $subject=&Apache::lontexconvert::msgtexconverted($subject);                      $subject=&Apache::lontexconvert::msgtexconverted($subject,undef,$numoldver);
                 }                  }
  if ($contrib{$idx.':attachmenturl'}) {   if ($contrib{$idx.':attachmenturl'}) {
     my ($fname)      my ($fname)
Line 267  sub list_discussion { Line 277  sub list_discussion {
  if ($message) {   if ($message) {
     if ($hidden) {      if ($hidden) {
  $message='<font color="#888888">'.$message.'</font>';   $message='<font color="#888888">'.$message.'</font>';
                           if ($studenthidden) {
                               $message .='<br /><br />Deleted by poster (student).';
                           }
     }      }
     my $screenname=&Apache::loncommon::screenname(      my $screenname=&Apache::loncommon::screenname(
     $contrib{$idx.':sendername'},      $contrib{$idx.':sendername'},
Line 329  sub list_discussion { Line 342  sub list_discussion {
                         } else {                          } else {
                             @{$namesort{$lastname}{$firstname}} = ("$idx");                              @{$namesort{$lastname}{$firstname}} = ("$idx");
                         }                          }
  if ($seeid) {                          if ($ENV{"course.$cid.allow_discussion_post_editing"} =~ m/yes/i) {
     if ($hidden) {                              if (($ENV{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($ENV{'user.name'} eq $contrib{$idx.':sendername'})) {
  $sender.=' <a href="/adm/feedback?unhide='.                                  $sender.=' <a href="/adm/feedback?editdisc='.
     $ressymb.':::'.$idx;                                      $ressymb.':::'.$idx;
                                 if ($newpostsflag) {                                  if ($newpostsflag) {
                                     $sender .= '&previous='.$prevread;                                      $sender .= '&previous='.$prevread;
                                 }                                  }
                                 $sender .= '">'.&mt('Make Visible').'</a>';                                  $sender .= '" '.$target.'>'.&mt('Edit').'</a>';                                      unless ($seeid) {
                                       $sender.=" <a href=\"javascript:studentdelete('$ressymb','$idx','$newpostsflag','$prevread')";
                                       $sender .= '">'.&mt('Delete').'</a>';
                                   }
                               }
                           }
    if ($seeid) {
       if ($hidden) {
                                   unless ($studenthidden) {
       $sender.=' <a href="/adm/feedback?unhide='.
           $ressymb.':::'.$idx;
                                       if ($newpostsflag) {
                                           $sender .= '&previous='.$prevread;
                                       }
                                       $sender .= '">'.&mt('Make Visible').'</a>';
                                   }
     } else {      } else {
  $sender.=' <a href="/adm/feedback?hide='.   $sender.=' <a href="/adm/feedback?hide='.
     $ressymb.':::'.$idx;      $ressymb.':::'.$idx;
Line 346  sub list_discussion { Line 374  sub list_discussion {
                                 $sender .= '">'.&mt('Hide').'</a>';                                  $sender .= '">'.&mt('Hide').'</a>';
     }                           }                     
     $sender.=' <a href="/adm/feedback?deldisc='.      $sender.=' <a href="/adm/feedback?deldisc='.
  $ressymb.':::'.$idx;      $ressymb.':::'.$idx;
                             if ($newpostsflag) {                              if ($newpostsflag) {
                                 $sender .= '&previous='.$prevread;                                  $sender .= '&previous='.$prevread;
                             }                              }
Line 466  sub list_discussion { Line 494  sub list_discussion {
                             $sender.'</b> '.$vgrlink.' ('.                              $sender.'</b> '.$vgrlink.' ('.
                             localtime($posttime).')</td></tr>'.                              localtime($posttime).')</td></tr>'.
                             '</table><blockquote>'.$message.'</blockquote></p>';                              '</table><blockquote>'.$message.'</blockquote></p>';
                           if ($contrib{$idx.':history'}) {
                               my @postversions = ();
                               $discussionitems[$idx] .= '<br />'.&mt('This post has been edited by the author.').'<br/>'.&mt('Earlier version(s) were posted on: ');
                               if ($contrib{$idx.':history'} =~ m/:/) {
                                   @postversions = split/:/,$contrib{$idx.':history'};
                               } else {
                                   @postversions = ("$contrib{$idx.':history'}");
                               }
                               for (my $i=0; $i<@postversions; $i++) {
                                   my $version = $i+1;
                                   $discussionitems[$idx] .= '<b>'.$version.'.</b> - '.&Apache::lonlocal::locallocaltime($postversions[$i]).'  ';
                               }
                               $discussionitems[$idx] .= '<br />';
                           }
                     }                      }
                 }                  }
             }              }
Line 520  sub list_discussion { Line 562  sub list_discussion {
 # Print the discusssion  # Print the discusssion
  if ($outputtarget ne 'tex') {   if ($outputtarget ne 'tex') {
             my $colspan=$maxdepth+1;              my $colspan=$maxdepth+1;
               $discussion.= qq|
   <script>
      function studentdelete (symb,idx,newflag,previous) {
          var symbparm = symb+':::'+idx
          var prevparm = ""
          if (newflag == 1) {
              prevparm = "&previous="+previous
          }
          if (confirm("Are you sure you want to delete this post?\\nDeleted posts will no longer be visible to you and other students,\\nbut will continue to be visible to your instructor")) {
              document.location.href = "/adm/feedback?hide="+symbparm+prevparm
          }  
      }
   </script>
               |;
     $discussion.='<table bgcolor="#AAAAAA" cellpadding="2" cellspacing="2" border="0">';      $discussion.='<table bgcolor="#AAAAAA" cellpadding="2" cellspacing="2" border="0">';
     $discussion .='<tr><td bgcolor="#DDDDBB" colspan="'.$colspan.'">'.      $discussion .='<tr><td bgcolor="#DDDDBB" colspan="'.$colspan.'">'.
  '<table border="0" width="100%" bgcolor="#DDDDBB"><tr>';   '<table border="0" width="100%" bgcolor="#DDDDBB"><tr>';
Line 634  sub list_discussion { Line 690  sub list_discussion {
  $threadinsert='<br /><strong>Reply: '.$thisdepth.'</strong>';   $threadinsert='<br /><strong>Reply: '.$thisdepth.'</strong>';
     }      }
     $discussionitems[$alldiscussion{$_}]=~s/<\/td><td([^>]*)>/$threadinsert<\/td><td TeXwidth="65 mm" align="left">/;      $discussionitems[$alldiscussion{$_}]=~s/<\/td><td([^>]*)>/$threadinsert<\/td><td TeXwidth="65 mm" align="left">/;
     $discussionitems[$alldiscussion{$_}]=~s/<a([^>]+)>(Hide|Delete|Reply|Submissions)<\/a>//g;      $discussionitems[$alldiscussion{$_}]=~s/<a([^>]+)>(Edit|Hide|Delete|Reply|Submissions)<\/a>//g;
                     $discussionitems[$alldiscussion{$_}]=~s/(<b>|<\/b>|<\/a>|<a([^>]+)>)//g;                      $discussionitems[$alldiscussion{$_}]=~s/(<b>|<\/b>|<\/a>|<a([^>]+)>)//g;
           
                     #FIXME xmlparse can't be safely called from inside xmlparse                      #FIXME xmlparse can't be safely called from inside xmlparse
Line 722  ENDDISCUSS Line 778  ENDDISCUSS
 sub mail_screen {  sub mail_screen {
   my ($r,$feedurl,$options) = @_;    my ($r,$feedurl,$options) = @_;
   my $bodytag=&Apache::loncommon::bodytag('Resource Feedback and Discussion',    my $bodytag=&Apache::loncommon::bodytag('Resource Feedback and Discussion',
                                           '','onLoad="window.focus();"');                                            '','onLoad="window.focus();setposttype();"');
   my $title=&Apache::lonnet::gettitle($feedurl);    my $title=&Apache::lonnet::gettitle($feedurl);
   if (!$title) { $title = $feedurl; }    if (!$title) { $title = $feedurl; }
   my $quote='';    my $quote='';
   my $subject = '';    my $subject = '';
     my $oldmessage = '';
   my $prevtag = '';    my $prevtag = '';
   if ($ENV{'form.replydisc'}) {    my $parentmsg = '';
       my ($symb,$idx)=split(/\:\:\:/,$ENV{'form.replydisc'});    my $anonscript = (<<END);
     function setposttype() {
         return
     }
   END
     if (($ENV{'form.replydisc'}) || ($ENV{'form.editdisc'})) {
         my ($symb,$idx);
         if ($ENV{'form.replydisc'}) {
             ($symb,$idx)=split(/\:\:\:/,$ENV{'form.replydisc'});
         } else {
             ($symb,$idx)=split(/\:\:\:/,$ENV{'form.editdisc'});
         }
       my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},        my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
    $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
    $ENV{'course.'.$ENV{'request.course.id'}.'.num'});     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
       unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) {        unless (($contrib{'hidden'}=~/\.$idx\./) || ($contrib{'deleted'}=~/\.$idx\./)) {
   my $message=$contrib{$idx.':message'};            if ($ENV{'form.replydisc'}) {
   $message=~s/\n/\<br \/\>/g;                my $numoldver = 0;
   $quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($message).'</blockquote>';                if ($contrib{$idx.':history'}) {
           if ($idx > 0) {                    if ($contrib{$idx.':history'} =~ /:/) {
               $subject = 'Re: '.$contrib{$idx.':subject'};                        my @oldversions = split/:/,$contrib{$idx.':history'};
                         $numoldver = @oldversions;
                     } else {
                         $numoldver = 1;
                     }
                 }
         my $message=$contrib{$idx.':message'};
         $message=~s/\n/\<br \/\>/g;
         $quote='<blockquote>'.&Apache::lontexconvert::msgtexconverted($message,undef,$numoldver).'</blockquote>';
                 if ($idx > 0) {
                     if ($contrib{'subject'} =~ /::::\d+::::(.+)$/si) {
                         $subject = $1;
                     } else {
                         $subject = $contrib{$idx.':subject'};
                     }
                     $subject = 'Re: '.$subject;
                 }
             } else {
                 if ($contrib{$idx.':message'} =~ /::::\d+::::(.+)$/si) {
                     $oldmessage = $1;
                 } else {
                     $oldmessage = $contrib{$idx.':message'};
                 }
                 if ($contrib{$idx.':subject'} =~ /::::\d+::::(.+)$/si) {
                     $subject = $1;
                 } else {
                     $subject = $contrib{$idx.':subject'};
                 }
                 if (defined($contrib{$idx.':replyto'})) {
                     $parentmsg = $contrib{$idx.':replyto'};
                 }
                 my $anonflag = 0;
                 if ($contrib{$idx.':anonymous'}) {
                     $anonflag = 1;
                 }
                 $anonscript = (<<END);
     function setposttype () {
         var currtype = $anonflag
         if (currtype == 1) {
             document.mailform.elements.discuss.checked = false
             document.mailform.elements.anondiscuss.checked = true
         }
         if (currtype == 0) {
             document.mailform.elements.anondiscuss.checked = false
             document.mailform.elements.discuss.checked = true
         }
         return
     }
   END
           }            }
       }        }
       if ($ENV{'form.previous'}) {        if ($ENV{'form.previous'}) {
Line 753  sub mail_screen { Line 869  sub mail_screen {
       $onsubmit='document.mailform.onsubmit();';        $onsubmit='document.mailform.onsubmit();';
   }    }
   my $send=&mt('Send');    my $send=&mt('Send');
   $r->print(<<ENDDOCUMENT);    $r->print(<<END);
 <html>  <html>
 <head>  <head>
 <title>The LearningOnline Network with CAPA</title>  <title>The LearningOnline Network with CAPA</title>
Line 801  $htmlheader Line 917  $htmlheader
             alert('Please check a feedback type.');              alert('Please check a feedback type.');
  }   }
     }      }
       $anonscript
 //-->  //-->
 </script>  </script>
 </head>  </head>
Line 810  $bodytag Line 927  $bodytag
 enctype="multipart/form-data">  enctype="multipart/form-data">
 $prevtag  $prevtag
 <input type="hidden" name="postdata" value="$feedurl" />  <input type="hidden" name="postdata" value="$feedurl" />
   END
     if ($ENV{'form.replydisc'}) {
         $r->print(<<END);
 <input type="hidden" name="replydisc" value="$ENV{'form.replydisc'}" />  <input type="hidden" name="replydisc" value="$ENV{'form.replydisc'}" />
   END
     } elsif ($ENV{'form.editdisc'}) {
        $r->print(<<END);
   <input type="hidden" name="editdisc" value ="$ENV{'form.editdisc'}" />
   <input type="hidden" name="parentmsg" value ="$parentmsg" />
   END
     }
     $r->print(<<ENDDOCUMENT);
 Please check at least one of the following feedback types:  Please check at least one of the following feedback types:
 $options<hr />  $options<hr />
 $quote  $quote
Line 819  $quote Line 947  $quote
 $latexHelp  $latexHelp
 Title: <input type="text" name="subject" size="30" value="$subject" /></p>  Title: <input type="text" name="subject" size="30" value="$subject" /></p>
 <p>  <p>
 <textarea name="comment" id="comment" cols="60" rows="10" wrap="hard">  <textarea name="comment" id="comment" cols="60" rows="10" wrap="hard">$oldmessage
 </textarea></p>  </textarea></p>
 <p>  <p>
 Attachment (128 KB max size): <input type="file" name="attachment" />  Attachment (128 KB max size): <input type="file" name="attachment" />
Line 1118  sub print_showposters { Line 1246  sub print_showposters {
         }          }
     }      }
     my $crs='/'.$ENV{'request.course.id'};      my $crs='/'.$ENV{'request.course.id'};
       if ($ENV{'request.course.sec'}) {
           $crs.='_'.$ENV{'request.course.sec'};
       }
     $crs=~s/\_/\//g;      $crs=~s/\_/\//g;
     my $seeid=&Apache::lonnet::allowed('rin',$crs);      my $seeid=&Apache::lonnet::allowed('rin',$crs);
     my %contrib=&Apache::lonnet::restore($ressymb,$ENV{'request.course.id'},      my %contrib=&Apache::lonnet::restore($ressymb,$ENV{'request.course.id'},
Line 1322  sub screen_header { Line 1453  sub screen_header {
     my ($feedurl) = @_;      my ($feedurl) = @_;
     my $msgoptions='';      my $msgoptions='';
     my $discussoptions='';      my $discussoptions='';
     unless ($ENV{'form.replydisc'}) {      unless (($ENV{'form.replydisc'}) || ($ENV{'form.editdisc'})) {
  if (($feedurl=~/^\/res\//) && ($feedurl!~/^\/res\/adm/)) {   if (($feedurl=~/^\/res\//) && ($feedurl!~/^\/res\/adm/)) {
     $msgoptions=       $msgoptions= 
  '<p><input type="checkbox" name="author" /> '.   '<p><input type="checkbox" name="author" /> '.
Line 1543  sub adddiscuss { Line 1674  sub adddiscuss {
  $contrib{'anonymous'}='true';   $contrib{'anonymous'}='true';
     }      }
     if (($symb) && ($email)) {      if (($symb) && ($email)) {
        $status='Adding to class discussion'.($anon?' (anonymous)':'').': '.          if ($ENV{'form.editdisc'}) {
         &Apache::lonnet::store(\%contrib,$symb,$ENV{'request.course.id'},              my %newcontrib = ();
               $contrib{'ip'}=$ENV{'REMOTE_ADDR'};
               $contrib{'host'}=$Apache::lonnet::perlvar{'lonHostID'};
               $contrib{'timestamp'} = time;
               $contrib{'history'} = '';
               my $numoldver = 0;
               my ($oldsymb,$oldidx)=split(/\:\:\:/,$ENV{'form.editdisc'});
   # get timestamp for last post and history
               my %oldcontrib=&Apache::lonnet::restore($oldsymb,$ENV{'request.course.id'},
                        $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
                        $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
               if (defined($oldcontrib{$oldidx.':replyto'})) {
                   $contrib{'replyto'} = $oldcontrib{$oldidx.':replyto'};
               }
               if (defined($oldcontrib{$oldidx.':history'})) {
                   if ($oldcontrib{$oldidx.':history'} =~ /:/) {
                       my @oldversions = split/:/,$oldcontrib{$oldidx.':history'};
                       $numoldver = @oldversions;
                   } else {
                       $numoldver = 1;
                   }
                   $contrib{'history'} = $oldcontrib{$oldidx.':history'}.':';
               }
               if (defined($oldcontrib{$oldidx.':subject'})) {
                   $contrib{'subject'} = $oldcontrib{$oldidx.':subject'}.'::::'.$numoldver.'::::'.$contrib{'subject'};            
               } 
               if (defined($oldcontrib{$oldidx.':message'})) {
                   $contrib{'message'} = $oldcontrib{$oldidx.':message'}.'::::'.$numoldver.'::::'.$contrib{'message'};
               }
               $contrib{'history'} .= $oldcontrib{$oldidx.':timestamp'};
               foreach (keys %contrib) {
                   my $key = $oldidx.':'.&Apache::lonnet::escape($oldsymb).':'.$_;                                                                               
                   $newcontrib{$key} = $contrib{$_};
               }
               my $put_reply = &Apache::lonnet::putstore($ENV{'request.course.id'},
                     \%newcontrib,
                     $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
                     $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
               $status='Editing class discussion'.($anon?' (anonymous)':'');
           } else {
              $status='Adding to class discussion'.($anon?' (anonymous)':'').': '.
              &Apache::lonnet::store(\%contrib,$symb,$ENV{'request.course.id'},
                      $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},                       $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
      $ENV{'course.'.$ENV{'request.course.id'}.'.num'});       $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
           }
         my %storenewentry=($symb => time);          my %storenewentry=($symb => time);
         $status.='<br />'.&mt('Updating discussion time').': '.          $status.='<br />'.&mt('Updating discussion time').': '.
         &Apache::lonnet::put('discussiontimes',\%storenewentry,          &Apache::lonnet::put('discussiontimes',\%storenewentry,
Line 1606  sub handler { Line 1779  sub handler {
 # --------------------------- Get query string for limited number of parameters  # --------------------------- Get query string for limited number of parameters
   
   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
          ['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes','navmaps','navurl','sortfilter','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick']);           ['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes','navmaps','navurl','sortfilter','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick']);
   if ($ENV{'form.posterlist'}) {    if ($ENV{'form.posterlist'}) {
       &Apache::loncommon::content_type($r,'text/html');        &Apache::loncommon::content_type($r,'text/html');
       $r->send_http_header;        $r->send_http_header;
Line 1826  ENDREDIR Line 1999  ENDREDIR
   
                   
     my $currenthidden=$contrib{'hidden'};      my $currenthidden=$contrib{'hidden'};
       my $currentstudenthidden=$contrib{'studenthidden'};
   
       my $crs='/'.$ENV{'request.course.id'};
       if ($ENV{'request.course.sec'}) {
           $crs.='_'.$ENV{'request.course.sec'};
       }
       $crs=~s/\_/\//g;
       my $seeid=&Apache::lonnet::allowed('rin',$crs);
           
     if ($ENV{'form.hide'}) {      if ($ENV{'form.hide'}) {
  $currenthidden.='.'.$idx.'.';   $currenthidden.='.'.$idx.'.';
           unless ($seeid) {
               $currentstudenthidden.='.'.$idx.'.';
           }
     } else {      } else {
         $currenthidden=~s/\.$idx\.//g;          $currenthidden=~s/\.$idx\.//g;
     }      }
     my %newhash=('hidden' => $currenthidden);      my %newhash=('hidden' => $currenthidden);
       if ( ($ENV{'form.hide'}) && (!$seeid) ) {
           $newhash{'studenthidden'} = $currentstudenthidden;
       }
   
     &Apache::lonnet::store(\%newhash,$symb,$ENV{'request.course.id'},      &Apache::lonnet::store(\%newhash,$symb,$ENV{'request.course.id'},
                      $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},                       $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
Line 1899  ENDREDIR Line 2086  ENDREDIR
       $symb=(split(/\:\:\:/,$ENV{'form.replydisc'}))[0];        $symb=(split(/\:\:\:/,$ENV{'form.replydisc'}))[0];
       my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);        my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
       $feedurl=&Apache::lonnet::clutter($url);        $feedurl=&Apache::lonnet::clutter($url);
     } elsif ($ENV{'form.editdisc'}) {
         $symb=(split(/\:\:\:/,$ENV{'form.editdisc'}))[0];
         my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb);
         $feedurl=&Apache::lonnet::clutter($url);
   } else {    } else {
       $symb=&Apache::lonnet::symbread($feedurl);        $symb=&Apache::lonnet::symbread($feedurl);
   }    }

Removed from v.1.101  
changed lines
  Added in v.1.102


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