]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/inline.pm
* Add "template" option to inline plugin to allow for use of customised
[git.ikiwiki.info.git] / IkiWiki / Plugin / inline.pm
index 06b74b3fab0442654e6ecd25772cf19efd0bab5f..2db39f777664d135b5cc86852feb04a77b058199 100644 (file)
@@ -77,11 +77,17 @@ sub preprocess_inline (@) { #{{{
                $desc = $config{wikiname};
        }
        my $actions=yesno($params{actions});
+       if (exists $params{template}) {
+               $params{template}=~s/[^-_a-zA-Z0-9]+//g;
+       }
+       else {
+               $params{template} = $archive ? "archivepage" : "inlinepage";
+       }
 
        my @list;
        foreach my $page (keys %pagesources) {
                next if $page eq $params{page};
-               if (pagespec_match($page, $params{pages})) {
+               if (pagespec_match($page, $params{pages}, $params{page})) {
                        push @list, $page;
                }
        }
@@ -96,6 +102,10 @@ sub preprocess_inline (@) { #{{{
                return sprintf(gettext("unknown sort type %s"), $params{sort});
        }
 
+       if (yesno($params{reverse})) {
+               @list=reverse(@list);
+       }
+
        if (exists $params{skip}) {
                @list=@list[$params{skip} .. scalar @list - 1];
        }
@@ -127,10 +137,11 @@ sub preprocess_inline (@) { #{{{
                $ret.=$linktemplate->output;
        }
        
-       my $template=template(
-               ($archive ? "inlinepagetitle.tmpl" : "inlinepage.tmpl"),
-               blind_cache => 1,
-       ) unless $raw;
+       my @params=IkiWiki::template_params($params{template}.".tmpl", blind_cache => 1);
+       if (! @params) {
+               return sprintf(gettext("nonexistant template %s @params"), $params{template});
+       }
+       my $template=HTML::Template->new(@params) unless $raw;
        
        foreach my $page (@list) {
                my $file = $pagesources{$page};
@@ -162,7 +173,12 @@ sub preprocess_inline (@) { #{{{
                                            (length $config{cgiurl} ||
                                             exists $links{$page."/".$discussionlink})) {
                                                $template->param(have_actions => 1);
-                                               $template->param(discussionlink => htmllink($page, $params{page}, gettext("Discussion"), 1, 1));
+                                               $template->param(discussionlink =>
+                                                       htmllink($page,
+                                                               $params{page},
+                                                               gettext("Discussion"),
+                                                               noimageinline => 1,
+                                                               forcesubpage => 1));
                                        }
                                }
                                if (length $config{cgiurl} && defined $type) {