- my @pages;
- foreach my $page (blog_list($params{pages}, $params{show})) {
- next if $page eq $params{page};
- push @pages, $page;
- $template->param(pagelink => htmllink($params{page}, $params{page}, $page));
- $template->param(content => get_inline_content($params{page}, $page))
- if $params{archive} eq "no";
- $template->param(ctime => displaytime($pagectime{$page}));
- $ret.=$template->output;
+ foreach my $page (@list) {
+ if (! $raw) {
+ # Get the content before populating the template,
+ # since getting the content uses the same template
+ # if inlines are nested.
+ # TODO: if $archive=1, the only reason to do this
+ # is to let the meta plugin get page title info; so stop
+ # calling this next line then once the meta plugin can
+ # store that accross runs (also tags plugin).
+ my $content=get_inline_content($page, $params{destpage});
+ # Don't use htmllink because this way the title is separate
+ # and can be overridden by other plugins.
+ my $link=htmlpage(bestlink($params{page}, $page));
+ $link=abs2rel($link, dirname($params{destpage}));
+ $template->param(pageurl => $link);
+ $template->param(title => pagetitle(basename($page)));
+ $template->param(content => $content);
+ $template->param(ctime => displaytime($pagectime{$page}));
+
+ if ($actions) {
+ my $file = $pagesources{$page};
+ my $type = pagetype($file);
+ if ($config{discussion}) {
+ $template->param(have_actions => 1);
+ $template->param(discussionlink => htmllink($page, $page, "Discussion", 1, 1));
+ }
+ if (length $config{cgiurl} && defined $type) {
+ $template->param(have_actions => 1);
+ $template->param(editurl => cgiurl(do => "edit", page => $page));
+ }
+ }
+
+ run_hooks(pagetemplate => sub {
+ shift->(page => $page, destpage => $params{page},
+ template => $template,);
+ });
+
+ $ret.=$template->output;
+ $template->clear_params;
+ }
+ else {
+ my $file=$pagesources{$page};
+ my $type=pagetype($file);
+ if (defined $type) {
+ $ret.="\n".
+ linkify($page, $params{page},
+ preprocess($page, $params{page},
+ filter($page,
+ readfile(srcfile($file)))));
+ }
+ }