From 9ead220cfa6c48e0242efc920429e7b393f055f2 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Mon, 3 Jun 2013 16:37:52 +0200 Subject: [PATCH] Funktion zum Auflisten vorhandener Druckvorlagen nach SL::Template verschoben --- SL/Template.pm | 28 ++++++++++++++++++++++++++++ bin/mozilla/admin.pl | 20 +++----------------- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/SL/Template.pm b/SL/Template.pm index ab499e99d..df6dbec7c 100644 --- a/SL/Template.pm +++ b/SL/Template.pm @@ -10,6 +10,8 @@ package SL::Template; use strict; +use IO::Dir; + use SL::Template::Simple; use SL::Template::Excel; use SL::Template::HTML; @@ -26,4 +28,30 @@ sub create { $package->new($params{file_name}, $params{form}, $params{myconfig} || \%::myconfig, $params{userspath} || $::lx_office_conf{paths}->{userspath}); } +sub available_templates { + my ($class) = @_; + + # is there a templates basedir + if (!-d $::lx_office_conf{paths}->{templates}) { + $::form->error(sprintf($::locale->text("The directory %s does not exist."), $::lx_office_conf{paths}->{templates})); + } + + tie my %dir_h, 'IO::Dir', $::lx_office_conf{paths}->{templates}; + + my @alldir = sort grep { + -d ($::lx_office_conf{paths}->{templates} . "/$_") + && !/^\.\.?$/ + && !m/\.(?:html|tex|sty|odt|xml|txb)$/ + && !m/^(?:webpages$|print$|mail$|\.)/ + } keys %dir_h; + + tie %dir_h, 'IO::Dir', "$::lx_office_conf{paths}->{templates}/print"; + my @allmaster = ('Standard', sort grep { -d ("$::lx_office_conf{paths}->{templates}/print" . "/$_") && !/^\.\.?$/ && !/^Standard$/ } keys %dir_h); + + return ( + print_templates => \@alldir, + master_templates => \@allmaster, + ); +} + 1; diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index 84c8b0699..1c7f2594e 100755 --- a/bin/mozilla/admin.pl +++ b/bin/mozilla/admin.pl @@ -55,6 +55,7 @@ use SL::Common; use SL::Inifile; use SL::DBUpgrade2; use SL::DBUtils; +use SL::Template; require "bin/mozilla/common.pl"; require "bin/mozilla/admin_groups.pl"; @@ -1168,24 +1169,9 @@ sub _nologin_file_name { } sub _search_templates { - # is there a templates basedir - if (!-d $::lx_office_conf{paths}->{templates}) { - $::form->error(sprintf($::locale->text("The directory %s does not exist."), $::lx_office_conf{paths}->{templates})); - } - - tie my %dir_h, 'IO::Dir', $::lx_office_conf{paths}->{templates}; - - my @alldir = sort grep { - -d ($::lx_office_conf{paths}->{templates} . "/$_") - && !/^\.\.?$/ - && !m/\.(?:html|tex|sty|odt|xml|txb)$/ - && !m/^(?:webpages$|print$|mail$|\.)/ - } keys %dir_h; - - tie %dir_h, 'IO::Dir', "$::lx_office_conf{paths}->{templates}/print"; - my @allmaster = ('Standard', sort grep { -d ("$::lx_office_conf{paths}->{templates}/print" . "/$_") && !/^\.\.?$/ && !/^Standard$/ } keys %dir_h); + my %templates = SL::Template->available_templates; - return \@alldir, \@allmaster; + return ($templates{print_templates}, $templates{master_templates}); } 1; -- 2.20.1