X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FOutput.pm;h=4f308c7604e46739a2131d26c049316963cc3eef;hb=a2f1bf834f4d758a991266b577b85ed232218e0d;hp=bfbe8cc5c56024b5808cba9acd649523f0f0f905;hpb=dea0fd150ddfffc490a1bbc3e80d3c060d97a84f;p=koha.git diff --git a/C4/Output.pm b/C4/Output.pm index bfbe8cc5c5..4f308c7604 100644 --- a/C4/Output.pm +++ b/C4/Output.pm @@ -1,178 +1,511 @@ -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; 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); -%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 + ); -# your exported package globals go here, -# as well as any optionally exported functions +#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/"; -@EXPORT_OK = qw($Var1 %Hashit); +#--------------------------------------------------------------------------------------------------------- +# FIXME - POD +sub gettemplate { + my ($tmplbase, $opac) = @_; + my $htdocs; + if ($opac ne "intranet") { + $htdocs = C4::Context->config('opachtdocs'); + } else { + $htdocs = C4::Context->config('intrahtdocs'); + } -# non-exported package globals go here -use vars qw(@more $stuff); + my ($theme, $lang) = themelanguage($htdocs, $tmplbase, $opac); -# initalize package globals, first exported ones + my $template = HTML::Template->new(filename => "$htdocs/$theme/$lang/$tmplbase", + die_on_bad_params => 0, + global_vars => 1, + path => ["$htdocs/$theme/$lang/includes"]); -my $Var1 = ''; -my %Hashit = (); + # 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) = @_; -# then the others (which are still accessible as $Some::Module::stuff) -my $stuff = ''; -my @more = (); + 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"); + } -# all file-scoped lexicals must be created before -# the functions below that use them. + 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'); + } +} -# -# Change this value to reflect where you will store your includes -# -my %configfile; -open (KC, "/etc/koha.conf"); -while () { - chomp; - (next) if (/^\s*#/); - if (/(.*)\s*=\s*(.*)/) { - my $variable=$1; - my $value=$2; - # Clean up white space at beginning and end - $variable=~s/^\s*//g; - $variable=~s/\s*$//g; - $value=~s/^\s*//g; - $value=~s/\s*$//g; - $configfile{$variable}=$value; - } + +=item pathtotemplate + + %values = &pathtotemplate(template => $template, + theme => $themename, + language => $language, + type => $ptype, + path => $includedir); + +Finds a directory containing the desired template. The C