Add patch
parent
a07acf4b4d
commit
ec15e15983
|
@ -4,5 +4,79 @@ For example:
|
||||||
|
|
||||||
\[[!inline pages="blog/* and !*/Discussion" postform="yes" newposttemplate="blogtemplate.mdwn"]]
|
\[[!inline pages="blog/* and !*/Discussion" postform="yes" newposttemplate="blogtemplate.mdwn"]]
|
||||||
|
|
||||||
This would allow you to create a new blog post. When you hit the 'Edit' button, the system presents
|
This would allow you to create a new blog post. When you hit the `Edit` button, the system presents
|
||||||
you with an edit form as normal, but rather than being empty, it has the text from `blogtemplate.mdwn`.
|
you with an edit form as normal, but rather than being empty, it has the text from `blogtemplate.mdwn`.
|
||||||
|
|
||||||
|
Inline below is a [[patch]] that implements this:
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm
|
||||||
|
index bb21ed2..10c985c 100644
|
||||||
|
--- a/IkiWiki/Plugin/editpage.pm
|
||||||
|
+++ b/IkiWiki/Plugin/editpage.pm
|
||||||
|
@@ -60,7 +60,7 @@ sub cgi_editpage ($$) { #{{{
|
||||||
|
|
||||||
|
decode_cgi_utf8($q);
|
||||||
|
|
||||||
|
- my @fields=qw(do rcsinfo subpage from page type editcontent comments);
|
||||||
|
+ my @fields=qw(do rcsinfo subpage from page type editcontent comments templatepage);
|
||||||
|
my @buttons=("Save Page", "Preview", "Cancel");
|
||||||
|
eval q{use CGI::FormBuilder};
|
||||||
|
error($@) if $@;
|
||||||
|
@@ -117,9 +117,20 @@ sub cgi_editpage ($$) { #{{{
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$type=$form->param('type');
|
||||||
|
+
|
||||||
|
+ my $defaultContent = "";
|
||||||
|
+ my $templatepage = $form->param('templatepage');
|
||||||
|
+ if ($templatepage && $pagesources{$templatepage}) {
|
||||||
|
+ $defaultContent = readfile(IkiWiki::srcfile($pagesources{$templatepage}));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (defined $type && length $type && $hooks{htmlize}{$type}) {
|
||||||
|
$type=possibly_foolish_untaint($type);
|
||||||
|
}
|
||||||
|
+ elsif ($templatepage && $pagesources{$templatepage}) {
|
||||||
|
+ # favor the type of the template page
|
||||||
|
+ $type=pagetype($pagesources{$templatepage});
|
||||||
|
+ }
|
||||||
|
elsif (defined $from && exists $pagesources{$from}) {
|
||||||
|
# favor the type of linking page
|
||||||
|
$type=pagetype($pagesources{$from});
|
||||||
|
@@ -129,7 +140,7 @@ sub cgi_editpage ($$) { #{{{
|
||||||
|
if (! $form->submitted) {
|
||||||
|
$form->field(name => "rcsinfo", value => "", force => 1);
|
||||||
|
}
|
||||||
|
- $form->field(name => "editcontent", validate => '/.+/');
|
||||||
|
+ $form->field(name => "editcontent", value => $defaultContent, force => 0, validate => '/.+/');
|
||||||
|
}
|
||||||
|
|
||||||
|
$form->field(name => "do", type => 'hidden');
|
||||||
|
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
|
||||||
|
index 8efef3f..075d7d8 100644
|
||||||
|
--- a/IkiWiki/Plugin/inline.pm
|
||||||
|
+++ b/IkiWiki/Plugin/inline.pm
|
||||||
|
@@ -271,6 +271,7 @@ sub preprocess_inline (@) { #{{{
|
||||||
|
$rootpage=$params{page};
|
||||||
|
}
|
||||||
|
$formtemplate->param(rootpage => $rootpage);
|
||||||
|
+ $formtemplate->param(templatepage => $params{newposttemplate}) if $params{newposttemplate};
|
||||||
|
$formtemplate->param(rssurl => $rssurl) if $feeds && $rss;
|
||||||
|
$formtemplate->param(atomurl => $atomurl) if $feeds && $atom;
|
||||||
|
if (exists $params{postformtext}) {
|
||||||
|
diff --git a/templates/blogpost.tmpl b/templates/blogpost.tmpl
|
||||||
|
index 7eeede6..5c8b34c 100644
|
||||||
|
--- a/templates/blogpost.tmpl
|
||||||
|
+++ b/templates/blogpost.tmpl
|
||||||
|
@@ -8,6 +8,9 @@
|
||||||
|
</TMPL_IF>
|
||||||
|
<input type="hidden" name="do" value="blog" />
|
||||||
|
<input type="hidden" name="from" value="<TMPL_VAR ROOTPAGE>" />
|
||||||
|
+<TMPL_IF NAME="TEMPLATEPAGE">
|
||||||
|
+<input type="hidden" name="templatepage" value="<TMPL_VAR TEMPLATEPAGE>" />
|
||||||
|
+</TMPL_IF>
|
||||||
|
<input type="hidden" name="subpage" value="1" />
|
||||||
|
<TMPL_VAR POSTFORMTEXT>
|
||||||
|
<input name="title" size="40" />
|
||||||
|
|
Loading…
Reference in New Issue