X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FOutput.pm;h=b9279e161beb224f980713edd9328690e37be490;hb=be61c6558d94b6b28a411ff0c1a48e03b2027a2c;hp=6d61bb9d9aa2d14aa6ca09ec445cc04030f72d9d;hpb=47fcb645279b258ba6413416e5d5c0f1d71d844e;p=koha.git diff --git a/C4/Output.pm b/C4/Output.pm index 6d61bb9d9a..b9279e161b 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,8 @@ package C4::Output; # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA +# $Id$ + # NOTE: I'm pretty sure this module is deprecated in favor of # templates. @@ -31,28 +30,16 @@ use strict; require Exporter; use C4::Context; -use C4::Database; +use HTML::Template::Pro; use vars qw($VERSION @ISA @EXPORT); # set the version for version checking -$VERSION = 0.01; +$VERSION = do { my @v = '$Revision$' =~ /\d+/g; shift(@v) . "." . join( "_", map { sprintf "%03d", $_ } @v ); }; =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 @@ -60,997 +47,329 @@ 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 - ); - -my $path = C4::Context->config('includes') || - "/usr/local/www/hdl/htdocs/includes"; +@ISA = qw(Exporter); +push @EXPORT, qw( + &themelanguage &gettemplate setlanguagecookie pagination_bar +); + +#Output +push @EXPORT, qw( + &guesscharset + &guesstype + &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') . "/default/en/includes/"; #--------------------------------------------------------------------------------------------------------- # FIXME - POD sub gettemplate { - my ($tmplbase, $opac) = @_; - + my ( $tmplbase, $opac, $query ) = @_; + if ( !$query ) { + warn "no query in gettemplate"; + } my $htdocs; - if ($opac ne "intranet") { - $htdocs = C4::Context->config('opachtdocs'); - } else { - $htdocs = C4::Context->config('intrahtdocs'); + if ( $opac 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, $opac, $query ); + my $opacstylesheet = C4::Context->preference('opacstylesheet'); + my $template = HTML::Template::Pro->new( + filename => "$htdocs/$theme/$lang/$tmplbase", + die_on_bad_params => 1, + global_vars => 1, + case_sensitive => 1, + path => ["$htdocs/$theme/$lang/$path"] + ); + + $template->param( + themelang => ( $opac ne 'intranet' ? '/opac-tmpl' : '/intranet-tmpl' ) + . "/$theme/$lang", + interface => ( $opac ne 'intranet' ? '/opac-tmpl' : '/intranet-tmpl' ), + theme => $theme, + opacstylesheet => $opacstylesheet, + opaccolorstylesheet => C4::Context->preference('opaccolorstylesheet'), + opacsmallimage => C4::Context->preference('opacsmallimage'), + lang => $lang + ); - my ($theme, $lang) = themelanguage($htdocs, $tmplbase); - - 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", - theme => $theme, - lang => $lang); return $template; } #--------------------------------------------------------------------------------------------------------- # FIXME - POD sub themelanguage { - my ($htdocs, $tmpl) = @_; - - my $dbh = C4::Context->dbh; - my @languages = split " ", C4::Context->preference("opaclanguages"); - # language preference - my @themes = split " ", C4::Context->preference("opacthemes"); - # theme preferences - - 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) { -# warn "File = $htdocs/$th/$la/$tmpl\n"; - 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