X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FOutput.pm;h=edda350eafd6cf9ae5b2f4706cbc87c41ec3c8f7;hb=802f0478069dfcf44f8f9dba69b6fe3e2cc18ae0;hp=264b0f6485e4aec2273ca3de3e100a5461619c75;hpb=9fb81afb858bf8e1eef159ecc2ea3db13cf1c5f5;p=koha.git diff --git a/C4/Output.pm b/C4/Output.pm index 264b0f6485..edda350eaf 100644 --- a/C4/Output.pm +++ b/C4/Output.pm @@ -1,108 +1,331 @@ 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. +# +# 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 + +# NOTE: I'm pretty sure this module is deprecated in favor of +# templates. + use strict; require Exporter; +use C4::Context; use C4::Database; +use HTML::Template; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +use vars qw($VERSION @ISA @EXPORT); # set the version for version checking $VERSION = 0.01; +=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. + +=head1 FUNCTIONS + +=over 2 + +=cut + @ISA = qw(Exporter); -@EXPORT = qw(&startpage &endpage +@EXPORT = qw(&startpage &endpage &mktablehdr &mktableft &mktablerow &mklink - &startmenu &endmenu &mkheadr - ¢er &endcenter + &startmenu &endmenu &mkheadr + ¢er &endcenter &mkform &mkform2 &bold &gotopage &mkformnotable &mkform3 &getkeytableselectoptions - &picktemplate); -%EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ], + &pathtotemplate + &themelanguage &gettemplate + ); + +my $path = C4::Context->config('includes') || + "/usr/local/www/hdl/htdocs/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; +} + +#--------------------------------------------------------------------------------------------------------- +# 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'); + } +} -# your exported package globals go here, -# as well as any optionally exported functions -@EXPORT_OK = qw($Var1 %Hashit); +=item pathtotemplate + %values = &pathtotemplate(template => $template, + theme => $themename, + language => $language, + type => $ptype, + path => $includedir); -# non-exported package globals go here -use vars qw(@more $stuff); +Finds a directory containing the desired template. The C