From f1fed19e24a83ddf3a7a63490ba065c05d8b8f8d Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Fri, 6 Aug 2010 16:02:23 -0500 Subject: [PATCH] remove AdminBar macro from all templates --- share/upgrades/7.9.10-8.0.0/removeAdminBar.pl | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/share/upgrades/7.9.10-8.0.0/removeAdminBar.pl b/share/upgrades/7.9.10-8.0.0/removeAdminBar.pl index f22ac158e..3c2b1c2e0 100644 --- a/share/upgrades/7.9.10-8.0.0/removeAdminBar.pl +++ b/share/upgrades/7.9.10-8.0.0/removeAdminBar.pl @@ -1,10 +1,36 @@ use WebGUI::Upgrade::Script; - report "\tRemoving Admin Bar... "; session->config->delete( 'macros/AdminBar' ); +report "\tEditing templates to remove AdminBar macro calls..."; + +use WebGUI::Macro; +use WebGUI::Asset::Template; + +my $iter = WebGUI::Asset::Template->getIsa( session ); +ASSET: while (1) { + my $template = eval { $iter->() }; + if (my $e = Exception::Class->caught()) { + session->log->error($@); + next ASSET; + } + last ASSET unless $template; + + my $content = $template->template; + while ( $content =~ m/$WebGUI::Macro::macro_re/g ) { + my $macroCall = $1; + my $macroName = $2; + if ( $macroName eq 'AdminBar' ) { + $content =~ s/\Q$macroCall//g; + } + } + + $template->template( $content ); + $template->write; +} + done;