From 12a35c8db67e1377f95f0fdee37e99cd3e3fd3f8 Mon Sep 17 00:00:00 2001 From: Len Kranendonk Date: Tue, 13 May 2003 11:38:51 +0000 Subject: [PATCH] Added searchAndReplace functionality --- docs/upgrades/upgrade_5.2.6-5.3.0.pl | 15 +++++++++++++-- etc/WebGUI.conf.original | 12 ++++++++++++ lib/WebGUI/Discussion.pm | 1 + lib/WebGUI/HTML.pm | 26 ++++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/docs/upgrades/upgrade_5.2.6-5.3.0.pl b/docs/upgrades/upgrade_5.2.6-5.3.0.pl index 09353c1ce..ee71235cb 100644 --- a/docs/upgrades/upgrade_5.2.6-5.3.0.pl +++ b/docs/upgrades/upgrade_5.2.6-5.3.0.pl @@ -19,7 +19,7 @@ GetOptions( print "\tUpdating config file.\n" unless ($quiet); -my $pathToConfig = '../../etc/'.$configFile; +my $pathToConfig = '../../etc/'.$configFile; print"debug:$pathToConfig\n"; my $conf = Parse::PlainConfig->new('DELIM' => '=', 'FILE' => $pathToConfig); my $macros = $conf->get("macros"); $macros->{RootTab} = "RootTab"; @@ -41,8 +41,19 @@ foreach my $i ($wobjects) { } } $conf->set("wobjects"=>$wobjects); -$conf->write; +$conf->set("searchAndReplace"=>{ ":)" => "", + ":-)" => "", + ":(" => "", + ":-(" => "", + ";)" => "", + ";-)" => "", + ":D" => "", + ":p" => "", + ":O" => "", + "WebGUI" => "WebGUI"}); +$conf->write; +exit; print "\tRemoving unneeded files.\n" unless ($quiet); diff --git a/etc/WebGUI.conf.original b/etc/WebGUI.conf.original index 931e02fe1..23350a116 100644 --- a/etc/WebGUI.conf.original +++ b/etc/WebGUI.conf.original @@ -69,4 +69,16 @@ macros = a => a_account, \ URLEncode => URLEncode, \ User => User +searchAndReplace = \ + :) => "", \ + :-) => "", \ + :( => "", \ + :-( => "", \ + ;) => "", \ + ;-) => "", \ + :D => "", \ + :p => "", \ + :O => "", \ + \ + WebGUI => "WebGUI" diff --git a/lib/WebGUI/Discussion.pm b/lib/WebGUI/Discussion.pm index 6a1a4b2dd..0da08132e 100644 --- a/lib/WebGUI/Discussion.pm +++ b/lib/WebGUI/Discussion.pm @@ -211,6 +211,7 @@ sub formatHeader { sub formatMessage { my $output; $output = WebGUI::HTML::filter($_[0],$_[1]); + $output = WebGUI::HTML::searchAndReplace($output); unless ($output =~ /\/ig || $output =~ /\/ig || $output =~ /\/ig) { $output =~ s/\n/\/g; } diff --git a/lib/WebGUI/HTML.pm b/lib/WebGUI/HTML.pm index d5583f479..928a5f57a 100644 --- a/lib/WebGUI/HTML.pm +++ b/lib/WebGUI/HTML.pm @@ -32,6 +32,7 @@ A package for manipulating and massaging HTML. use WebGUI::HTML; $html = WebGUI::HTML::cleanSegment($html); $html = WebGUI::HTML::filter($html); + $html = WebGUI::HTML::searchAndReplace($html); =head1 METHODS @@ -127,6 +128,31 @@ sub filter { } } +#------------------------------------------------------------------- + +=head2 searchAndReplace ( html ) + +Replaces all occurrences of strings specified in the config file. + +=over + +=item html + +The HTML segment you want to have search and replaced. + +=back + +=cut + +sub searchAndReplace { + my $content = shift; + foreach my $search (keys %{$session{config}{searchAndReplace}}) { + my $replace = $session{config}{searchAndReplace}{$search}; + $content =~ s/\Q$search/$replace/g; + } + return $content; +} + 1;