package WebGUI::Help::Macros; use strict; use Module::Find qw(findsubmod); our $HELP = { 'macros list' => { title => 'macros list title', body => sub { my $session = shift; my @macroModules = findsubmod 'WebGUI::Macro'; my @macros = map { /^WebGUI::Macro::(.*)/; $1 } @macroModules; ##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} .= '
' . $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 '', '', $_, '', ( $macros{$_} ? $yes : $no ), '', ( $macros{$_} ? $macros{$_} : ' ' ), '' } @macros; $macro_table = join( "\n", $i18n->get('macros list body'), '', '', $macro_table, '
', $i18n->get('macro name'), '', $i18n->get('macro enabled header'), '', $i18n->get('macro shortcut'), '
' ); }, fields => [], related => [], }, }; 1;