From: eldy <> Date: Fri, 19 Dec 2003 22:32:57 +0000 (+0000) Subject: Plugin urlalias.pm can read urlalias.txt file but also urlmatch.txt file that can... X-Git-Tag: AWSTATS_6_0_BETA~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f321dad45f8c0871e205397801432977255cd0b0;p=thirdparty%2FAWStats.git Plugin urlalias.pm can read urlalias.txt file but also urlmatch.txt file that can accept regex values. --- diff --git a/wwwroot/cgi-bin/plugins/urlalias.pm b/wwwroot/cgi-bin/plugins/urlalias.pm index 77830cfe..07853ae0 100644 --- a/wwwroot/cgi-bin/plugins/urlalias.pm +++ b/wwwroot/cgi-bin/plugins/urlalias.pm @@ -33,7 +33,8 @@ my $PluginHooksFunctions="ShowInfoURL"; # IF YOUR PLUGIN NEED GLOBAL VARIABLES, THEY MUST BE DECLARED HERE. use vars qw/ $urlinfoloaded -%UrlInfo +%UrlAlias +@UrlMatch /; # -----> @@ -50,7 +51,8 @@ sub Init_urlalias { # ENTER HERE CODE TO DO INIT PLUGIN ACTIONS debug(" InitParams=$InitParams",1); $urlinfoloaded=0; - %UrlInfo=(); + %UrlAlias=(); + @UrlMatch=(); # -----> return ($checkversion?$checkversion:"$PluginHooksFunctions"); @@ -69,21 +71,64 @@ sub Init_urlalias { sub ShowInfoURL_urlalias { # <----- my $urltoshow="$_[0]"; + my $found = 0; # flag for testing for whether a match occurs. unused at present + my $key; # used in iterating through potential matches + my $filetoload=''; # unused at present + my $filetoload2=''; # unused at present + my $iter; # iteration variable if ($urltoshow && ! $urlinfoloaded) { - # Load urlalias file - my $filetoload=''; - if ($SiteConfig && open(URLINFOFILE,"$PluginDir/urlalias.$SiteConfig.txt")) { $filetoload="$PluginDir/urlalias.$SiteConfig.txt"; } - elsif (open(URLINFOFILE,"$PluginDir/urlalias.txt")) { $filetoload="$PluginDir/urlalias.txt"; } - else { error("Couldn't open UrlAlias file \"$PluginDir/urlalias.txt\": $!"); } + # Load urlalias and match files + if ($SiteConfig && open(URLMATCHFILE,"$PluginDir/urlmatch.$SiteConfig.txt")) { $filetoload="$PluginDir/urlmatch.$SiteConfig.txt"; } + elsif (open(URLMATCHFILE,"$PluginDir/urlmatch.txt")) { $filetoload="$PluginDir/urlmatch.txt"; } + else { error("Couldn't open UrlMatch file \"$PluginDir/urlmatch.txt\": $!"); } + if ($SiteConfig && open(URLALIASFILE,"$PluginDir/urlalias.$SiteConfig.txt")) { $filetoload2="$PluginDir/urlalias.$SiteConfig.txt"; } + elsif (open(URLALIASFILE,"$PluginDir/urlalias.txt")) { $filetoload2="$PluginDir/urlalias.txt"; } # This is the fastest way to load with regexp that I know - %UrlInfo = map(/^([^\t]+)\t+([^\t]+)/o,); - close URLINFOFILE; - debug("UrlAlias file loaded: ".(scalar keys %UrlInfo)." entries found."); + %UrlAlias = map(/^([^\t]+)\t+([^\t]+)/o,); + $iter = 0; + foreach $key () { + $key =~ /^([^\t]+)\t+([^\t]+)/o; + $UrlMatch[$iter][0] = $1; + $UrlMatch[$iter][1] = $2; + $iter++; + } + close URLALIASFILE; + close URLMATCHFILE; + debug("UrlAlias file loaded: ".(scalar keys %UrlAlias)." entries found."); + debug("UrlMatch file loaded: ".(scalar @UrlMatch)." entries found."); $urlinfoloaded=1; } if ($urltoshow) { - if ($UrlInfo{$urltoshow}) { print "$UrlInfo{$urltoshow}
"; } - else { print ""; } # Undefined url info + if ($UrlAlias{$urltoshow}) { + print "$UrlAlias{$urltoshow}
"; + $found=1; + } + else { + for ($iter=0;$iter<@UrlMatch;$iter++) { + $key = $UrlMatch[$iter][0]; + if ( $urltoshow =~ /$key/ ) { + print "$UrlMatch[$iter][1]
"; + $UrlAlias{$urltoshow} = $UrlMatch[$iter][1]; + if ($SiteConfig && open(URLALIASFILE,">> $PluginDir/urlalias.$SiteConfig.txt")) { + $filetoload="$PluginDir/urlalias.$SiteConfig.txt"; + } + elsif (open(URLALIASFILE,">> $PluginDir/urlalias.txt")) { + $filetoload="$PluginDir/urlalias.txt"; + } + else { + error("Couldn't open UrlAlias file \"$PluginDir/urlalias.txt\": $!"); + } + print URLALIASFILE "$urltoshow\t$UrlAlias{$urltoshow}"; + close URLALIASFILE; + $found = 1; + last; + } + } + } + if (!$found) { + # does nothing right now + print ""; + } } else { print ""; } # Url info title return 1;