From: tumashu1 <tumashu1@web> Date: Sat, 8 Dec 2018 08:08:38 +0000 (-0400) Subject: fail to inject IkiWiki::showform X-Git-Tag: 3.20190207~54 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/95b5ec74a915eaf71bfaaed48b590495b58f97fb fail to inject IkiWiki::showform --- diff --git a/doc/bugs/IkiWiki::showform_can_not_be_injected__63__.mdwn b/doc/bugs/IkiWiki::showform_can_not_be_injected__63__.mdwn new file mode 100644 index 000000000..fd63f3eef --- /dev/null +++ b/doc/bugs/IkiWiki::showform_can_not_be_injected__63__.mdwn @@ -0,0 +1,71 @@ +I want inject IkiWiki::showform and use replace submit button with translated button, +but it seem no effect in cgi, does IkiWiki::showfrom can not be injectd when run as cgi? + +by the way, what about add a post-showform hook to ikiwiki? + +the below is my code: + + #!/usr/bin/perl + package IkiWiki::Plugin::chinesize; + + use warnings; + use strict; + use IkiWiki 3.00; + + inject(name => 'IkiWiki::showform', call => \&myshowform); + + sub myshowform ($$$$;@) { + my $form=prepform(@_); + shift; + my $buttons=shift; + my $session=shift; + my $cgi=shift; + + my $str=cgitemplate($cgi, $form->title, + $form->render(submit => $buttons), @_); + + my %names = ("Save Page" => "ä¿å页é¢", + "Preview" => "é¢è§", + "Cancel" => "åæ¶", + "Diff" => "差弿¯è¾", + "Rename" => "éå½å", + "Remove" => "å é¤", + "Login" => "ç»å½", + "Register" => "注å", + "Logout" => "éåº", + "Setup" => "设置", + "Users" => "ææç¨æ·", + "Name" => "ç¨æ·å", + "Password" => "å¯ç ", + "Email" => "çµåé®ä»¶", + "Save Preferences" => "ä¿åé项", + "Confirm Password" => "忬¡è¾å ¥å¯ç ", + "Create Account" => "åå»ºå¸æ·", + "Reset Password" => "éç½®å¯ç ", + "Insert Links" => "æå ¥é¾æ¥", + "Rename Attachment" => "éå½åéä»¶", + "Remove Attachments" => "å é¤éä»¶", + "FormattingHelp" => "æ ¼å¼å¸®å©", + "Reset" => "éç½®", + "Save Setup" => "ä¿å设置", + "Advanced Mode" => "é«çº§æ¨¡å¼", + "Account Creation Password" => "请è¾å ¥å¸æ·å建å¯ç (管çåé¢è®¾)" + ); + + foreach my $old_name (keys(%names)) + { + my $new_name = Encode::decode_utf8($names{$old_name}); + $str =~ s/<input +id="([_A-Za-z0-9]+)" +name="([_A-Za-z0-9]+)" +type="([_A-Za-z0-9]+)" +value="($old_name)" +\/>/<button id="$1" name="$2" type="$3" value="$4">$new_name<\/button>/g; + $str =~ s/<input +name="([_A-Za-z0-9]+)" +type="([_A-Za-z0-9]+)" +value="($old_name)" +\/>/<button name="$1" type="$2" value="$3">$new_name<\/button>/g; + $str =~ s/<input +class="([_A-Za-z0-9]+)" +id="([_A-Za-z0-9]+)" +name="([_A-Za-z0-9]+)" +type="([_A-Za-z0-9]+)" +value="($old_name)" +\/>/<button class="$1" id="$2" name="$3" type="$4" value="$5">$new_name<\/button>/g; + $str =~ s/<div class="([_A-Za-z0-9]+)" id="([_A-Za-z0-9]+)">$old_name<\/div>/<div class="$1" id="$2">$new_name<\/div>/g; + $str =~ s/<div class="([_A-Za-z0-9]+)" id="([_A-Za-z0-9]+)"><span class="([_A-Za-z0-9]+)">$old_name<\/span><\/div>/<div class="$1" id="$2"><span class="$3">$new_name<\/span><\/div>/g; + $str =~ s/<a href="\.\/ikiwiki\/formatting\/">($old_name)<\/a>/<a href="\.\/ikiwiki\/formatting\/">$new_name<\/a>/g; + }; + + printheader($session); + print $str + + } + +