File:
[LON-CAPA] /
loncom /
publisher /
Attic /
lonconstruct.pm
Revision
1.7:
download - view:
text,
annotated -
select for diffs
Sat Aug 24 03:56:58 2002 UTC (22 years, 8 months ago) by
foxr
Branches:
MAIN
CVS tags:
HEAD
Bug 442: Two issues with special chars. solved here:
1. spaces in names - escape works fine on this issue.
2. apostrophe's in uploaded file names:
Apostrophe solution not so easy as spaces: The problem was in the
Frame src tag for the lower frame of construction space.. it's of the form:
<frame> src='$lowerframe' ...Thanks to matt for finding this.
The embedded ' closes the src from the point of view of the html. Amazingly the
extra characters don't cause browsers to complain. The problem: demonstrably,
escaping via lonnet::escape does nothing worth while. Using my handy dandy
html pocket guide, I determined that lonnet::escape is too simple minded
and may in fact be not quite right. did a:
1. made the quotations " rather than '
2. Substituted for " in $lowerframe by:
$lowerframe=~s/\"/"\;/g;
Turning " -> " as per the entity chart on pg 82 of HTML Pocket ref.
This works fine.
# The LearningOnline Network with CAPA
# Construction Space Page Wrapper for Construction
#
# $Id: lonconstruct.pm,v 1.7 2002/08/24 03:56:58 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
#
# (Page Handler
#
# (TeX Content Handler
#
# 05/29/00,05/30 Gerd Kortemeyer)
# 08/30,08/31,09/06,09/14,09/15,09/16,09/19,09/20,09/21,09/23,
# 10/02,10/10,10/14,10/16,10/18,10/19,10/31,11/6,11/14,11/16 Gerd Kortemeyer)
#
# 11/22,11/23,11/28,
# 03/30/01 Gerd Kortemeyer
package Apache::lonconstruct;
use strict;
use Apache::Constants qw(:common :http :methods);
use Apache::lonnet;
use Apache::Log ();
my $DEBUG = 0;
=pod
=item Debug($request, $message)
If debugging is enabled puts out a debuggin message determined by the
caller. The debug message goes to the Apache error log file. Debugging
is enabled by ssetting the module global DEBUG variable to nonzero (TRUE).
Parameters:
=over 4
=item $request - The curretn request operation.
=item $message - The message to put inthe log file.
=back
Returns:
nothing.
=cut
sub Debug {
# Marshall the parameters.
my $r = shift;
my $log = $r->log;
my $message = shift;
# Put out the indicated message butonly if DEBUG is false.
if ($DEBUG) {
$log->debug($message);
}
}
# ================================================================ Main Handler
sub handler {
my $r=shift;
# -------------------------------------------------------------- Build frameset
$r->content_type('text/html');
$r->send_http_header;
return OK if $r->header_only;
my $lowerframe=$r->path_info;
&Debug($r, "Initial URL for lower frame: ".$lowerframe);
$lowerframe=~s/^\//\/\~/;
&Debug($r, "Lower frame URL afer ~ subst: ".$lowerframe);
$lowerframe=~s/\"/"\;/g;
&Debug($r, "LOwer frame URL after quote subst: ".$lowerframe);
$r->print(<<ENDPAGE);
<html>
<head><title>LON-CAPA Construction Space</title></head>
<frameset rows="110,*">
<frame src='/adm/publisher.html'>
<frame src="$lowerframe" name="LONCAPAToBePublished">
</frameset>
</html>
ENDPAGE
return OK;
}
1;
__END__
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>