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, "");
content => $content,
baseurl => baseurl(),
html5 => $config{html5},
- @_,
+ %params,
);
return $template->output;
$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
$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) {
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;
}
$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;
}
$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
* -> 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"
* -> 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"
* -> 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:
<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]]