diff --git a/C4/Interface/CGI/Output.pm b/C4/Interface/CGI/Output.pm new file mode 100644 index 0000000000..379f3d94a8 --- /dev/null +++ b/C4/Interface/CGI/Output.pm @@ -0,0 +1,128 @@ +package C4::Interface::CGI::Output; + +# $Id$ + +#package to work around problems in HTTP headers +# Note: This is just a utility module; it should not be instantiated. + + +# Copyright 2003 Katipo Communications +# +# This file is part of Koha. +# +# Koha 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. +# +# Koha 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 +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +use strict; +require Exporter; + +use vars qw($VERSION @ISA @EXPORT); + +# set the version for version checking +$VERSION = 0.01; + +=head1 NAME + +C4::CGI::Output - Convenience functions for handling outputting HTML pages + +=head1 SYNOPSIS + + use C4::CGI::Output; + + print $query->header(-type => C4::CGI::Output::gettype($output)), $output; + +=head1 DESCRIPTION + +The functions in this module peek into a piece of HTML and return strings +related to the (guessed) charset. + +=head1 FUNCTIONS + +=over 2 + +=cut + +@ISA = qw(Exporter); +@EXPORT = qw( + &guesscharset + &guesstype + &output_html_with_http_headers + ); + +=item guesscharset + + &guesscharset($output) + +"Guesses" the charset from the some HTML that would be output. + +C<$output> is the HTML page to be output. If it contains a META tag +with a Content-Type, the tag will be scanned for a language code. +This code is returned if it is found; undef is returned otherwise. + +This function only does sloppy guessing; it will be confused by +unexpected things like SGML comments. What it basically does is to +grab something that looks like a META tag and scan it. + +=cut + +sub guesscharset ($) { + my($html) = @_; + my $charset = undef; + local($`, $&, $', $1, $2, $3); + # FIXME... These regular expressions will miss a lot of valid tags! + if ($html =~ //is) { + $charset = $3; + } elsif ($html =~ //is) { + $charset = $2; + } + return $charset; +} # guess + +sub guesstype ($) { + my($html) = @_; + my $charset = guesscharset($html); + return defined $charset? "text/html; charset=$charset": "text/html"; +} + +=item output_html_with_http_headers + + &output_html_with_http_headers($query, $cookie, $html) + +Outputs the HTML page $html with the appropriate HTTP headers, +with the authentication cookie $cookie and a Content-Type that +corresponds to the HTML page $html. + +=cut + +sub output_html_with_http_headers ($$$) { + my($query, $cookie, $html) = @_; + print $query->header( + -type => guesstype($html), + -cookie => $cookie, + ), $html; +} + +#--------------------------------- + +END { } # module clean-up code here (global destructor) + +1; +__END__ + +=back + +=head1 AUTHOR + +Koha Developement team + +=cut diff --git a/C4/Interface/CGI/Template.pm b/C4/Interface/CGI/Template.pm new file mode 100644 index 0000000000..74bea2f45f --- /dev/null +++ b/C4/Interface/CGI/Template.pm @@ -0,0 +1,90 @@ +package C4::Interface::CGI::Template; + +# $Id$ + +# convenience package for HTML templating +# Note: This is just a utility module; it should not be instantiated. + + +# Copyright 2003 Katipo Communications +# +# This file is part of Koha. +# +# Koha 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. +# +# Koha 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 +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +use strict; +require Exporter; + +use vars qw($VERSION @ISA @EXPORT); + +# set the version for version checking +$VERSION = 0.01; + +=head1 NAME + +C4::Members - Convenience functions for using HTML::Template + +=head1 SYNOPSIS + + use C4::Interface::HTML::Template; + +=head1 DESCRIPTION + +The functions in this module peek into a piece of HTML and return strings +related to the (guessed) charset. + +=head1 FUNCTIONS + +=over 2 + +=cut + +@ISA = qw(Exporter); +@EXPORT = qw( + &expand_sex_into_predicate + ); + +=item expand_sex_into_predicate + + $data{&expand_sex_into_predicate($data{sex})} = 1; + +Converts a single 'M' or 'F' into 'sex_M_p' or 'sex_F_p' +respectively. + +In some languages, 'M' and 'F' are not appropriate. However, +with HTML::Template, there is no way to localize 'M' or 'F' +unless these are converted into variables that TMPL_IF can +understand. This function provides this conversion. + +=cut + +sub expand_sex_into_predicate ($) { + my($sex) = @_; + return "sex_${sex}_p"; +} # expand_sex_into_predicate + +#--------------------------------- + +END { } # module clean-up code here (global destructor) + +1; +__END__ + +=back + +=head1 AUTHOR + +Koha Developement team + +=cut diff --git a/MARCdetail.pl b/MARCdetail.pl index a1573b2676..eac610c2ef 100755 --- a/MARCdetail.pl +++ b/MARCdetail.pl @@ -50,6 +50,7 @@ require Exporter; use C4::Auth; use C4::Context; use C4::Output; +use C4::Interface::CGI::Output; use CGI; use C4::Search; use MARC::Record; @@ -160,8 +161,5 @@ $template->param(item_loop => \@item_value_loop, item_header_loop => \@header_value_loop, biblionumber => $biblionumber, bibid => $bibid); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/acqui.simple/addbiblio.pl b/acqui.simple/addbiblio.pl index ee52c4f690..200198f0e8 100755 --- a/acqui.simple/addbiblio.pl +++ b/acqui.simple/addbiblio.pl @@ -23,7 +23,7 @@ use strict; use CGI; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Biblio; use C4::Context; use HTML::Template; @@ -306,7 +306,4 @@ if ($op eq "addbiblio") { oldbiblioitemnumtagsubfield => $oldbiblioitemnumtagsubfield, oldbiblioitemnumber => $oldbiblioitemnumber); } -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/acqui.simple/addbooks.pl b/acqui.simple/addbooks.pl index e566cdd66d..5b76d39654 100755 --- a/acqui.simple/addbooks.pl +++ b/acqui.simple/addbooks.pl @@ -39,7 +39,7 @@ use C4::Auth; use C4::Catalogue; use C4::Biblio; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use HTML::Template; my $query = new CGI; @@ -54,7 +54,4 @@ my ($template, $loggedinuser, $cookie) flagsrequired => {catalogue => 1}, debug => 1, }); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/acqui.simple/additem.pl b/acqui.simple/additem.pl index 86dd779cd7..1ed08bdd4e 100755 --- a/acqui.simple/additem.pl +++ b/acqui.simple/additem.pl @@ -23,7 +23,7 @@ use CGI; use strict; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Biblio; use C4::Context; use HTML::Template; @@ -251,7 +251,4 @@ $template->param(item_loop => \@item_value_loop, itemtagsubfield =>$itemtagsubfield, op => $nextop, opisadd => ($nextop eq "saveitem")?0:1); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/acqui.simple/isbnsearch.pl b/acqui.simple/isbnsearch.pl index 1ef6ed8b58..28467990b0 100755 --- a/acqui.simple/isbnsearch.pl +++ b/acqui.simple/isbnsearch.pl @@ -25,7 +25,7 @@ use C4::Catalogue; use C4::Biblio; use C4::Search; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use HTML::Template; my $input = new CGI; diff --git a/acqui.simple/marcimport.pl b/acqui.simple/marcimport.pl index b8bae898e2..34930ef0b8 100755 --- a/acqui.simple/marcimport.pl +++ b/acqui.simple/marcimport.pl @@ -36,7 +36,7 @@ use DBI; # Koha modules used use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Input; use C4::Biblio; use MARC::File::USMARC; @@ -150,10 +150,7 @@ if ($uploadmarc && length($uploadmarc)>0) { } -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; my $menu; my $file; @@ -809,6 +806,20 @@ sub FormatMarcText { #--------------- # log cleared, as marcimport is (almost) rewritten from scratch. # $Log$ +# Revision 1.30 2003/02/02 07:18:38 acli +# Moved C4/Charset.pm to C4/Interface/CGI/Output.pm +# +# Create output_html_with_http_headers function to contain the "print $query +# ->header(-type => guesstype...),..." call. This is in preparation for +# non-HTML output (e.g., text/xml) and charset conversion before output in +# the future. +# +# Created C4/Interface/CGI/Template.pm to hold convenience functions specific +# to the CGI interface using HTML::Template +# +# Modified moremembers.pl to make the "sex" field localizable for languages +# where M and F doesn't make sense +# # Revision 1.29 2003/01/28 15:28:31 tipaul # removing use MARC::Charset # Was a buggy test diff --git a/acqui/newbasket2.pl b/acqui/newbasket2.pl index 104e96aa89..741b5f42e9 100755 --- a/acqui/newbasket2.pl +++ b/acqui/newbasket2.pl @@ -28,7 +28,7 @@ use C4::Catalogue; use C4::Biblio; use HTML::Template; use C4::Auth; -use C4::Charset; +use C4::Interface::CGI::Output; my $env; my $input = new CGI; @@ -246,7 +246,4 @@ $template->param( bookselname => $booksellers[0]->{'name'}, loopsearch =>\@loopsearch, loopresult =>\@loopresult); -print $input->header( --type => guesstype($template->output), --cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin-home.pl b/admin-home.pl index 779883adb2..a71467ca6a 100755 --- a/admin-home.pl +++ b/admin-home.pl @@ -4,7 +4,7 @@ use strict; use CGI; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Database; use HTML::Template; @@ -19,7 +19,4 @@ my ($template, $loggedinuser, $cookie) }); $template->param(loggeninuser => $loggedinuser); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/admin/aqbookfund.pl b/admin/aqbookfund.pl index ed16af7db9..63335ab28d 100755 --- a/admin/aqbookfund.pl +++ b/admin/aqbookfund.pl @@ -42,7 +42,7 @@ use CGI; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Search; use HTML::Template; @@ -206,7 +206,4 @@ if ($op eq 'add_form') { $template->param(bookfund => \@loop_data); } #---- END $OP eq DEFAULT -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/aqbudget.pl b/admin/aqbudget.pl index 2989314e60..29b98b944c 100755 --- a/admin/aqbudget.pl +++ b/admin/aqbudget.pl @@ -42,7 +42,7 @@ use CGI; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Search; use HTML::Template; @@ -227,8 +227,5 @@ if ($op eq 'add_form') { $template->param(budget => \@loop_data); } #---- END $OP eq DEFAULT -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/authorised_values.pl b/admin/authorised_values.pl index b36c3f00ac..24fbc96da9 100755 --- a/admin/authorised_values.pl +++ b/admin/authorised_values.pl @@ -22,7 +22,7 @@ use CGI; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Search; use HTML::Template; use C4::Context; @@ -189,7 +189,4 @@ if ($op eq 'add_form') { } } #---- END $OP eq DEFAULT -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/branches.pl b/admin/branches.pl index 7094bf7b4a..c6d0ea0662 100755 --- a/admin/branches.pl +++ b/admin/branches.pl @@ -26,7 +26,7 @@ use CGI; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use HTML::Template; # Fixed variables @@ -377,7 +377,4 @@ sub checkdatabasefor { return $message; } -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/checkmarc.pl b/admin/checkmarc.pl index b6cc8dc372..359fc35af0 100755 --- a/admin/checkmarc.pl +++ b/admin/checkmarc.pl @@ -20,7 +20,7 @@ use strict; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Auth; use CGI; use C4::Search; @@ -121,7 +121,4 @@ if ($res && $res2 eq 10 && $field eq "branches") { } $template->param(total => $total); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/koha2marclinks.pl b/admin/koha2marclinks.pl index 070e44ba6b..72d153a5db 100755 --- a/admin/koha2marclinks.pl +++ b/admin/koha2marclinks.pl @@ -20,7 +20,7 @@ use strict; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Auth; use CGI; use C4::Search; @@ -135,7 +135,4 @@ if ($op eq 'add_form') { ); } #---- END $OP eq DEFAULT -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/marc_subfields_structure.pl b/admin/marc_subfields_structure.pl index 67facc2d40..c0284af6db 100755 --- a/admin/marc_subfields_structure.pl +++ b/admin/marc_subfields_structure.pl @@ -20,7 +20,7 @@ use strict; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Auth; use CGI; use C4::Search; @@ -347,7 +347,4 @@ if ($op eq 'add_form') { } } #---- END $OP eq DEFAULT -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/marctagstructure.pl b/admin/marctagstructure.pl index 52caa5f5a9..2bd72d475c 100755 --- a/admin/marctagstructure.pl +++ b/admin/marctagstructure.pl @@ -23,7 +23,7 @@ use CGI; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Search; use C4::Context; use HTML::Template; @@ -197,7 +197,4 @@ if ($op eq 'add_form') { } #---- END $OP eq DEFAULT $template->param(loggeninuser => $loggedinuser); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/systempreferences.pl b/admin/systempreferences.pl index 332657c244..6a2ce37ca1 100755 --- a/admin/systempreferences.pl +++ b/admin/systempreferences.pl @@ -42,7 +42,7 @@ use CGI; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Search; use HTML::Template; use C4::Context; @@ -185,7 +185,4 @@ if ($op eq 'add_form') { } } #---- END $OP eq DEFAULT -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/admin/thesaurus.pl b/admin/thesaurus.pl index 4ceb41fb0f..d838c48ffc 100755 --- a/admin/thesaurus.pl +++ b/admin/thesaurus.pl @@ -20,7 +20,7 @@ use strict; use CGI; use C4::Auth; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Context; use C4::Output; use C4::Search; @@ -256,7 +256,4 @@ if ($op eq 'add_form') { } } #---- END $OP eq DEFAULT -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/boraccount.pl b/boraccount.pl index 024e0f7895..b30ef5df2b 100755 --- a/boraccount.pl +++ b/boraccount.pl @@ -26,7 +26,7 @@ use strict; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use C4::Search; use HTML::Template; @@ -79,7 +79,4 @@ $template->param( total => $total, accounts => \@accountrows ); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/catalogue-home.pl b/catalogue-home.pl index 95ae2113a8..39e95d4e79 100755 --- a/catalogue-home.pl +++ b/catalogue-home.pl @@ -4,7 +4,7 @@ use strict; use CGI; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Database; use HTML::Template; @@ -27,7 +27,4 @@ $template->param(loggedinuser => $loggedinuser, classlist => $classlist, type => 'intranet',); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/circ/branchtransfers.pl b/circ/branchtransfers.pl index c895a94d63..9c87e5a3d9 100755 --- a/circ/branchtransfers.pl +++ b/circ/branchtransfers.pl @@ -282,7 +282,7 @@ $template->param( genbrname => $genbrname, branchoptionloop => \@branchoptionloop, errmsgloop => \@errmsgloop ); -print $query->header(-cookie=>$sessioncookie), $template->output; +output_html_with_http_headers $query, $sessioncookie, $template->output; sub name { diff --git a/detail.pl b/detail.pl index d39c1828a1..5c8a7bc0b5 100755 --- a/detail.pl +++ b/detail.pl @@ -93,5 +93,5 @@ $template->param(ITEM_RESULTS => $itemsarray); $template->param(WEB_RESULTS => $webarray); $template->param(SITE_RESULTS => $sitearray); $template->param(loggedinuser => $loggedinuser); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/jmemberentry.pl b/jmemberentry.pl index 2592574aad..a16f73faef 100755 --- a/jmemberentry.pl +++ b/jmemberentry.pl @@ -94,4 +94,4 @@ $template->param( startmenumember => join('', startmenu('member')), titleloop => \@titledata, cmemloop => \@cmemdata ); -print $input->header(-cookie => $cookie),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/koha-tmpl/intranet-tmpl/default/zh-TW/members/moremember.tmpl b/koha-tmpl/intranet-tmpl/default/zh-TW/members/moremember.tmpl index d5dd6fec52..4051628354 100644 --- a/koha-tmpl/intranet-tmpl/default/zh-TW/members/moremember.tmpl +++ b/koha-tmpl/intranet-tmpl/default/zh-TW/members/moremember.tmpl @@ -39,7 +39,8 @@ 族裔:,
出生日期:
- 姓別:

+ 姓別: +

Alternative Contact:
Phone:
Relationship:
diff --git a/mainpage.pl b/mainpage.pl index 5ca4a0fc9f..cf3b48601d 100755 --- a/mainpage.pl +++ b/mainpage.pl @@ -4,7 +4,7 @@ use strict; require Exporter; use C4::Database; use C4::Output; # contains gettemplate -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use C4::Auth; @@ -18,7 +18,4 @@ my ($template, $loggedinuser, $cookie) debug => 1, }); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/mancredit.pl b/mancredit.pl index 90b5356dc4..449bfb184e 100755 --- a/mancredit.pl +++ b/mancredit.pl @@ -24,7 +24,7 @@ use strict; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use HTML::Template; use C4::Search; diff --git a/maninvoice.pl b/maninvoice.pl index 5719c4d7c3..de1385e305 100755 --- a/maninvoice.pl +++ b/maninvoice.pl @@ -24,7 +24,7 @@ use strict; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use C4::Search; use C4::Accounts2; diff --git a/member.pl b/member.pl index 8d0951638e..6baa3a39fd 100755 --- a/member.pl +++ b/member.pl @@ -26,7 +26,7 @@ use strict; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use C4::Search; use HTML::Template; @@ -78,7 +78,4 @@ $template->param( member => $member, resultsloop => \@resultsdata ); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/memberentry.pl b/memberentry.pl index 98660f02f8..3e532aebfc 100755 --- a/memberentry.pl +++ b/memberentry.pl @@ -27,7 +27,7 @@ use strict; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use C4::Search; use C4::Koha; @@ -242,10 +242,7 @@ if ($delete){ cardnumber => $cardnumber, dateofbirth => $data->{'dateofbirth'}); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; } diff --git a/members-home.pl b/members-home.pl index e910c30e6b..b2730e0fed 100755 --- a/members-home.pl +++ b/members-home.pl @@ -4,7 +4,7 @@ use strict; use CGI; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Context; use HTML::Template; @@ -18,7 +18,4 @@ my ($template, $loggedinuser, $cookie) debug => 1, }); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/moremember.pl b/moremember.pl index a9c7b29574..4fbd333a1f 100755 --- a/moremember.pl +++ b/moremember.pl @@ -34,7 +34,8 @@ use strict; use C4::Auth; use C4::Context; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; +use C4::Interface::CGI::Template; use CGI; use C4::Search; use Date::Manip; @@ -69,6 +70,8 @@ $data->{'dateofbirth'} = slashifyDate($data->{'dateofbirth'}); $data->{'ethnicity'} = fixEthnicity($data->{'ethnicity'}); +$data->{&expand_sex_into_predicate($data->{'sex'})} = 1; + if ($data->{'categorycode'} eq 'C'){ my $data2=borrdata('',$data->{'guarantor'}); $data->{'streetaddress'}=$data2->{'streetaddress'}; @@ -203,7 +206,4 @@ $template->param( issueloop => \@issuedata, reserveloop => \@reservedata); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/newmember.pl b/newmember.pl index b83a59046c..070293c72e 100755 --- a/newmember.pl +++ b/newmember.pl @@ -38,7 +38,7 @@ use strict; use C4::Auth; use C4::Input; -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use Date::Manip; use HTML::Template; @@ -180,9 +180,6 @@ if ($ok == 0) { ; } -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/opac/opac-account.pl b/opac/opac-account.pl index 4d0e27cdca..68f23240c7 100755 --- a/opac/opac-account.pl +++ b/opac/opac-account.pl @@ -55,5 +55,5 @@ $template->param( ACCOUNT_LINES => $accts ); $template->param( total => $total ); #$template->param(loggeninuser => $loggedinuser); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl index 3a01739d31..dbdfff4356 100755 --- a/opac/opac-detail.pl +++ b/opac/opac-detail.pl @@ -4,7 +4,7 @@ require Exporter; use CGI; use C4::Search; use C4::Auth; -use C4::Charset; +use C4::Interface::CGI::Output; use HTML::Template; my $query=new CGI; @@ -54,8 +54,5 @@ $template->param(ITEM_RESULTS => $itemsarray); $template->param(WEB_RESULTS => $webarray); $template->param(SITE_RESULTS => $sitearray); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-main.pl b/opac/opac-main.pl index b3a9854742..9e253058b0 100755 --- a/opac/opac-main.pl +++ b/opac/opac-main.pl @@ -5,7 +5,7 @@ use CGI; use HTML::Template; use C4::Auth; # get_template_and_user -use C4::Charset; +use C4::Interface::CGI::Output; my $query = new CGI; @@ -17,7 +17,4 @@ my ($template, $borrowernumber, $cookie) flagsrequired => {borrow => 1}, }); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-membership.pl b/opac/opac-membership.pl index 7096e65996..20f04069bc 100644 --- a/opac/opac-membership.pl +++ b/opac/opac-membership.pl @@ -15,4 +15,4 @@ my ($template, $borrowernumber, $cookie) flagsrequired => {borrow => 1}, }); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-readingrecord.pl b/opac/opac-readingrecord.pl index 1db46633e7..b0eb1783cb 100755 --- a/opac/opac-readingrecord.pl +++ b/opac/opac-readingrecord.pl @@ -51,5 +51,5 @@ $template->param(count => $count); $template->param(READING_RECORD => $issues); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-reserve.pl b/opac/opac-reserve.pl index 3e490c75b3..5233e9b1ff 100755 --- a/opac/opac-reserve.pl +++ b/opac/opac-reserve.pl @@ -225,4 +225,4 @@ if ($query->param('item_types_selected')) { $template->param(BIBLIOITEMS => \@data); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-search.pl b/opac/opac-search.pl index b03de616b1..93bfa393cc 100755 --- a/opac/opac-search.pl +++ b/opac/opac-search.pl @@ -3,7 +3,7 @@ use strict; require Exporter; use C4::Auth; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Context; use CGI; use C4::Database; @@ -32,7 +32,4 @@ my ($template, $borrowernumber, $cookie) $template->param(classlist => $classlist); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-searchresults.pl b/opac/opac-searchresults.pl index dafdcb0519..9e9ef48ad0 100755 --- a/opac/opac-searchresults.pl +++ b/opac/opac-searchresults.pl @@ -4,7 +4,7 @@ require Exporter; use CGI; use C4::Search; use C4::Auth; -use C4::Charset; +use C4::Interface::CGI::Output; use HTML::Template; my $query=new CGI; @@ -127,8 +127,5 @@ if ($count>10) { $template->param(numbers => $numbers); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-sidebar.pl b/opac/opac-sidebar.pl index 059896d4b0..0c37f6881e 100755 --- a/opac/opac-sidebar.pl +++ b/opac/opac-sidebar.pl @@ -28,4 +28,4 @@ $template->param(INPUTS => \@inputs); my $self_url = $query->url(-absolute => 1); $template->param(url => $self_url); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-user.pl b/opac/opac-user.pl index cdcdde8b5e..5aac6c19cb 100755 --- a/opac/opac-user.pl +++ b/opac/opac-user.pl @@ -131,5 +131,5 @@ foreach my $res (@$reserves) { # $template->param(WAITING => \@waiting); $template->param(waiting_count => $wcount); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-userdetails.pl b/opac/opac-userdetails.pl index d914528729..a476bf0321 100755 --- a/opac/opac-userdetails.pl +++ b/opac/opac-userdetails.pl @@ -30,5 +30,5 @@ $borr->{'ethnicity'} = fixEthnicity($borr->{'ethnicity'}); $template->param($borr); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/opac/opac-userupdate.pl b/opac/opac-userupdate.pl index c609da103f..a85e31209a 100755 --- a/opac/opac-userupdate.pl +++ b/opac/opac-userupdate.pl @@ -68,4 +68,4 @@ $bordat[0] = $borr; $template->param(BORROWER_INFO => \@bordat); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/readingrec.pl b/readingrec.pl index c4d258ca4d..120cfd561b 100755 --- a/readingrec.pl +++ b/readingrec.pl @@ -25,7 +25,7 @@ use strict; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use CGI; use C4::Search; use HTML::Template; @@ -73,10 +73,7 @@ $template->param(title => $data->{'title'}, bornum => $bornum, limit => $limit, loop_reading => \@loop_reading); -print $input->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/reports-home.pl b/reports-home.pl index 4a86630b3e..488b7c477e 100755 --- a/reports-home.pl +++ b/reports-home.pl @@ -4,7 +4,7 @@ use strict; use CGI; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Context; use HTML::Template; @@ -17,7 +17,4 @@ my ($template, $loggedinuser, $cookie) flagsrequired => {permissions => 1}, debug => 1, }); -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -),$template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/search.marc/search.pl b/search.marc/search.pl index 7bc0ced68f..d77502abf2 100755 --- a/search.marc/search.pl +++ b/search.marc/search.pl @@ -26,7 +26,7 @@ use C4::Context; use C4::Search; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; use C4::Biblio; use C4::SearchMarc; @@ -108,7 +108,4 @@ if ($op eq "do_search") { $template->param("marclist" => $marclist); } # Print the page -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/search.pl b/search.pl index 04a5b18c41..b24e95884c 100755 --- a/search.pl +++ b/search.pl @@ -26,7 +26,7 @@ use C4::Context; use C4::Search; use C4::Auth; use C4::Output; -use C4::Charset; +use C4::Interface::CGI::Output; my $query=new CGI; my $type=$query->param('type'); @@ -200,8 +200,5 @@ if (C4::Context->preference('acquisitions') eq 'simple') { } # Print the page -print $query->header( - -type => guesstype($template->output), - -cookie => $cookie -), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; diff --git a/shelves.pl b/shelves.pl index 4dc6e7167b..713da9a24b 100755 --- a/shelves.pl +++ b/shelves.pl @@ -83,7 +83,7 @@ SWITCH: { $template->param(shelvesloop => \@shelvesloop); } -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output; sub shelves { @@ -151,6 +151,20 @@ sub viewshelf { # # $Log$ +# Revision 1.10 2003/02/02 07:18:37 acli +# Moved C4/Charset.pm to C4/Interface/CGI/Output.pm +# +# Create output_html_with_http_headers function to contain the "print $query +# ->header(-type => guesstype...),..." call. This is in preparation for +# non-HTML output (e.g., text/xml) and charset conversion before output in +# the future. +# +# Created C4/Interface/CGI/Template.pm to hold convenience functions specific +# to the CGI interface using HTML::Template +# +# Modified moremembers.pl to make the "sex" field localizable for languages +# where M and F doesn't make sense +# # Revision 1.9 2002/12/19 18:55:40 hdl # Templating reservereport et shelves. # diff --git a/t/Charset.t b/t/Charset.t index 167235a97f..d4105e5d70 100644 --- a/t/Charset.t +++ b/t/Charset.t @@ -1,5 +1,5 @@ use strict; -use C4::Charset; +use C4::Interface::CGI::Output; use vars qw( @tests ); use vars qw( $loaded ); @@ -8,84 +8,84 @@ BEGIN { @tests = ( [ 'Normal HTML without meta tag', - sub { C4::Charset::guesscharset($_[0]) }, + sub { guesscharset($_[0]) }, undef, <control case EOF ], [ 'Result of guesscharset with normal HTML with irrelevant meta tag', - sub { C4::Charset::guesscharset($_[0]) }, + sub { guesscharset($_[0]) }, undef, < EOF ], [ - 'Result of guesscharset with normal HTML with irrelevant meta tag', - sub { C4::Charset::guesstype($_[0]) }, - undef, + 'Result of guesstype with normal HTML with irrelevant meta tag', + sub { guesstype($_[0]) }, + 'text/html', < EOF ], [ 'Result of guesscharset with normal HTML with relevant meta tag', - sub { C4::Charset::guesscharset($_[0]) }, + sub { guesscharset($_[0]) }, 'big5', < EOF ], [ 'Result of guesstype with normal HTML with relevant meta tag', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=big5', < EOF ], [ 'Variant 1 using single quotes', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=iso-2022-jp', < EOF ], [ 'Variant 2 using single quotes', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=utf-8', < EOF ], [ 'Unquoted Content-Type', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=big5', < EOF ], [ 'XML syntax', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=iso-8859-2', < EOF ], [ 'Expected attributes in reverse order', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=big5', < EOF ], [ 'Extra whitespace at end', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=big5', < EOF ], [ 'Multiple lines', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=big5', < EOF ], [ + # FIXME - THIS IS NOT A WELL-WRITTEN TEST CASE!!! 'With surrounding HTML', - sub { C4::Charset::guesstype($_[0]) }, + sub { guesstype($_[0]) }, 'text/html; charset=us-ascii', < @@ -131,13 +132,13 @@ for (my $i = 1; $i <= scalar @tests; $i += 1) { (!defined $output && !defined $expected) || (defined $output && defined $expected && $output eq $expected) ) { - print "ok $i ($title)\n"; + print "ok $i - $title\n"; } else { - print "not ok $i ($title: got ", + print "not ok $i - $title: got ", (defined $output? "\"$output\"": 'undef'), ', expected ', (defined $expected? "\"$expected\"": 'undef'), - ")\n"; + "\n"; } } diff --git a/thesaurus_popup.pl b/thesaurus_popup.pl index ba56402fa1..2873570e43 100755 --- a/thesaurus_popup.pl +++ b/thesaurus_popup.pl @@ -93,6 +93,6 @@ $template->param(select_list => $select_list, category => $category, index => $index ); -print $input->header(-cookie => $cookie),$template->output; +output_html_with_http_headers $input, $cookie, $template->output; diff --git a/userpage.pl b/userpage.pl index 044d0f2e72..181be9c582 100755 --- a/userpage.pl +++ b/userpage.pl @@ -38,4 +38,4 @@ my ($template, $loggedinuser, $cookie) warn "userloggedin : $loggedinuser (".$query->param('userid')." et ".$query->param('password'); -print $query->header(-cookie => $cookie), $template->output; +output_html_with_http_headers $query, $cookie, $template->output;