version 1.42, 2008/12/15 16:37:44
|
version 1.65, 2025/03/17 00:25:51
|
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,$skipheader)=@_; |
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 111 sub advertisefeeds {
|
Line 127 sub advertisefeeds {
|
} |
} |
} |
} |
if ($feeds) { |
if ($feeds) { |
return '<h4>'.&mt('Available RSS Feeds and Blogs').'</h4><ul>'.$feeds.'</ul>'; |
if ($skipheader) { |
} else { |
return '<ul>'.$feeds.'</ul>'; |
return ''; |
} else { |
|
return '<h2 class="LC_heading_3">'.&mt('Available RSS Feeds and Blogs').'</h2><ul>'.$feeds.'</ul>'; |
|
} |
|
} elsif (!$edit) { |
|
my $info = &mt('No available RSS Feeds and Blogs'); |
|
if ($skipheader) { |
|
return '<p>'.$info.'</p>'; |
|
} else { |
|
return '<h2 class="LC_heading_3">'.$info.'</h2>'; |
|
} |
} |
} |
|
return; |
} |
} |
|
|
sub rss_link { |
sub rss_link { |
Line 228 sub add_blog_entry_link {
|
Line 254 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 263 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 323 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 347 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 365 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 $head_extra = $rss_link.'<script type="text/javascript" ' |
|
.'src="/res/adm/includes/file_upload.js"></script>'; |
my $brcrumb = [{href=>$rss_link,text=>"Available RSS Feeds and Blogs"}]; |
my $brcrumb = [{href=>$rss_link,text=>"Available RSS Feeds and Blogs"}]; |
$r->print(&Apache::loncommon::start_page($title,$rss_link, |
$r->print(&Apache::loncommon::start_page($title,$head_extra, |
{'bread_crumbs' => $brcrumb, |
{'bread_crumbs' => $brcrumb, |
'domain' => $udom, |
'domain' => $udom, |
'force_register' => $env{'form.register'}}). |
'force_register' => $env{'form.register'}}). |
&changed_js()); |
&changed_js(). |
|
'<div class="LC_landmark" role="main">'); |
} else { # render RSS |
} else { # render RSS |
my $server = &Apache::lonnet::absolute_url(); |
my $server = &Apache::lonnet::absolute_url(); |
$r->print("<rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1'>\n<channel>". |
$r->print("<rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1'>\n<channel>". |
Line 388 sub handler {
|
Line 436 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('<h2 class="LC_heading_3">' . &mt('New RSS Feed or Blog'). '</h2>'); |
$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('<label>'.&mt('Name').": <input type='text' size='40' name='namenewblog' />"); |
|
$r->print('</label><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 487 sub handler {
|
Line 536 sub handler {
|
# Render private items? |
# Render private items? |
my $viewpubliconly=1; |
my $viewpubliconly=1; |
$r->print("\n". |
$r->print("\n". |
($html?'<hr /><h3>':'<title>'). |
($html?'<hr /><h3 class="LC_heading_3">':'<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'). |
'<label>'.&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.'" />':'').'</label><br /><ul>':'</title>')); |
if (($env{'user.name'} eq $uname) && ($env{'user.domain'} eq $udom)) { |
if (($env{'user.name'} eq $uname) && ($env{'user.domain'} eq $udom)) { |
$viewpubliconly=0; |
$viewpubliconly=0; |
} |
} |
Line 507 sub handler {
|
Line 556 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', |
'enc' => 'Podcasted enclosure'); |
'enc' => 'Podcasted enclosure', |
|
'status' => 'Status'); |
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); |
|
my $fileclass = 'LC_left'; |
|
my $notitle = 1; |
|
$uploadlink = &Apache::lonhtmlcommon::start_pick_box(). |
|
&Apache::inputtags::file_selector(0,0,'*','both','',$free_space,$fileclass,$notitle). |
|
&Apache::lonhtmlcommon::end_pick_box(); |
} else { |
} else { |
# Otherwise, display |
# Otherwise, display |
$uploadlink='<tt>'.$newsfeed{$id.'_enclosureurl'}.'</tt>'. |
$uploadlink='<tt>'.$newsfeed{$id.'_enclosureurl'}.'</tt>'. |
Line 529 sub handler {
|
Line 595 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> |
|
|
<label><input name='$id\_status' type="radio" value="public" $status{'public'} onClick="changed(this.form,'$id');" /> $lt{'public'}</label> |
<fieldset class="LC_landmark" style="display:inline;"><legend class="LC_visually_hidden">$lt{'status'}</legend> |
|
<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="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> |
|
|
<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> |
|
|
<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> |
|
</fieldset> |
|
<br /> |
<br /> |
<br /> |
|
<label> |
$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');" /></label><br /> |
$lt{'description'}:<br /> |
<label>$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></label><br /><br /> |
$lt{'link'}: |
<label>$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');" /></label><br /> |
$lt{'enc'} - |
$lt{'enc'} - |
$uploadlink |
$uploadlink |
<hr /></li> |
<hr /></li> |
Line 587 ENDEDIT
|
Line 657 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?'</div>'.&Apache::loncommon::end_page():'</channel></rss>'."\n")); |
} # a real user |
} # a real user |
return OK; |
return OK; |
} # end handler |
} # end handler |