X-Git-Url: https://git.deb.at/?p=pkg%2Fblosxom.git;a=blobdiff_plain;f=blosxom.cgi;h=2e87b759c77a8acbaebd1749e6cf1215df584858;hp=2c6b6ee17d1e7e5692668cba4f5be2d3297ff4dd;hb=2955ac75e94fafa458af50b15d376993c7fd9e85;hpb=2e7cf5294e63848b2f862b9ce828d54994a7ab52 diff --git a/blosxom.cgi b/blosxom.cgi index 2c6b6ee..2e87b75 100755 --- a/blosxom.cgi +++ b/blosxom.cgi @@ -317,7 +317,14 @@ $entries = # Plugins: Entries # Allow for the first encountered plugin::entries subroutine to override the # default built-in entries subroutine -my $tmp; foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('entries') and defined($tmp = $plugin->entries()) and $entries = $tmp and last; } +foreach my $plugin (@plugins) { + if ( $plugins{$plugin} > 0 and $plugin->can('entries') ) { + if ( my $tmp = $plugin->entries() ) { + $entries = $tmp; + last; + } + } +} my ($files, $indexes, $others) = &$entries(); %indexes = %$indexes; @@ -383,7 +390,9 @@ sub generate { %files = %$files; %others = ref $others ? %$others : (); # Plugins: Filter - foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('filter') and $entries = $plugin->filter(\%files, \%others) } + foreach my $plugin ( @plugins ) { + if ($plugins{$plugin} > 0 and $plugin->can('filter')){ $entries = $plugin->filter(\%files, \%others); } + } my %f = %files; @@ -444,7 +453,7 @@ sub generate { if ( $currentdir =~ /(.*?)([^\/]+)\.(.+)$/ and $2 ne 'index' ) { $currentdir = "$1$2.$file_extension"; - $files{"$datadir/$1$2.$file_extension"} and %f = ( "$datadir/$1$2.$file_extension" => $files{"$datadir/$1$2.$file_extension"} ); + %f = ( "$datadir/$currentdir" => $files{"$datadir/$currentdir"} ) if $files{"$datadir/$currentdir"}; } else { $currentdir =~ s!/index\..+$!!; @@ -496,7 +505,13 @@ sub generate { my $date = (&$template($path,'date',$flavour)); # Plugins: Date - foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('date') and $entries = $plugin->date($currentdir, \$date, $files{$path_file}, $dw,$mo,$mo_num,$da,$ti,$yr) } + foreach my $plugin (@plugins) { + if ( $plugins{$plugin} > 0 and $plugin->can('date') ) { + $entries + = $plugin->date( $currentdir, \$date, $files{$path_file}, $dw, + $mo, $mo_num, $da, $ti, $yr ); + } + } $date = &$interpolate($date);