X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FOutput.pm;h=aed50ec2338e6b546ee43c337b6988e140612d29;hb=6a9b9b09b9b2cdf9e0a630068cd743f44f0254b5;hp=787c3a3c013515781e991f7cb794786a48972aba;hpb=fddab26c2e19f9f0ad0d55ff69491c2e80adcae2;p=koha.git diff --git a/C4/Output.pm b/C4/Output.pm index 787c3a3c01..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,28 +29,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 = 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 @@ -60,1005 +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 +); -my $path = C4::Context->config('includes') || - "/usr/local/www/hdl/htdocs/includes"; + +#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') . "/prog/en/includes/"; #--------------------------------------------------------------------------------------------------------- # FIXME - POD sub gettemplate { - my ($tmplbase, $opac) = @_; - + my ( $tmplbase, $interface, $query ) = @_; + if ( !$query ) { + warn "no query in gettemplate"; + } my $htdocs; - if ($opac) { - $htdocs = C4::Context->config('opachtdocs'); - } else { - $htdocs = C4::Context->config('intrahtdocs'); + 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 + ); - 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"]); - - $template->param(themelang => "/$theme/$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