');
+ if (defined($$hash{$_})) { $r->print($$hash{$_}); }
+ $r->print('
');
+ }
+ $r->print('
');
+ }
+ $r->print('
'."\n");
+}
+
+# ======Prints a table to create associations between values and table columns
+# $r is an Apache Request ref
+# $records is an arrayref from &Apache::loncommon::upfile_record_sep
+# $d is an array of 2 element arrays (internal name, displayed name)
+sub csv_print_select_table {
+ my ($r,$records,$d) = @_;
+ my $i=0;my %sone;
+ %sone=&record_sep($$records[0]);
+ $r->print('Associate columns with student attributes.'."\n".
+ '
'."\n");
+ $i++;
+ }
+ $i--;
+ return $i;
+}
+
+# ===================Prints a table of sample values from the upload and
+# can make associate samples to internal names
+# $r is an Apache Request ref
+# $records is an arrayref from &Apache::loncommon::upfile_record_sep
+# $d is an array of 2 element arrays (internal name, displayed name)
+sub csv_samples_select_table {
+ my ($r,$records,$d) = @_;
+ my %sone; my %stwo; my %sthree;
+ my $i=0;
+
+ $r->print('
Field
Samples
');
+ %sone=&record_sep($$records[0]);
+ if (defined($$records[1])) {%stwo=&record_sep($$records[1]);}
+ if (defined($$records[2])) {%sthree=&record_sep($$records[2]);}
+
+ foreach (sort keys %sone) {
+ $r->print('
');
+ if (defined($sone{$_})) { $r->print($sone{$_}."\n"); }
+ if (defined($stwo{$_})) { $r->print($stwo{$_}."\n"); }
+ if (defined($sthree{$_})) { $r->print($sthree{$_}."\n"); }
+ $r->print('
');
+ $i++;
+ }
+ $i--;
+ return($i);
}
1;
__END__;
+
+
+=head1 NAME
+
+Apache::loncommon - pile of common routines
+
+=head1 SYNOPSIS
+
+Referenced by other mod_perl Apache modules.
+
+Invocation:
+ &Apache::loncommon::SUBROUTINENAME(ARGUMENTS);
+
+=head1 INTRODUCTION
+
+Common collection of used subroutines. This collection helps remove
+redundancy from other modules and increase efficiency of memory usage.
+
+Current things done:
+
+ Makes a table out of the previous homework attempts
+ Inputs result_from_symbread, user, domain, course_id
+ Reads in non-network-related .tab files
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 HANDLER SUBROUTINE
+
+There is no handler subroutine.
+
+=head1 OTHER SUBROUTINES
+
+=over 4
+
+=item *
+
+BEGIN() : initialize values from language.tab, copyright.tab, filetypes.tab,
+and filecategories.tab.
+
+=item *
+
+languageids() : returns list of all language ids
+
+=item *
+
+languagedescription() : returns description of a specified language id
+
+=item *
+
+copyrightids() : returns list of all copyrights
+
+=item *
+
+copyrightdescription() : returns description of a specified copyright id
+
+=item *
+
+filecategories() : returns list of all file categories
+
+=item *
+
+filecategorytypes() : returns list of file types belonging to a given file
+category
+
+=item *
+
+fileembstyle() : returns embedding style for a specified file type
+
+=item *
+
+filedescription() : returns description for a specified file type
+
+=item *
+
+filedescriptionex() : returns description for a specified file type with
+extra formatting
+
+=item *
+
+get_previous_attempt() : return string with previous attempt on problem
+
+=item *
+
+get_student_view() : show a snapshot of what student was looking at
+
+=item *
+
+get_student_answers() : show a snapshot of how student was answering problem
+
+=item *
+
+get_unprocessed_cgi() : get unparsed CGI parameters
+
+=item *
+
+cacheheader() : returns cache-controlling header code
+
+=item *
+
+nocache() : specifies header code to not have cache
+
+=item *
+
+add_to_env($name,$value) : adds $name to the %ENV hash with value
+$value, if $name already exists, the entry is converted to an array
+reference and $value is added to the array.
+
+=back
+
+=cut