mach 2003/12/10 14:47:32
Modified: lib/Apache/AxKit Tag: axkit-pipeline-2 ConfigReader.pm Log: adding AxAdd check, commenting out very old AxProcessors code which isn't documented. Revision Changes Path No revision No revision 1.18.2.1 +63 -32 xml-axkit/lib/Apache/AxKit/ConfigReader.pm Index: ConfigReader.pm =================================================================== RCS file: /home/cvs/xml-axkit/lib/Apache/AxKit/ConfigReader.pm,v retrieving revision 1.18 retrieving revision 1.18.2.1 diff -u -r1.18 -r1.18.2.1 --- ConfigReader.pm 4 Aug 2003 23:05:17 -0000 1.18 +++ ConfigReader.pm 10 Dec 2003 22:47:32 -0000 1.18.2.1 @@ -2,6 +2,7 @@ package Apache::AxKit::ConfigReader; +use Data::Dumper; use strict; # use vars qw/$COUNT/; @@ -340,42 +341,72 @@ return $can_gzip; } -sub _extract_dir_config_processors { - my $self = shift; - my ($style, $media) = @_; +#sub _extract_dir_config_processors { +# my $self = shift; +# my ($style, $media) = @_; +# +# my @list; +# +# my $processors = $self->{apache}->dir_config('AxProcessors'); +# my $found_non_global_style = 0; +# if( $processors ) { +# foreach my $processor (split(/\s*,\s*/, $processors) ) { +# my ($pmedia, $pstyle, @processor) = split(/\s+/, $processor); +# next unless ($pmedia eq $media and ($pstyle eq $style or $pstyle eq '#global')); +# $found_non_global_style++ if $pstyle ne '#global'; +# push (@list, [ 'NORMAL', @processor ] ); +# } +# } +# +# my @processors = $self->{apache}->dir_config->get('AxProcessor'); +# foreach my $processor (@processors) { +# my ($pmedia, $pstyle, @processor) = split(/\s+/, $processor); +# next unless ($pmedia eq $media and ($pstyle eq $style or $pstyle eq '#global')); +# $found_non_global_style++ if $pstyle ne '#global'; +# push (@list, [ 'NORMAL', @processor ] ); +# } +# +# return @list if $style eq '#default'; +# +# if ($found_non_global_style) { +# return @list; +# } +# else { +# return $self->_extract_dir_config_processors('#default', $media); +# } +#} - my @list; - - my $processors = $self->{apache}->dir_config('AxProcessors'); - my $found_non_global_style = 0; - if( $processors ) { - foreach my $processor (split(/\s*,\s*/, $processors) ) { - my ($pmedia, $pstyle, @processor) = split(/\s+/, $processor); - next unless ($pmedia eq $media and ($pstyle eq $style or $pstyle eq '#global')); - $found_non_global_style++ if $pstyle ne '#global'; - push (@list, [ 'NORMAL', @processor ] ); - } - } - - my @processors = $self->{apache}->dir_config->get('AxProcessor'); - foreach my $processor (@processors) { - my ($pmedia, $pstyle, @processor) = split(/\s+/, $processor); - next unless ($pmedia eq $media and ($pstyle eq $style or $pstyle eq '#global')); - $found_non_global_style++ if $pstyle ne '#global'; - push (@list, [ 'NORMAL', @processor ] ); - } +sub IfAxAddFooProcessors{ + my $self = shift; + my ($media, $style) = @_; + $style ||= '#default'; + + # Add global styles + my $list = []; - return @list if $style eq '#default'; + if( exists($self->{cfg}{Processors}{$media}{'#global'})) { + push @$list, @{ $self->{cfg}{Processors}{$media}{'#global'} || []}; + } - if ($found_non_global_style) { - return @list; + # Add styles matching this style + if (exists($self->{cfg}{Processors}{$media}{$style})) { + push @$list, @{ $self->{cfg}{Processors}{$media}{$style} || [] }; } else { - return $self->_extract_dir_config_processors('#default', $media); - } + # if the style didn't exist, push the #default styles + push @$list, @{ $self->{cfg}{Processors}{$media}{'#default'} || [] }; + } + + foreach my $directive ( @$list ) { + my $type = lc($directive->[0]); + + next if $type eq 'normal'; + next if $type eq 'uri'; + return 1; + } + return 0; } - sub GetMatchingProcessors { my $self = shift; my ($media, $style, $doctype, $dtd, $root, $styles, $provider) = @_; @@ -387,7 +418,7 @@ my $list = []; if( exists($self->{cfg}{Processors}{$media}{'#global'})) { - push @$list, @{ $self->{cfg}{Processors}{$media}{'#global'} || []}; + push @$list, @{ $self->{cfg}{Processors}{$media}{'#global'} || []}; } # Add styles matching this style @@ -399,7 +430,7 @@ push @$list, @{ $self->{cfg}{Processors}{$media}{'#default'} || [] }; } - push @$list, $self->_extract_dir_config_processors($style, $media); + # push @$list, $self->_extract_dir_config_processors($style, $media); my @results;