package C4::Output; #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 use strict; require Exporter; use C4::Context; use C4::Database; use C4::Search; #for getting the systempreferences use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); # 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 ); %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ], # your exported package globals go here, # as well as any optionally exported functions @EXPORT_OK = qw($Var1 %Hashit); # FIXME - These are never used # non-exported package globals go here use vars qw(@more $stuff); # FIXME - These are never used # initalize package globals, first exported ones # FIXME - These are never used my $Var1 = ''; my %Hashit = (); # then the others (which are still accessible as $Some::Module::stuff) # FIXME - These are never used my $stuff = ''; my @more = (); # all file-scoped lexicals must be created before # the functions below that use them. my $path = C4::Context->config('includes') || "/usr/local/www/hdl/htdocs/includes"; #--------------------------------------------------------------------------------------------------------- # FIXME - POD sub gettemplate { my ($tmplbase, $opac) = @_; my $htdocs; if ($opac) { $htdocs = C4::Context->config('opachtdocs'); } else { $htdocs = C4::Context->config('intrahtdocs'); } 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) = @_; # language preferences.... my $dbh = C4::Context->dbh; my $sth=$dbh->prepare("SELECT value FROM systempreferences WHERE variable='opaclanguages'"); $sth->execute; my ($lang) = $sth->fetchrow; $sth->finish; my @languages = split " ", $lang; # theme preferences.... # FIXME - There's already a $sth in this scope my $sth=$dbh->prepare("SELECT value FROM systempreferences WHERE variable='opacthemes'"); $sth->execute; my ($theme) = $sth->fetchrow; $sth->finish; my @themes = split " ", $theme; my ($theme, $lang); # FIXME - There are already $theme and $lang in this scope # 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