X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FOutput.pm;h=aed50ec2338e6b546ee43c337b6988e140612d29;hb=ac12ba03fbe79009983224ff0d0b73bc7da3fe47;hp=a01ab51c9420740b4864f9d710f21c7b4d798981;hpb=571d609ccd443c17d9a96fc83d85493b4c4aff0f;p=koha.git diff --git a/C4/Output.pm b/C4/Output.pm index a01ab51c94..aed50ec233 100644 --- a/C4/Output.pm +++ b/C4/Output.pm @@ -1,12 +1,9 @@ package C4::Output; -# $Id$ - #package to deal with marking up output #You will need to edit parts of this pm #set the value of path to be where your html lives - # Copyright 2000-2002 Katipo Communications # # This file is part of Koha. @@ -24,6 +21,7 @@ package C4::Output; # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA + # NOTE: I'm pretty sure this module is deprecated in favor of # templates. @@ -31,29 +29,16 @@ use strict; require Exporter; use C4::Context; -use C4::Database; -use HTML::Template; +use HTML::Template::Pro; use vars qw($VERSION @ISA @EXPORT); # set the version for version checking -$VERSION = 0.01; +$VERSION = 3.00; =head1 NAME -C4::Output - Functions for generating HTML for the Koha web interface - -=head1 SYNOPSIS - - use C4::Output; - - $str = &mklink("http://www.koha.org/", "Koha web page"); - print $str; - -=head1 DESCRIPTION - -The functions in this module generate HTML, and return the result as a -printable string. +C4::Output - Functions for managing templates =head1 FUNCTIONS @@ -61,1010 +46,294 @@ printable string. =cut -@ISA = qw(Exporter); -@EXPORT = qw(&startpage &endpage - &mktablehdr &mktableft &mktablerow &mklink - &startmenu &endmenu &mkheadr - ¢er &endcenter - &mkform &mkform2 &bold - &gotopage &mkformnotable &mkform3 - &getkeytableselectoptions - &pathtotemplate - &themelanguage &gettemplate - ); +@ISA = qw(Exporter); +push @EXPORT, qw( + &themelanguage &gettemplate setlanguagecookie pagination_bar +); + +#Output +push @EXPORT, qw( + &output_html_with_http_headers +); + #FIXME: this is a quick fix to stop rc1 installing broken #Still trying to figure out the correct fix. -my $path = C4::Context->config('intrahtdocs')."/intranet-tmpl/default/en/includes/"; +my $path = C4::Context->config('intrahtdocs') . "/prog/en/includes/"; #--------------------------------------------------------------------------------------------------------- # FIXME - POD sub gettemplate { - my ($tmplbase, $opac) = @_; - - my $htdocs; - if ($opac ne "intranet") { - $htdocs = C4::Context->config('opachtdocs'); - } else { - $htdocs = C4::Context->config('intrahtdocs'); - } - - my ($theme, $lang) = themelanguage($htdocs, $tmplbase, $opac); - - my $template = HTML::Template->new(filename => "$htdocs/$theme/$lang/$tmplbase", - die_on_bad_params => 0, - global_vars => 1, - path => ["$htdocs/$theme/$lang/includes"]); - - # XXX temporary patch for Bug 182 for themelang - $template->param(themelang => ($opac ne 'intranet'? '/opac-tmpl': '/intranet-tmpl') . "/$theme/$lang", - interface => ($opac ne 'intranet'? '/opac-tmpl': '/intranet-tmpl'), - theme => $theme, - lang => $lang); - return $template; + my ( $tmplbase, $interface, $query ) = @_; + if ( !$query ) { + warn "no query in gettemplate"; + } + my $htdocs; + if ( $interface ne "intranet" ) { + $htdocs = C4::Context->config('opachtdocs'); + } + else { + $htdocs = C4::Context->config('intrahtdocs'); + } + my $path = C4::Context->preference('intranet_includes') || 'includes'; + + # warn "PATH : $path"; + my ( $theme, $lang ) = themelanguage( $htdocs, $tmplbase, $interface, $query ); + my $opacstylesheet = C4::Context->preference('opacstylesheet'); + my $template = HTML::Template::Pro->new( + filename => "$htdocs/$theme/$lang/modules/$tmplbase", + die_on_bad_params => 1, + global_vars => 1, + case_sensitive => 1, + path => ["$htdocs/$theme/$lang/$path"] + ); + + $template->param( + themelang => ( $interface ne 'intranet' ? '/opac-tmpl' : '/intranet-tmpl' ) + . "/$theme/$lang", + interface => ( $interface ne 'intranet' ? '/opac-tmpl' : '/intranet-tmpl' ), + theme => $theme, + opacstylesheet => $opacstylesheet, + opaccolorstylesheet => C4::Context->preference('opaccolorstylesheet'), + opacsmallimage => C4::Context->preference('opacsmallimage'), + lang => $lang + ); + + return $template; } #--------------------------------------------------------------------------------------------------------- # FIXME - POD sub themelanguage { - my ($htdocs, $tmpl, $section) = @_; - - my $dbh = C4::Context->dbh; - my @languages; - my @themes; - if ( $section eq "intranet") - { - @languages = split " ", C4::Context->preference("opaclanguages"); - @themes = split " ", C4::Context->preference("template"); - } - else - { - @languages = split " ", C4::Context->preference("opaclanguages"); - @themes = split " ", C4::Context->preference("opacthemes"); - } - - my ($theme, $lang); -# searches through the themes and languages. First template it find it returns. -# Priority is for getting the theme right. - THEME: - foreach my $th (@themes) { - foreach my $la (@languages) { - if (-e "$htdocs/$th/$la/$tmpl") { - $theme = $th; - $lang = $la; - last THEME; - } - } - } - if ($theme and $lang) { - return ($theme, $lang); - } else { - return ('default', 'en'); - } -} - - -=item pathtotemplate - - %values = &pathtotemplate(template => $template, - theme => $themename, - language => $language, - type => $ptype, - path => $includedir); - -Finds a directory containing the desired template. The C