From 7bca02db6d6f9043c7894fe603f3ecae35331398 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Thu, 27 Feb 2003 03:43:00 +0000 Subject: [PATCH] Macros have been converted to be configured from the config file rather than the filesystem. --- etc/WebGUI.conf.original | 51 ++++++++++++++++++++++++++++++++++++++++ lib/WebGUI/Macro.pm | 4 ++-- lib/WebGUI/Session.pm | 21 ++++------------- 3 files changed, 57 insertions(+), 19 deletions(-) diff --git a/etc/WebGUI.conf.original b/etc/WebGUI.conf.original index b449940d2..59a5ee565 100644 --- a/etc/WebGUI.conf.original +++ b/etc/WebGUI.conf.original @@ -14,3 +14,54 @@ wobjects = Article, EventsCalendar, ExtraColumn, FAQ, FileManager, HttpProxy, \ Item, LinkList, MailForm, MessageBoard, Poll, Product, SiteMap, \ SQLReport, Survey, SyndicatedContent, USS, WobjectProxy +macros = a => a_account, \ + AdminBar => AdminBar, \ + AdminText => AdminText, \ + AdminToggle => AdminToggle, \ + @ => At_username, \ + \ => Backslash_pageUrl, \ + c => c_companyName, \ + C => C_crumbTrail, \ + D => D_date, \ + e => e_companyEmail, \ + Env => Env, \ + Execute => Execute, \ + Extras => Extras, \ + File => File, \ + FlexMenu => FlexMenu, \ + FormParam => FormParam, \ + GroupText => GroupText, \ + # => Hash_userId, \ + H => H_homeLink, \ + i => i_imageNoTags, \ + I => I_imageWithTags, \ + Include => Include, \ + International => International, \ + L => L_loginBox, \ + LoginToggle => LoginToggle, \ + m => m_currentMenuHorizontal, \ + M => M_currentMenuVertical, \ + Page => Page, \ + PageTitle => PageTitle, \ + p => p_previousMenuHorizontal, \ + P => P_previousMenuVertical, \ + ? => Question_search, \ + rootmenu => rootmenuHorizontal, \ + RootTitle => RootTitle, \ + r => r_printable, \ + / => Slash_gatewayUrl, \ + Snippet => Snippet, \ + * => Splat_random, \ + SQL => SQL, \ + s => s_specificMenuHorizontal, \ + S => S_specificMenuVertical, \ + Synopsis => Synopsis, \ + ThumbnailLinker => ThumbnailLinker, \ + Thumbnail => Thumbnail, \ + t => t_topMenuHorizontal, \ + T => T_topMenuVertical, \ + u => u_companyUrl, \ + URLEncode => URLEncode, \ + User => User + + diff --git a/lib/WebGUI/Macro.pm b/lib/WebGUI/Macro.pm index b8895384c..5ca46bec9 100644 --- a/lib/WebGUI/Macro.pm +++ b/lib/WebGUI/Macro.pm @@ -91,8 +91,8 @@ A string of HTML to be processed. sub process { my ($macro, $cmd, $output, $temp); $output = $_[0]; - foreach $macro (keys %{$session{macro}}) { - $cmd = "WebGUI::Macro::".$macro."::process"; + foreach $macro (keys %{$session{config}{macros}}) { + $cmd = "WebGUI::Macro::".$session{config}{macros}{$macro}."::process"; $temp = eval{&$cmd($output)}; if ($@) { WebGUI::ErrorHandler::warn("Processing failed on macro: $macro: ".$@); diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm index 4a80b9661..0ce60bade 100644 --- a/lib/WebGUI/Session.pm +++ b/lib/WebGUI/Session.pm @@ -191,24 +191,11 @@ sub _loadAuthentication { #------------------------------------------------------------------- sub _loadMacros { - my ($namespace, $cmd, @files, $file, $dir, $exclude); - $dir = $session{config}{webguiRoot}.$session{os}{slash}."lib".$session{os}{slash}."WebGUI".$session{os}{slash}."Macro"; - opendir (DIR,$dir) or WebGUI::ErrorHandler::fatalError("Can't open macro directory!"); - @files = readdir(DIR); - foreach $file (@files) { - if ($file =~ /(.*?)\.pm$/) { - $namespace = $1; - $cmd = "use WebGUI::Macro::".$1; - eval($cmd); - WebGUI::ErrorHandler::fatalError("Macro failed to compile: $namespace.".$@) if($@); - $exclude = $session{config}{excludeMacro}; - $exclude =~ s/ //g; - unless (isIn($namespace, split(/,/,$exclude))) { - $session{macro}{$namespace} = $namespace; - } - } + foreach my $key (keys %{$session{config}{macros}}) { + my $cmd = "use WebGUI::Macro::".$session{config}{macros}{$key}; + eval($cmd); + WebGUI::ErrorHandler::fatalError("Macro failed to compile: $key.".$@) if($@); } - closedir(DIR); } #-------------------------------------------------------------------