X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FOutput.pm;h=4f308c7604e46739a2131d26c049316963cc3eef;hb=a2f1bf834f4d758a991266b577b85ed232218e0d;hp=37308289994020c22021b6b3d6de71b179b3692d;hpb=1e67687742e36bbb90746ecdd78a0c6a63aad890;p=koha.git diff --git a/C4/Output.pm b/C4/Output.pm index 3730828999..4f308c7604 100644 --- a/C4/Output.pm +++ b/C4/Output.pm @@ -1,5 +1,7 @@ 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 @@ -22,105 +24,313 @@ package C4::Output; # 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 + ); + +#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'); + } -# your exported package globals go here, -# as well as any optionally exported functions + my ($theme, $lang) = themelanguage($htdocs, $tmplbase, $opac); -@EXPORT_OK = qw($Var1 %Hashit); + 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; +} -# non-exported package globals go here -use vars qw(@more $stuff); +#--------------------------------------------------------------------------------------------------------- +# 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"); + } -# initalize package globals, first exported ones + 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'); + } +} -my $Var1 = ''; -my %Hashit = (); +=item pathtotemplate -# then the others (which are still accessible as $Some::Module::stuff) -my $stuff = ''; -my @more = (); + %values = &pathtotemplate(template => $template, + theme => $themename, + language => $language, + type => $ptype, + path => $includedir); -# all file-scoped lexicals must be created before -# the functions below that use them. +Finds a directory containing the desired template. The C