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); # 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 &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"]); # 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'); } } =item pathtotemplate %values = &pathtotemplate(template => $template, theme => $themename, language => $language, type => $ptype, path => $includedir); Finds a directory containing the desired template. The C