X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/c225cdad2524a12b998e550b6c0ba7079d164cff..c037714b77535c849c8d8ef4807af2b59737a5c5:/IkiWiki/Plugin/edittemplate.pm diff --git a/IkiWiki/Plugin/edittemplate.pm b/IkiWiki/Plugin/edittemplate.pm index 742413c94..c7f1e4fa7 100644 --- a/IkiWiki/Plugin/edittemplate.pm +++ b/IkiWiki/Plugin/edittemplate.pm @@ -41,6 +41,8 @@ sub needsbuild (@) { } } } + + return $needsbuild; } sub preprocess (@) { @@ -56,10 +58,15 @@ sub preprocess (@) { } my $link=linkpage($params{template}); + add_depends($params{page}, $link, deptype("presence")); my $bestlink=bestlink($params{page}, $link); + if (! length $bestlink) { + add_depends($params{page}, "templates/$link", deptype("presence")); + $link="/templates/".$link; + $bestlink=bestlink($params{page}, $link); + } $pagestate{$params{page}}{edittemplate}{$params{match}}=$bestlink; - add_depends($params{page}, $link, deptype("presence")); return "" if ($params{silent} && IkiWiki::yesno($params{silent})) && length $bestlink; return sprintf(gettext("edittemplate %s registered for %s"), @@ -100,9 +107,11 @@ sub formbuilder (@) { my $template=$pagestate{$registering_page}{edittemplate}{$pagespec}; $form->field(name => "editcontent", value => filltemplate($template, $page)); - $form->field(name => "type", - value => pagetype($pagesources{$template})) + my $type=pagetype($pagesources{$template}) if $pagesources{$template}; + $form->field(name => "type", + value => $type) + if defined $type; return; } } @@ -123,10 +132,7 @@ sub filltemplate ($$) { if ($@) { # Indicate that the earlier preprocessor directive set # up a template that doesn't work. - return "[[!pagetemplate ".gettext("failed to process template:")." $@]]"; - } - if (! defined $template) { - return; + return "[[!edittemplate ".gettext("failed to process template:")." $@]]"; } $template->param(name => $page);