version 1.88.2.2, 2018/04/29 00:31:25
|
version 1.88.2.6, 2019/07/26 20:38:43
|
Line 77 sub handler {
|
Line 77 sub handler {
|
my $domdesc = &Apache::lonnet::domain($codedom,'description'); |
my $domdesc = &Apache::lonnet::domain($codedom,'description'); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
|
my %domconfig = |
my $crscats = &Apache::lonnet::get_dom_cats($codedom); |
&Apache::lonnet::get_dom('configuration',['coursecategories'],$codedom); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($codedom); |
my $knownuser = &user_is_known(); |
my $knownuser = &user_is_known(); |
my $canviewall = &canview_all($knownuser,$codedom); |
my $canviewall = &canview_all($knownuser,$codedom); |
|
|
my ($cathash,$cattype); |
my ($cathash,$cattype); |
if (ref($domconfig{'coursecategories'}) eq 'HASH') { |
if (ref($crscats) eq 'HASH') { |
$cathash = $domconfig{'coursecategories'}{'cats'}; |
%{$cathash} = %{$crscats}; |
if ($knownuser || $canviewall) { |
|
$cattype = $domconfig{'coursecategories'}{'auth'}; |
|
} else { |
|
$cattype = $domconfig{'coursecategories'}{'unauth'}; |
|
} |
|
if ($cattype eq '') { |
|
$cattype = 'std'; |
|
} |
|
} else { |
} else { |
$cathash = {}; |
$cathash = {}; |
|
} |
|
if ($knownuser || $canviewall) { |
|
$cattype = $domdefaults{'catauth'}; |
|
} else { |
|
$cattype = $domdefaults{'catunauth'}; |
|
} |
|
if ($cattype eq '') { |
$cattype = 'std'; |
$cattype = 'std'; |
} |
} |
if ($cattype eq 'none') { |
if ($cattype eq 'none') { |
Line 106 sub handler {
|
Line 105 sub handler {
|
if ($knownuser || $canviewall) { |
if ($knownuser || $canviewall) { |
$r->print('<div>'.&mt('No catalog of LON-CAPA courses/communities is provided for: [_1]',$domdesc).'</div>'); |
$r->print('<div>'.&mt('No catalog of LON-CAPA courses/communities is provided for: [_1]',$domdesc).'</div>'); |
} else { |
} else { |
if ($domconfig{'coursecategories'}{'auth'} eq 'none') { |
if ($domdefaults{'catauth'} eq 'none') { |
$r->print('<div>'.&mt('No catalog of LON-CAPA courses/communities is provided for: [_1]',$domdesc).'</div>'); |
$r->print('<div>'.&mt('No catalog of LON-CAPA courses/communities is provided for: [_1]',$domdesc).'</div>'); |
} else { |
} else { |
$r->print('<div>'.&mt('The catalog of LON-CAPA courses/communities provided for: "[_1]" is only available to users who are logged in.',$domdesc).'</div>'); |
$r->print('<div>'.&mt('The catalog of LON-CAPA courses/communities provided for: "[_1]" is only available to users who are logged in.',$domdesc).'</div>'); |
Line 116 sub handler {
|
Line 115 sub handler {
|
return OK; |
return OK; |
} |
} |
|
|
my $cnum; |
my $cnum; |
if ($cattype eq 'codesrch') { |
if ($cattype eq 'codesrch') { |
my ($uniquecode,$codemsg,$brtext); |
my ($uniquecode,$codemsg,$brtext); |
if ($env{'form.uniquecode'}) { |
if ($env{'form.uniquecode'}) { |
Line 125 sub handler {
|
Line 124 sub handler {
|
} |
} |
my $js = '<script type="text/javascript">'."\n". |
my $js = '<script type="text/javascript">'."\n". |
'// <![CDATA['."\n". |
'// <![CDATA['."\n". |
&courselink_javascript()."\n". |
&courselink_javascript($r)."\n". |
'// ]]>'."\n". |
'// ]]>'."\n". |
'</script>'."\n"; |
'</script>'."\n"; |
$r->print(&Apache::loncommon::start_page('Search for a Course/Community',$js)); |
$r->print(&Apache::loncommon::start_page('Search for a Course/Community',$js)); |
Line 176 sub handler {
|
Line 175 sub handler {
|
$courseinfo{$codedom.'_'.$cnum}{$item}); |
$courseinfo{$codedom.'_'.$cnum}{$item}); |
if ($item eq 'title') { |
if ($item eq 'title') { |
if ($courseinfo{$codedom.'_'.$cnum}{'showsyllabus'}) { |
if ($courseinfo{$codedom.'_'.$cnum}{'showsyllabus'}) { |
|
my $usehttp = 0; |
|
if (($ENV{'SERVER_PORT'} == 443) && ($courseinfo{$codedom.'_'.$cnum}{'extsyllplain'})) { |
|
unless (&Apache::lonnet::uses_sts()) { |
|
$usehttp = 1; |
|
} |
|
} |
$r->print(' <font size="-2">'. |
$r->print(' <font size="-2">'. |
'<a href="javascript:ToSyllabus('."'$codedom','$cnum'".')">'. |
'<a href="javascript:ToSyllabus('."'$codedom','$cnum','$usehttp'".')">'. |
&mt('Syllabus').'</a></font>'); |
&mt('Syllabus').'</a></font>'); |
} |
} |
} |
} |
Line 207 sub handler {
|
Line 212 sub handler {
|
$r->print('<br />'.&Apache::loncommon::end_page()); |
$r->print('<br />'.&Apache::loncommon::end_page()); |
return OK; |
return OK; |
} else { |
} else { |
if ($env{'form.coursenum'}) { |
if ($env{'form.coursenum'} ne '') { |
$cnum = $env{'form.coursenum'}; |
if ($env{'form.coursenum'} =~ /^$LONCAPA::match_courseid$/) { |
|
$cnum = $env{'form.coursenum'}; |
|
} else { |
|
delete($env{'form.coursenum'}); |
|
} |
} |
} |
} |
} |
|
|
if ($env{'form.catalog_maxdepth'} ne '') { |
my (@cats,@trails,%allitems,%idx,@jsarray,%subcathash,$subcats,%maxd, |
$env{'form.catalog_maxdepth'} =~ s{\D}{}g; |
$toplevelstr,$maxdepthstr); |
} |
|
|
|
my (@cats,@trails,%allitems,%idx,@jsarray,%subcathash,$subcats); |
|
if ($env{'form.withsubcats'}) { |
if ($env{'form.withsubcats'}) { |
$subcats = \%subcathash; |
$subcats = \%subcathash; |
} |
} |
&Apache::loncommon::extract_categories($cathash,\@cats,\@trails,\%allitems, |
&Apache::loncommon::extract_categories($cathash,\@cats,\@trails,\%allitems, |
\%idx,\@jsarray,$subcats); |
\%idx,\@jsarray,$subcats,\%maxd); |
|
if (ref($cats[0]) eq 'ARRAY') { |
|
foreach my $item (@{$cats[0]}) { |
|
$toplevelstr .= "'".&js_escape($item)."::0',"; |
|
$maxdepthstr .= "'$maxd{$item}',"; |
|
} |
|
$toplevelstr =~ s/,$//; |
|
$maxdepthstr =~ s/,$//; |
|
} |
|
&validate_input($codedom,\@cats,\%maxd,$cathash); |
my ($numtitles,@codetitles); |
my ($numtitles,@codetitles); |
if (($env{'form.coursenum'} ne '') && ($knownuser)) { |
if (($env{'form.coursenum'} ne '') && ($knownuser)) { |
&course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems,\@codetitles); |
&course_details($r,$codedom,$formname,$domdesc,\@trails,\%allitems,\@codetitles); |
Line 231 sub handler {
|
Line 246 sub handler {
|
my $catjs = <<"ENDSCRIPT"; |
my $catjs = <<"ENDSCRIPT"; |
|
|
function setCatDepth(depth) { |
function setCatDepth(depth) { |
document.coursecats.catalog_maxdepth.value = depth; |
var depth = parseInt(depth); |
if (depth == '') { |
if (depth !== NaN) { |
|
if (depth > 0) { |
|
var possmaxd = 0; |
|
var toplevel = new Array($toplevelstr); |
|
var maxdepths = new Array($maxdepthstr); |
|
if (toplevel.length) { |
|
for (var i=0; i<toplevel.length; i++) { |
|
var item = unescape(toplevel[i]); |
|
if (item == document.coursecats.currcat_0.value) { |
|
possmaxd = maxdepths[i]; |
|
break; |
|
} |
|
} |
|
} |
|
if (depth > possmaxd) { |
|
depth = possmaxd; |
|
} |
|
} |
|
document.coursecats.catalog_maxdepth.value = depth; |
|
} else { |
document.coursecats.currcat_0.value = ''; |
document.coursecats.currcat_0.value = ''; |
|
document.coursecats.catalog_maxdepth.value = ''; |
} |
} |
document.coursecats.submit(); |
document.coursecats.submit(); |
return; |
return; |
Line 250 function setCourseId(caller) {
|
Line 285 function setCourseId(caller) {
|
} |
} |
|
|
ENDSCRIPT |
ENDSCRIPT |
$catjs .= &courselink_javascript(); |
$catjs .= &courselink_javascript($r); |
if (&user_is_dc($codedom) || $canviewall) { |
if (&user_is_dc($codedom) || $canviewall) { |
$catjs .= <<ENDTOGGJS |
$catjs .= <<ENDTOGGJS |
|
|
Line 340 ENDJS
|
Line 375 ENDJS
|
return OK; |
return OK; |
} |
} |
|
|
|
sub validate_input { |
|
my ($codedom,$cats,$maxd,$configref) = @_; |
|
my $currcat = ''; |
|
my $depth = 0; |
|
if ($env{'form.catalog_maxdepth'} ne '') { |
|
$env{'form.catalog_maxdepth'} =~ s{\D}{}g; |
|
} |
|
if ((ref($cats) eq 'ARRAY') && (ref($maxd) eq 'HASH')) { |
|
if (ref($cats->[0]) eq 'ARRAY') { |
|
if (@{$cats->[0]} == 1) { |
|
if ($cats->[0][0] eq 'instcode') { |
|
$currcat = 'instcode::0'; |
|
} elsif ($cats->[0][0] eq 'communities') { |
|
$currcat = 'communities::0'; |
|
} elsif ($cats->[0][0] eq 'placement') { |
|
$currcat = 'placement::0'; |
|
} else { |
|
my $name = $cats->[0][0]; |
|
$currcat = &escape($name).'::0'; |
|
} |
|
if (exists($maxd->{$cats->[0][0]})) { |
|
if ($env{'form.catalog_maxdepth'} <= $maxd->{$cats->[0][0]}) { |
|
$depth = $env{'form.catalog_maxdepth'}; |
|
} else { |
|
$depth = $maxd->{$cats->[0][0]}; |
|
} |
|
} |
|
} elsif ((@{$cats->[0]} > 1) && ($env{'form.currcat_0'} ne '')) { |
|
my ($escname) = ($env{'form.currcat_0'} =~ /^([^:]+)\:\:0$/); |
|
if ($escname =~ /^instcode|communities|placement$/) { |
|
$currcat = $env{'form.currcat_0'}; |
|
if (exists($maxd->{$escname})) { |
|
if ($env{'form.catalog_maxdepth'} <= $maxd->{$escname}) { |
|
$depth = $env{'form.catalog_maxdepth'}; |
|
} else { |
|
$depth = $maxd->{$escname}; |
|
} |
|
} else { |
|
$depth = 1; |
|
} |
|
} elsif ($escname ne '') { |
|
my $name = &unescape($escname); |
|
if (grep(/^\Q$name\E$/,@{$cats->[0]})) { |
|
$currcat = $env{'form.currcat_0'}; |
|
if (exists($maxd->{$name})) { |
|
if ($env{'form.catalog_maxdepth'} <= $maxd->{$name}) { |
|
$depth = $env{'form.catalog_maxdepth'}; |
|
} else { |
|
$depth = $maxd->{$name}; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
$env{'form.currcat_0'} = $currcat; |
|
$env{'form.catalog_maxdepth'} = $depth; |
|
|
|
my %possibles = ( |
|
backto => 1, |
|
catalogfilter => 1, |
|
catalog_maxdepth => 1, |
|
courseid => 1, |
|
coursenum => 1, |
|
currcat_0 => 1, |
|
numtitles => 1, |
|
Year => 1, |
|
Semester => 1, |
|
Department => 1, |
|
Number => 1, |
|
showdom => 1, |
|
sortby => 1, |
|
showcounts => 1, |
|
showdetails => 1, |
|
showhidden => 1, |
|
showselfenroll => 1, |
|
state => 1, |
|
uniquecode => 1, |
|
wasactive => 1, |
|
wasactiveon_day => 1, |
|
wasactiveon_month => 1, |
|
wasactiveon_year => 1, |
|
withsubcats => 1, |
|
); |
|
my %currcats; |
|
if ($env{'form.catalog_maxdepth'} > 0) { |
|
for (my $i=1; $i<=$env{'form.catalog_maxdepth'}; $i++) { |
|
$currcats{'currcat_'.$i} = 1; |
|
$possibles{'currcat_'.$i} = 1; |
|
} |
|
} |
|
|
|
foreach my $key (sort(keys(%env))) { |
|
if ($key =~ /^form\.(.+)$/) { |
|
unless ($possibles{$1}) { |
|
delete($env{$key}); |
|
} |
|
} |
|
} |
|
if (exists($env{'form.backto'})) { |
|
unless ($env{'form.backto'} eq 'coursecatalog') { |
|
delete($env{'form.backto'}); |
|
} |
|
} |
|
if (exists($env{'form.catalogfilter'})) { |
|
unless (($env{'form.catalogfilter'} eq &mt('Display courses')) || |
|
($env{'form.catalogfilter'} eq &mt('Display communities')) || |
|
($env{'form.catalogfilter'} eq &mt('Display placement tests'))) { |
|
delete($env{'form.catalogfilter'}); |
|
} |
|
} |
|
if (exists($env{'form.courseid'})) { |
|
if ($env{'form.courseid'} ne '') { |
|
unless ($env{'form.courseid'} =~ /^\Q$codedom\E_$LONCAPA::match_courseid$/) { |
|
$env{'form.courseid'} = ''; |
|
} |
|
} |
|
} |
|
if (exists($env{'form.coursenum'})) { |
|
unless ($env{'form.coursenum'} =~ /^$LONCAPA::match_courseid$/) { |
|
$env{'form.coursenum'} = ''; |
|
} |
|
} |
|
if (exists($env{'form.currcat_0'})) { |
|
unless ($env{'form.currcat_0'} =~ /^(instcode|communities|placement)\Q::0\E$/) { |
|
if ($env{'form.currcat_0'} =~ /^.+\Q::0\E$/) { |
|
if (ref($crscatsref) eq 'HASH') { |
|
unless (exists($crscatsref->{$env{'form.currcat_0'}})) { |
|
delete($env{'form.currcat_0'}); |
|
} |
|
} else { |
|
delete($env{'form.currcat_0'}); |
|
} |
|
} else { |
|
delete($env{'form.currcat_0'}); |
|
} |
|
} |
|
} |
|
if (exists($env{'form.numtitles'})) { |
|
unless ($env{'form.numtitles'} =~ /^\d+$/) { |
|
delete($env{'form.numtitles'}); |
|
} |
|
} |
|
my ($gotcodes,%possvals); |
|
foreach my $item ('Year','Semester','Department','Number') { |
|
if (exists($env{'form.'.$item})) { |
|
unless ($env{'form.'.$item} eq '0') { |
|
unless ($gotcodes) { |
|
$gotcodes = &get_instcode_allowable($codedom,\%possvals); |
|
} |
|
if (ref($possvals{$item}) eq 'HASH') { |
|
unless (exists($possvals{$item}{$env{'form.'.$item}})) { |
|
delete($env{'form.'.$item}); |
|
} |
|
} else { |
|
delete($env{'form.'.$item}); |
|
} |
|
} |
|
} |
|
} |
|
if (exists($env{'form.showdom'})) { |
|
unless ($env{'form.showdom'} =~ /^$LONCAPA::match_domain$/) { |
|
delete($env{'form.showdom'}); |
|
} |
|
} |
|
if (exists($env{'form.sortby'})) { |
|
unless ($env{'form.sortby'} =~ /^(title|code|owner|cats)$/) { |
|
delete($env{'form.sortby'}); |
|
} |
|
} |
|
if (exists($env{'form.showcounts'})) { |
|
if (ref($env{'form.showcounts'}) eq 'ARRAY') { |
|
foreach my $item (@{$env{'form.showcounts'}}) { |
|
unless ($item =~ /^(Active|Future|Previous)$/) { |
|
delete($env{'form.showcounts'}); |
|
last; |
|
} |
|
} |
|
} else { |
|
unless ($env{'form.showcounts'} =~ /^(Active|Future|Previous)$/) { |
|
delete($env{'form.showcounts'}); |
|
} |
|
} |
|
} |
|
foreach my $item ('showhidden','showdetails','showselfenroll','withsubcats') { |
|
if (exists($env{'form.'.$item})) { |
|
unless ($env{'form.'.$item} eq '1') { |
|
delete($env{'form.'.$item}); |
|
} |
|
} |
|
} |
|
if (exists($env{'form.state'})) { |
|
unless ($env{'form.state'} eq 'listing') { |
|
delete($env{'form.state'}); |
|
} |
|
} |
|
if (exists($env{'form.uniquecode'})) { |
|
unless ($env{'form.uniquecode'} =~ /^\w{6}$/) { |
|
delete($env{'form.uniquecode'}); |
|
} |
|
} |
|
if (exists($env{'form.wasactive'})) { |
|
unless (($env{'form.wasactive'} eq 'accessend') || ($env{'form.wasactive'} eq 'enrollend')) { |
|
delete($env{'form.wasactive'}); |
|
} |
|
} |
|
if (exists($env{'form.wasactiveon_day'})) { |
|
my $tmpday = $env{'form.wasactiveon_day'}; |
|
unless (($tmpday =~ /^\d+$/) && ($tmpday > 0) && ($tmpday < 32)) { |
|
delete($env{'form.wasactiveon_day'}); |
|
} |
|
} |
|
if (exists($env{'form.wasactiveon_month'})) { |
|
my $tmpmonth = $env{'form.wasactiveon_month'}; |
|
unless (($tmpmonth =~ /^\d+$/) && ($tmpmonth > 0) && ($tmpmonth < 13)) { |
|
delete($env{'form.wasactiveon_month'}); |
|
} |
|
} |
|
if (exists($env{'form.wasactiveon_year'})) { |
|
my $tmpyear = $env{'form.wasactiveon_year'}; |
|
unless (($tmpyear =~ /^\d+$/) && ($tmpyear >= 1970)) { |
|
delete($env{'form.wasactiveon_year'}); |
|
} |
|
} |
|
if (keys(%currcats)) { |
|
foreach my $key (keys(%currcats)) { |
|
if ($env{'form.'.$key} eq '') { |
|
delete($env{'form.'.$key}); |
|
} elsif (ref($crscatsref) eq 'HASH') { |
|
unless (exists($crscatsref->{$env{'form.'.$key}})) { |
|
delete($env{'form.'.$key}); |
|
} |
|
} else { |
|
delete($env{'form.'.$key}); |
|
} |
|
} |
|
} |
|
return; |
|
} |
|
|
|
sub get_instcode_allowable { |
|
my ($codedom,$possvalref) = @_; |
|
return 1 unless (ref($possvalref) eq 'HASH'); |
|
my $instcats = &Apache::lonnet::get_dom_instcats($codedom); |
|
if (ref($instcats) eq 'HASH') { |
|
if ((ref($instcats->{'codetitles'}) eq 'ARRAY') && (ref($instcats->{'codes'}) eq 'HASH')) { |
|
my %codes = %{$instcats->{'codes'}}; |
|
my @codetitles = @{$instcats->{'codetitles'}}; |
|
my @standardnames = &Apache::loncommon::get_standard_codeitems(); |
|
my %local_to_standard; |
|
for (my $i=0; $i<@codetitles; $i++) { |
|
$local_to_standard{$codetitles[$i]} = $standardnames[$i]; |
|
$possvalref->{$standardnames[$i]} = {}; |
|
} |
|
foreach my $cid (sort(keys(%codes))) { |
|
if (ref($codes{$cid}) eq 'HASH') { |
|
foreach my $item (keys(%{$codes{$cid}})) { |
|
$possvalref->{$local_to_standard{$item}}{$codes{$cid}{$item}} = 1; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
return 1; |
|
} |
|
|
sub course_details { |
sub course_details { |
my ($r,$codedom,$formname,$domdesc,$trails,$allitems,$codetitles) = @_; |
my ($r,$codedom,$formname,$domdesc,$trails,$allitems,$codetitles) = @_; |
my $output; |
my $output; |
my %add_entries = (topmargin => "0", |
my %add_entries = (topmargin => "0", |
marginheight => "0",); |
marginheight => "0",); |
my $js = '<script type="text/javascript">'."\n". |
my $js = '<script type="text/javascript">'."\n". |
&courselink_javascript().'</script>'."\n"; |
&courselink_javascript($r).'</script>'."\n"; |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('Course/Community Catalog',$js, |
&Apache::loncommon::start_page('Course/Community Catalog',$js, |
{'add_entries' => \%add_entries, }); |
{'add_entries' => \%add_entries, }); |
Line 409 END
|
Line 711 END
|
} |
} |
|
|
sub courselink_javascript { |
sub courselink_javascript { |
|
my ($r) = @_; |
|
my $hostname = $r->hostname(); |
return <<"END"; |
return <<"END"; |
|
|
function ToSyllabus(cdom,cnum) { |
function ToSyllabus(cdom,cnum,usehttp) { |
if (cdom == '' || cdom == null) { |
if (cdom == '' || cdom == null) { |
return; |
return; |
} |
} |
Line 419 function ToSyllabus(cdom,cnum) {
|
Line 723 function ToSyllabus(cdom,cnum) {
|
return; |
return; |
} |
} |
document.linklaunch.action = "/public/"+cdom+"/"+cnum+"/syllabus"; |
document.linklaunch.action = "/public/"+cdom+"/"+cnum+"/syllabus"; |
|
if (usehttp == 1) { |
|
var hostname = '$hostname'; |
|
if (hostname != '') { |
|
document.linklaunch.action = 'http://'+hostname+document.linklaunch.action; |
|
} |
|
document.linklaunch.action += '?usehttp=1'; |
|
} |
document.linklaunch.submit(); |
document.linklaunch.submit(); |
} |
} |
|
|
Line 436 END
|
Line 747 END
|
|
|
sub instcode_course_selector { |
sub instcode_course_selector { |
my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs,$codetitles,$cattype,$canviewall) = @_; |
my ($r,$codedom,$formname,$domdesc,$catlinks,$catjs,$codetitles,$cattype,$canviewall) = @_; |
my %coursecodes = (); |
|
my %codes = (); |
|
my %cat_titles = (); |
my %cat_titles = (); |
my %cat_order = (); |
my %cat_order = (); |
my %cat_items; |
my %cat_items = (); |
my $caller = 'global'; |
|
my $format_reply; |
|
my %add_entries = (topmargin => "0", |
my %add_entries = (topmargin => "0", |
marginheight => "0",); |
marginheight => "0",); |
my ($jscript,$totcodes,$numtitles,$lasttitle) = |
my ($jscript,$totcodes,$numtitles,$lasttitle) = |
Line 1248 sub build_courseinfo_hash {
|
Line 1555 sub build_courseinfo_hash {
|
$cleandesc=~s/'/\\'/g; |
$cleandesc=~s/'/\\'/g; |
$cleandesc =~ s/^\s+//; |
$cleandesc =~ s/^\s+//; |
my ($cdom,$cnum)=split(/\_/,$course); |
my ($cdom,$cnum)=split(/\_/,$course); |
my ($instcode,$singleowner,$ttype,$selfenroll_types, |
my ($instcode,$singleowner,$ttype,$selfenroll_types,$extsyllplain, |
$selfenroll_start,$selfenroll_end,@owners,%ownernames,$categories); |
$selfenroll_start,$selfenroll_end,@owners,%ownernames,$categories); |
if (ref($courses->{$course}) eq 'HASH') { |
if (ref($courses->{$course}) eq 'HASH') { |
$descr = $courses->{$course}{'description'}; |
$descr = $courses->{$course}{'description'}; |
Line 1259 sub build_courseinfo_hash {
|
Line 1566 sub build_courseinfo_hash {
|
$selfenroll_start = $courses->{$course}{'selfenroll_start_date'}; |
$selfenroll_start = $courses->{$course}{'selfenroll_start_date'}; |
$selfenroll_end = $courses->{$course}{'selfenroll_end_date'}; |
$selfenroll_end = $courses->{$course}{'selfenroll_end_date'}; |
$categories = $courses->{$course}{'categories'}; |
$categories = $courses->{$course}{'categories'}; |
|
$extsyllplain = $courses->{$course}{'extsyllplain'}; |
push(@owners,$singleowner); |
push(@owners,$singleowner); |
if ($courses->{$course}{'co-owners'} ne '') { |
if ($courses->{$course}{'co-owners'} ne '') { |
foreach my $item (split(/,/,$courses->{$course}{'co-owners'})) { |
foreach my $item (split(/,/,$courses->{$course}{'co-owners'})) { |
Line 1302 sub build_courseinfo_hash {
|
Line 1610 sub build_courseinfo_hash {
|
$courseinfo{$course}{'selfenroll_start'} = $selfenroll_start; |
$courseinfo{$course}{'selfenroll_start'} = $selfenroll_start; |
$courseinfo{$course}{'selfenroll_end'} = $selfenroll_end; |
$courseinfo{$course}{'selfenroll_end'} = $selfenroll_end; |
$courseinfo{$course}{'categories'} = $categories; |
$courseinfo{$course}{'categories'} = $categories; |
|
$courseinfo{$course}{'extsyllplain'} = $extsyllplain; |
|
|
my %coursehash = &Apache::lonnet::dump('environment',$cdom,$cnum); |
my %coursehash = &Apache::lonnet::dump('environment',$cdom,$cnum); |
my @classids; |
my @classids; |
Line 1486 sub count_students {
|
Line 1795 sub count_students {
|
sub courseinfo_row { |
sub courseinfo_row { |
my ($info,$knownuser,$details,$countref,$now,$course,$trails,$allitems,$numbers,$canviewall) = @_; |
my ($info,$knownuser,$details,$countref,$now,$course,$trails,$allitems,$numbers,$canviewall) = @_; |
my ($cdom,$cnum,$title,$ownerlast,$code,$owner,$seclist,$xlist_items, |
my ($cdom,$cnum,$title,$ownerlast,$code,$owner,$seclist,$xlist_items, |
$accessdates,$showsyllabus,$counts,$autoenrollment,$output,$categories); |
$accessdates,$showsyllabus,$counts,$autoenrollment,$output,$categories, |
|
$extsyllplain); |
if (ref($info) eq 'HASH') { |
if (ref($info) eq 'HASH') { |
$cdom = $info->{'cdom'}; |
$cdom = $info->{'cdom'}; |
$cnum = $info->{'cnum'}; |
$cnum = $info->{'cnum'}; |
Line 1500 sub courseinfo_row {
|
Line 1810 sub courseinfo_row {
|
$counts = $info->{'counts'}; |
$counts = $info->{'counts'}; |
$autoenrollment = $info->{'autoenrollment'}; |
$autoenrollment = $info->{'autoenrollment'}; |
$showsyllabus = $info->{'showsyllabus'}; |
$showsyllabus = $info->{'showsyllabus'}; |
|
$extsyllplain = $info->{'extsyllplain'}; |
$categories = $info->{'categories'}; |
$categories = $info->{'categories'}; |
} else { |
} else { |
$output = '<td colspan="8">'.&mt('No information available for [_1].', |
$output = '<td colspan="8">'.&mt('No information available for [_1].', |
Line 1527 sub courseinfo_row {
|
Line 1838 sub courseinfo_row {
|
'<td>'.$xlist_items.'</td>'. |
'<td>'.$xlist_items.'</td>'. |
'<td>'.$title.' <font size="-2">'; |
'<td>'.$title.' <font size="-2">'; |
if ($showsyllabus) { |
if ($showsyllabus) { |
$output .= '<a href="javascript:ToSyllabus('."'$cdom','$cnum'".')">'.&mt('Syllabus').'</a>'; |
my $usehttp = 0; |
|
if (($ENV{'SERVER_PORT'} == 443) && ($extsyllplain)) { |
|
unless (&Apache::lonnet::uses_sts()) { |
|
$usehttp = 1; |
|
} |
|
} |
|
$output .= '<a href="javascript:ToSyllabus('."'$cdom','$cnum','$usehttp'".')">'.&mt('Syllabus').'</a>'; |
} else { |
} else { |
$output .= ' '; |
$output .= ' '; |
} |
} |
Line 1623 sub get_valid_classes {
|
Line 1940 sub get_valid_classes {
|
\%possclasses); |
\%possclasses); |
if (keys(%okclasses)) { |
if (keys(%okclasses)) { |
foreach my $sec (@sections) { |
foreach my $sec (@sections) { |
my $class = $crscode.$sec; |
|
if ($okclasses{$crscode.$sec}) { |
if ($okclasses{$crscode.$sec}) { |
if (!grep(/^\Q$sec$\E/,@{$validations{'sections'}})) { |
if (!grep(/^\Q$sec$\E/,@{$validations{'sections'}})) { |
push(@{$validations{'sections'}},$sec); |
push(@{$validations{'sections'}},$sec); |