diff options
author | Joey Hess <joey@kitenet.net> | 2010-06-09 16:00:12 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-06-09 16:00:12 -0400 |
commit | e96cf38eccd219714140f221090d2e7751fd4ee0 (patch) | |
tree | eec9569699ea73555f3146b5bae745030fff6358 | |
parent | 2eefd84d0adbcaaaf4aa1c306a1c745fa52f3c9b (diff) |
When editing a page, show that page's sidebar. (Thanks, privat)
-rw-r--r-- | IkiWiki.pm | 13 | ||||
-rw-r--r-- | IkiWiki/Plugin/editpage.pm | 13 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn | 19 |
4 files changed, 38 insertions, 8 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index 27fa4ca17..d2ed99923 100644 --- a/IkiWiki.pm +++ b/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; diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm index 670eedfd9..aa73eb87d 100644 --- a/IkiWiki/Plugin/editpage.pm +++ b/IkiWiki/Plugin/editpage.pm @@ -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 diff --git a/debian/changelog b/debian/changelog index 36848d680..66d525572 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 diff --git a/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn b/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn index 58cf9d737..2ef5cdba3 100644 --- a/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn +++ b/doc/bugs/misctemplate_does_not_respect_the_current_page___40__if_any__41__.mdwn @@ -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]] |