webgui/lib/WebGUI/Help/Macros.pm
2008-09-08 17:01:34 +00:00

56 lines
2.1 KiB
Perl

package WebGUI::Help::Macros;
use strict;
our $HELP = {
'macros list' => {
title => 'macros list title',
body => sub {
my $session = shift;
my $dir = join '/', $session->config->getWebguiRoot, "lib", "WebGUI", "Macro";
opendir( DIR, $dir ) or $session->errorHandler->fatal("Can't open Macro directory: $dir!");
my @macros = ();
foreach my $dir (readdir(DIR)) {
next unless $dir =~ /\.pm$/;
$dir =~ s/\.pm//;
push @macros, $dir;
}
closedir(DIR);
##Build list of enabled macros, by namespace, by reversing session hash:
my %configMacros = %{ $session->config->get("macros") };
#my %macros = reverse %{ $session->config->get("macros") };
my %macros;
while (my ($alias, $macroName) = each %configMacros) {
$alias = '^'. $alias . '();';
if (exists $macros{$macroName}) {
$macros{$macroName} .= '<br/>' . $alias;
}
else {
$macros{$macroName} = $alias;
}
}
my $i18n = WebGUI::International->new( $session, 'Macros' );
my $yes = $i18n->get( 138, 'WebGUI' );
my $no = $i18n->get( 139, 'WebGUI' );
my $macro_table = join "\n", map {
join '', '<tr><td>', $_, '</td><td>', ( $macros{$_} ? $yes : $no ), '</td><td>',
( $macros{$_} ? $macros{$_} : '&nbsp;' ), '</td></tr>'
} @macros;
$macro_table = join( "\n",
$i18n->get('macros list body'), '<table border="1" cellpadding="3">',
'<tr><th>', $i18n->get('macro name'),
'</th><th>', $i18n->get('macro enabled header'),
'</th><th>', $i18n->get('macro shortcut'),
'</th></tr>', $macro_table,
'</table>' );
},
fields => [],
related => [],
},
};
1;