When editing a page, show that page's sidebar. (Thanks, privat)
parent
2eefd84d0a
commit
e96cf38ecc
13
IkiWiki.pm
13
IkiWiki.pm
|
@ -1739,11 +1739,20 @@ sub template ($;@) {
|
|||
sub misctemplate ($$;@) {
|
||||
my $title=shift;
|
||||
my $content=shift;
|
||||
my %params=@_;
|
||||
|
||||
my $template=template("page.tmpl");
|
||||
|
||||
my $page="";
|
||||
if (exists $params{page}) {
|
||||
$page=delete $params{page};
|
||||
}
|
||||
run_hooks(pagetemplate => sub {
|
||||
shift->(page => "", destpage => "", template => $template);
|
||||
shift->(
|
||||
page => $page,
|
||||
destpage => $page,
|
||||
template => $template,
|
||||
);
|
||||
});
|
||||
templateactions($template, "");
|
||||
|
||||
|
@ -1754,7 +1763,7 @@ sub misctemplate ($$;@) {
|
|||
content => $content,
|
||||
baseurl => baseurl(),
|
||||
html5 => $config{html5},
|
||||
@_,
|
||||
%params,
|
||||
);
|
||||
|
||||
return $template->output;
|
||||
|
|
|
@ -312,7 +312,8 @@ sub cgi_editpage ($$) {
|
|||
$form->title(sprintf(gettext("editing %s"), pagetitle($page)));
|
||||
}
|
||||
|
||||
showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
|
||||
showform($form, \@buttons, $session, $q,
|
||||
forcebaseurl => $baseurl, page => $page);
|
||||
}
|
||||
else {
|
||||
# save page
|
||||
|
@ -329,7 +330,8 @@ sub cgi_editpage ($$) {
|
|||
$form->field(name => "page", type => 'hidden');
|
||||
$form->field(name => "type", type => 'hidden');
|
||||
$form->title(sprintf(gettext("editing %s"), $page));
|
||||
showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
|
||||
showform($form, \@buttons, $session, $q,
|
||||
forcebaseurl => $baseurl, page => $page);
|
||||
exit;
|
||||
}
|
||||
elsif ($form->field("do") eq "create" && $exists) {
|
||||
|
@ -343,7 +345,8 @@ sub cgi_editpage ($$) {
|
|||
value => readfile("$config{srcdir}/$file").
|
||||
"\n\n\n".$form->field("editcontent"),
|
||||
force => 1);
|
||||
showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
|
||||
showform($form, \@buttons, $session, $q,
|
||||
forcebaseurl => $baseurl, page => $page);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
@ -384,7 +387,7 @@ sub cgi_editpage ($$) {
|
|||
$form->field(name => "type", type => 'hidden');
|
||||
$form->title(sprintf(gettext("editing %s"), $page));
|
||||
showform($form, \@buttons, $session, $q,
|
||||
forcebaseurl => $baseurl);
|
||||
forcebaseurl => $baseurl, page => $page);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
@ -423,7 +426,7 @@ sub cgi_editpage ($$) {
|
|||
$form->field(name => "type", type => 'hidden');
|
||||
$form->title(sprintf(gettext("editing %s"), $page));
|
||||
showform($form, \@buttons, $session, $q,
|
||||
forcebaseurl => $baseurl);
|
||||
forcebaseurl => $baseurl, page => $page);
|
||||
}
|
||||
else {
|
||||
# The trailing question mark tries to avoid broken
|
||||
|
|
|
@ -6,6 +6,7 @@ ikiwiki (3.20100609) unstable; urgency=low
|
|||
* Remove example blog tag pages; allow autotag creation to create them
|
||||
when used.
|
||||
* Fix support for globbing in tagged() pagespecs.
|
||||
* When editing a page, show that page's sidebar. (Thanks, privat)
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Mon, 31 May 2010 20:44:17 -0400
|
||||
|
||||
|
|
|
@ -18,6 +18,12 @@ But it causes some nasty bugs for plugins that use the pagetemplate hook. It is
|
|||
* -> Problem: 404, the browser goes to "/bar/foo"
|
||||
* -> Was expected: the browser goes to "/foo"
|
||||
|
||||
> You must have a locally modified `page.tmpl` that omits the "TMPL_IF DYNAMIC"
|
||||
> that adds a `<base>` tag. That is needed to make all links displayed by
|
||||
> cgis work reliably. Not just in this page editing case.
|
||||
> The [[version_3.20100515]] announcment mentions that you need to
|
||||
> update old `page.tmpl` files to include that on upgrade. --[[Joey]]
|
||||
|
||||
### A second example
|
||||
|
||||
* create "/bar/sidebar.mdwn" with "world"
|
||||
|
@ -28,6 +34,10 @@ But it causes some nasty bugs for plugins that use the pagetemplate hook. It is
|
|||
* -> Problem: the sidebar now shows the foo link (it is the root sidebar!)
|
||||
* -> Was expecte : the sidebar displays "world"
|
||||
|
||||
> One could argue that the behavior here is right, or wrong.
|
||||
> Is a page edit page really the same as the page being edited?
|
||||
> The next case is more clear.. --[[Joey]]
|
||||
|
||||
### A last example
|
||||
|
||||
* with the web browser edit the page "bar"
|
||||
|
@ -36,6 +46,8 @@ But it causes some nasty bugs for plugins that use the pagetemplate hook. It is
|
|||
* -> Problem: the sidebar still displays the foo link
|
||||
* -> Was expected: the sidebar display "goodby"
|
||||
|
||||
> I think this is worth fixing. --[[Joey]]
|
||||
|
||||
## Some superficial hacking
|
||||
|
||||
With the following workaround hacks, I manage to solve the 3 examples shown above:
|
||||
|
@ -47,4 +59,9 @@ With the following workaround hacks, I manage to solve the 3 examples shown abov
|
|||
<pre>my %params=@_;
|
||||
shift->(page => $params{page}, destpage => $params{destpage}, template => $template);</pre>
|
||||
|
||||
I do not guarantee (I do not even expect) that it is the proper way to solve this bug but it may help developers to find and solve the real problem.
|
||||
I do not guarantee (I do not even expect) that it is the proper way to solve
|
||||
this bug but it may help developers to find and solve the real problem.
|
||||
|
||||
> Oh, it's pretty reasonable. I don't think it breaks anything. :)
|
||||
> [[done]]
|
||||
> --[[Joey]]
|
||||
|
|
Loading…
Reference in New Issue