version 1.321, 2012/01/04 23:31:36
|
version 1.322, 2012/01/05 21:18:49
|
Line 763 sub discussion_link {
|
Line 763 sub discussion_link {
|
my $link='/adm/feedback?inhibitmenu=yes&modal=yes&'.$cmd.'='.&escape($ressymb).':::'.$item; |
my $link='/adm/feedback?inhibitmenu=yes&modal=yes&'.$cmd.'='.&escape($ressymb).':::'.$item; |
if ($flag) { $link .= '&previous='.$prev; } |
if ($flag) { $link .= '&previous='.$prev; } |
if ($adds) { $link .= $adds; } |
if ($adds) { $link .= $adds; } |
return &Apache::loncommon::modal_link($link,$linktext,600,600); |
my $width=600; |
|
my $height=600; |
|
if (($cmd eq 'hide') || ($cmd eq 'unhide') || ($cmd eq 'like') || ($cmd eq 'unlike')) { |
|
$width=300; |
|
$height=200; |
|
} |
|
return &Apache::loncommon::modal_link($link,$linktext,$width,$height); |
} |
} |
|
|
|
|
Line 928 sub build_posting_display {
|
Line 934 sub build_posting_display {
|
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'}); |
|
my %likes=&Apache::lonnet::dump('disclikes', |
|
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
|
$env{'course.'.$env{'request.course.id'}.'.num'}, |
|
'^'.$symb.':'); |
|
my $thisuser=$env{'user.name'}.':'.$env{'user.domain'}; |
|
|
my $see_anonymous = |
my $see_anonymous = |
&Apache::lonnet::allowed('rin',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:'')); |
&Apache::lonnet::allowed('rin',$env{'request.course.id'}.($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:'')); |
Line 1090 sub build_posting_display {
|
Line 1101 sub build_posting_display {
|
@{$$namesort{$lastname}{$firstname}} = ("$idx"); |
@{$$namesort{$lastname}{$firstname}} = ("$idx"); |
} |
} |
if ($outputtarget ne 'tex') { |
if ($outputtarget ne 'tex') { |
|
unless ($likes{$symb.':'.$idx.':likers'}=~/\,\Q$thisuser\E\,/) { |
|
$sender.=' '.&discussion_link($symb,&mt('Like'),'like',$idx,$$newpostsflag,$prevread,&group_args($group)); |
|
} |
|
unless ($likes{$symb.':'.$idx.':unlikers'}=~/\,\Q$thisuser\E\,/) { |
|
$sender.=' '.&discussion_link($symb,&mt('Unlike'),'unlike',$idx,$$newpostsflag,$prevread,&group_args($group)); |
|
} |
if (&editing_allowed($escsymb.':::'.$idx,$group)) { |
if (&editing_allowed($escsymb.':::'.$idx,$group)) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
$sender.=' '. |
$sender.=' '. |
Line 3554 sub handler {
|
Line 3571 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'}, |
['modal','hide','unhide','deldisc','postdata','preview','replydisc','editdisc','cmd','symb','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortposts','applysort','rolefilter','statusfilter','sectionpick','groupick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export','sendmessageonly','group','ref']); |
['like','unlike','modal','hide','unhide','deldisc','postdata','preview','replydisc','editdisc','cmd','symb','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortposts','applysort','rolefilter','statusfilter','sectionpick','groupick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export','sendmessageonly','group','ref']); |
my $group = $env{'form.group'}; |
my $group = $env{'form.group'}; |
my %attachmax = ( |
my %attachmax = ( |
text => &mt('(128 KB max size)'), |
text => &mt('(128 KB max size)'), |
Line 3834 ENDREDIR
|
Line 3851 ENDREDIR
|
my $entry=$env{'form.like'}?$env{'form.like'}:$env{'form.unlike'}; |
my $entry=$env{'form.like'}?$env{'form.like'}:$env{'form.unlike'}; |
my ($symb,$idx)=split(/\:\:\:/,$entry); |
my ($symb,$idx)=split(/\:\:\:/,$entry); |
($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb); |
($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb); |
my %contrib=&Apache::lonnet::restore($symb,$env{'request.course.id'}, |
my $prefix=$symb.':'.$idx.':'; |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
my %contrib=&Apache::lonnet::dump('disclikes', |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
|
$env{'course.'.$env{'request.course.id'}.'.num'}, |
|
'^'.$prefix); |
# Get all who like or unlike this |
# Get all who like or unlike this |
my $currentlikers=$contrib{$idx.':likers'}; |
my $currentlikers=$contrib{$prefix.'likers'}; |
my $currentunlikers=$contrib{$idx.':unlikers'}; |
my $currentunlikers=$contrib{$prefix.'unlikers'}; |
my $likes=$contrib{$idx.':likes'}; |
my $likes=$contrib{$prefix.'likes'}; |
# Find out if they already voted |
# Find out if they already voted |
my $alreadyflag=0; |
my $alreadyflag=0; |
my $thisuser=$env{'user.name'}.':'.$env{'user.domain'}; |
my $thisuser=$env{'user.name'}.':'.$env{'user.domain'}; |
if ($env{'form.like'}) { |
if ($env{'form.like'}) { |
if ($currentlikers=~/\.\Q$thisuser\E\./) { |
if ($currentlikers=~/\,\Q$thisuser\E\,/) { |
$alreadyflag=1; |
$alreadyflag=1; |
} else { |
} else { |
$currentunlikers=~s/\.\Q$thisuser\E\.//; |
if ($currentunlikers=~/\,\Q$thisuser\E\,/) { |
$currentlikers.='.'.$thisuser.'.'; |
$currentunlikers=~s/\,\Q$thisuser\E\,//; |
|
} else { |
|
$currentlikers.=','.$thisuser.','; |
|
} |
$likes++; |
$likes++; |
} |
} |
} else { |
} else { |
if ($currentunlikers=~/\.\Q$thisuser\E\./) { |
if ($currentunlikers=~/\,\Q$thisuser\E\,/) { |
$alreadyflag=1; |
$alreadyflag=1; |
} else { |
} else { |
$currentlikers=~s/\.\Q$thisuser\E\.//; |
if ($currentlikers=~/\,\Q$thisuser\E\,/) { |
$currentunlikers.='.'.$thisuser.'.'; |
$currentlikers=~s/\,\Q$thisuser\E\,//; |
|
} else { |
|
$currentunlikers.=','.$thisuser.','; |
|
} |
$likes--; |
$likes--; |
} |
} |
} |
} |
my $result; |
my $result; |
unless ($alreadyflag) { |
unless ($alreadyflag) { |
my %newhash=($idx.':likes' => $likes, |
my %newhash=($prefix.'likes' => $likes, |
$idx.':likers' => $currentlikers, |
$prefix.'likers' => $currentlikers, |
$idx.':unlikers' => $currentunlikers); |
$prefix.'unlikers' => $currentunlikers); |
if (&Apache::lonnet::store(\%newhash,$symb,$env{'request.course.id'}, |
if (&Apache::lonnet::put('disclikes', |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
\%newhash, |
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
|
$env{'course.'.$env{'request.course.id'}.'.num'}) eq 'ok') { |
if ($env{'form.like'}) { |
if ($env{'form.like'}) { |
&storediscussionlikes(1,$contrib{$idx.':sendername'},$contrib{$idx.':senderdomain'}); |
&storediscussionlikes(1,$contrib{$idx.':sendername'},$contrib{$idx.':senderdomain'}); |
$result=&mt("Registered 'Like'"); |
$result=&mt("Registered 'Like'"); |