summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-08-05 22:07:32 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-08-05 22:07:32 +0000
commit46a80d9cbe249d0acba26f1378d30c951f2f9cfd (patch)
tree281f7b493cb8658dfa67fe5b9fa800134bc05957
parent8ca85b699d264986f01bc7122cb5ade3bd122bc6 (diff)
* Move blog form code out of CGI.pm and into the inline plugin.
-rw-r--r--IkiWiki/CGI.pm15
-rw-r--r--IkiWiki/Plugin/inline.pm24
-rw-r--r--IkiWiki/Plugin/skeleton.pm8
-rw-r--r--debian/changelog1
-rw-r--r--po/ikiwiki.pot20
5 files changed, 43 insertions, 25 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 144ad2198..d3f0203d8 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -704,21 +704,6 @@ sub cgi (;$$) { #{{{
elsif ($do eq 'create' || $do eq 'edit') {
cgi_editpage($q, $session);
}
- elsif ($do eq 'blog') {
- my $page=decode_utf8($q->param('title'));
- $page=~s/\///g; # no slashes in blog posts
- # if the page already exists, munge it to be unique
- my $from=$q->param('from');
- my $add="";
- while (exists $pagecase{lc($from."/".titlepage($page).$add)}) {
- $add=1 unless length $add;
- $add++;
- }
- $q->param('page', $page.$add);
- # now run same as create
- $q->param('do', 'create');
- cgi_editpage($q, $session);
- }
elsif ($do eq 'postsignin') {
error(gettext("login failed, perhaps you need to turn on cookies?"));
}
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 08e1f2769..5378cc939 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -4,12 +4,14 @@ package IkiWiki::Plugin::inline;
use warnings;
use strict;
+use Encode;
use IkiWiki 2.00;
use URI;
sub import { #{{{
hook(type => "getopt", id => "inline", call => \&getopt);
hook(type => "checkconfig", id => "inline", call => \&checkconfig);
+ hook(type => "sessioncgi", id => "skeleton", call => \&sessioncgi);
hook(type => "preprocess", id => "inline",
call => \&IkiWiki::preprocess_inline);
hook(type => "pagetemplate", id => "inline",
@@ -19,6 +21,7 @@ sub import { #{{{
# pings interrupting page builds.
hook(type => "change", id => "inline",
call => \&IkiWiki::pingurl);
+
} # }}}
sub getopt () { #{{{
@@ -43,6 +46,27 @@ sub checkconfig () { #{{{
}
} #}}}
+sub sessioncgi () { #{{{
+ my $q=shift;
+ my $session=shift;
+
+ if ($q->param('do') eq 'blog') {
+ my $page=decode_utf8($q->param('title'));
+ $page=~s/\///g; # no slashes in blog posts
+ # if the page already exists, munge it to be unique
+ my $from=$q->param('from');
+ my $add="";
+ while (exists $IkiWiki::pagecase{lc($from."/".IkiWiki::titlepage($page).$add)}) {
+ $add=1 unless length $add;
+ $add++;
+ }
+ $q->param('page', $page.$add);
+ # now go create the page
+ $q->param('do', 'create');
+ IkiWiki::cgi_editpage($q, $session);
+ }
+}
+
# Back to ikiwiki namespace for the rest, this code is very much
# internal to ikiwiki even though it's separated into a plugin.
package IkiWiki;
diff --git a/IkiWiki/Plugin/skeleton.pm b/IkiWiki/Plugin/skeleton.pm
index 2ea19eef9..72e088770 100644
--- a/IkiWiki/Plugin/skeleton.pm
+++ b/IkiWiki/Plugin/skeleton.pm
@@ -23,6 +23,7 @@ sub import { #{{{
hook(type => "change", id => "skeleton", call => \&change);
hook(type => "cgi", id => "skeleton", call => \&cgi);
hook(type => "auth", id => "skeleton", call => \&auth);
+ hook(type => "sessioncgi", id => "skeleton", call => \&sessioncgi);
hook(type => "canedit", id => "skeleton", call => \&canedit);
hook(type => "formbuilder_setup", id => "skeleton", call => \&formbuilder_setup);
hook(type => "formbuilder", id => "skeleton", call => \&formbuilder);
@@ -119,6 +120,13 @@ sub auth ($$) { #{{{
debug("skeleton plugin running in auth");
} #}}}
+sub sessionncgi ($$) { #{{{
+ my $cgi=shift;
+ my $session=shift;
+
+ debug("skeleton plugin running in sessioncgi");
+} #}}}
+
sub canedit ($$$) { #{{{
my $page=shift;
my $cgi=shift;
diff --git a/debian/changelog b/debian/changelog
index 0d40a2d2e..41a9a22a6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,7 @@ ikiwiki (2.6) UNRELEASED; urgency=low
* Add rel=tag attribute to tag links, supporting that microformat, as well
as allowing them to be styled specially. Thanks, NicolasLimare.
* Add sessioncgi hook.
+ * Move blog form code out of CGI.pm and into the inline plugin.
-- Joey Hess <joeyh@debian.org> Sun, 05 Aug 2007 14:36:55 -0700
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index 1f7c1b158..31a3430c4 100644
--- a/po/ikiwiki.pot
+++ b/po/ikiwiki.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-08-05 13:46-0700\n"
+"POT-Creation-Date: 2007-08-05 14:56-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -42,7 +42,7 @@ msgid "%s is not an editable page"
msgstr ""
#: ../IkiWiki/CGI.pm:429 ../IkiWiki/Plugin/brokenlinks.pm:24
-#: ../IkiWiki/Plugin/inline.pm:184 ../IkiWiki/Plugin/opendiscussion.pm:17
+#: ../IkiWiki/Plugin/inline.pm:206 ../IkiWiki/Plugin/opendiscussion.pm:17
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:99
#: ../IkiWiki/Render.pm:179
msgid "discussion"
@@ -59,11 +59,11 @@ msgstr ""
msgid "editing %s"
msgstr ""
-#: ../IkiWiki/CGI.pm:691
+#: ../IkiWiki/CGI.pm:688
msgid "You are banned."
msgstr ""
-#: ../IkiWiki/CGI.pm:723
+#: ../IkiWiki/CGI.pm:708
msgid "login failed, perhaps you need to turn on cookies?"
msgstr ""
@@ -173,29 +173,29 @@ msgstr ""
msgid "failed to determine size of image %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:36
+#: ../IkiWiki/Plugin/inline.pm:37
msgid "Must specify url to wiki with --url when using --rss or --atom"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:106
+#: ../IkiWiki/Plugin/inline.pm:128
#, perl-format
msgid "unknown sort type %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:146
+#: ../IkiWiki/Plugin/inline.pm:168
msgid "Add a new post titled:"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:161
+#: ../IkiWiki/Plugin/inline.pm:183
#, perl-format
msgid "nonexistant template %s"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:192 ../IkiWiki/Render.pm:103
+#: ../IkiWiki/Plugin/inline.pm:214 ../IkiWiki/Render.pm:103
msgid "Discussion"
msgstr ""
-#: ../IkiWiki/Plugin/inline.pm:403
+#: ../IkiWiki/Plugin/inline.pm:425
msgid "RPC::XML::Client not found, not pinging"
msgstr ""