X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FOutput.pm;h=4f308c7604e46739a2131d26c049316963cc3eef;hb=a2f1bf834f4d758a991266b577b85ed232218e0d;hp=3af786b3274e2e92e45347b8532d04c1750b1d30;hpb=cefb0bb2c1a48145f2829a052154075110cce770;p=koha.git diff --git a/C4/Output.pm b/C4/Output.pm index 3af786b327..4f308c7604 100644 --- a/C4/Output.pm +++ b/C4/Output.pm @@ -1,170 +1,465 @@ -package C4::Output; #asummes C4/Output +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; -use warnings; -use C4::Database; require Exporter; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); +use C4::Context; +use C4::Database; +use HTML::Template; + +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 &mktablehdr &mktableft &mktablerow &mklink -&startmenu &endmenu &mkheadr ¢er &endcenter &mkform &mkform2 &bold -&gotopage &mkformnotable &mkform3 picktemplate); -%EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ], +@EXPORT = qw(&startpage &endpage + &mktablehdr &mktableft &mktablerow &mklink + &startmenu &endmenu &mkheadr + ¢er &endcenter + &mkform &mkform2 &bold + &gotopage &mkformnotable &mkform3 + &getkeytableselectoptions + &pathtotemplate + &themelanguage &gettemplate + ); + +#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 $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"]); -# your exported package globals go here, -# as well as any optionally exported functions + # 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) { + for (my $pass = 1; $pass <= 2; $pass += 1) { + $la =~ s/([-_])/ $1 eq '-'? '_': '-' /eg if $pass == 2; + if (-e "$htdocs/$th/$la/$tmpl") { + $theme = $th; + $lang = $la; + last THEME; + } + last unless $la =~ /[-_]/; + } + } + } + if ($theme and $lang) { + return ($theme, $lang); + } else { + return ('default', 'en'); + } +} -@EXPORT_OK = qw($Var1 %Hashit); +=item pathtotemplate -# non-exported package globals go here -use vars qw(@more $stuff); + %values = &pathtotemplate(template => $template, + theme => $themename, + language => $language, + type => $ptype, + path => $includedir); -# initalize package globals, first exported ones +Finds a directory containing the desired template. The C