* Move blog form code out of CGI.pm and into the inline plugin.
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 5 Aug 2007 22:07:32 +0000 (22:07 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Sun, 5 Aug 2007 22:07:32 +0000 (22:07 +0000)
IkiWiki/CGI.pm
IkiWiki/Plugin/inline.pm
IkiWiki/Plugin/skeleton.pm
debian/changelog
po/ikiwiki.pot

index 144ad2198ca1d4776e219df8a3049b7a4e35e03a..d3f0203d820b71798518dbbbb82b4fb76179f2eb 100644 (file)
@@ -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?"));
        }
index 08e1f2769b8b7ca3b526e04808cd171d7ba3a2b4..5378cc9391bd98db8a621b80b647ba0198dd7676 100644 (file)
@@ -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;
index 2ea19eef928ab2513a93c9c97bf7e6d6d7688d7d..72e0887702443c3bbd9eaa95e8d8b7749c54b589 100644 (file)
@@ -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;
index 0d40a2d2e538936e7d33800ab3a6aacccd392bf1..41a9a22a6fdef823ac773c8a86707f22e7e273af 100644 (file)
@@ -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
 
index 1f7c1b15846e05ee89a383e32150abd83fb4b102..31a3430c4b93ebf2543e991f866a665934216de3 100644 (file)
@@ -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 ""