PyukiWiki CVS Commit
pyuki****@lists*****
2012年 3月 16日 (金) 01:30:59 JST
Index: PyukiWiki-Devel-UTF8/plugin/blog.inc.pl diff -u /dev/null PyukiWiki-Devel-UTF8/plugin/blog.inc.pl:1.1 --- /dev/null Fri Mar 16 01:30:59 2012 +++ PyukiWiki-Devel-UTF8/plugin/blog.inc.pl Fri Mar 16 01:30:59 2012 @@ -0,0 +1,476 @@ +###################################################################### +# +# ããã°ãã©ã°ã¤ã³ +# +# #blog(mode,[ãã¼ã¹ãã¼ã¸å],[ã«ãã´ãªãã¼ã¹ãã¼ã¸]) +# +# mode : navi, top, newpage +# +###################################################################### + +use strict; + +$blog::inputdate_format="Y-M-D" + if(!defined($blog::inputdate_format)); + +$blog::date_format=$::date_format + if(!defined($blog::date_format)); + +$blog::comment_plugin="#comment" + if(!defined($blog::comment_plugin)); + +if($::_exec_plugined{exdate} ne '') { + # exdateãå°å ¥ããã¦ããæ ( ) ã¯å ¨è§ã代æ¿æå㧠+ $blog::initwikiformat=<<EOM; +*&date(SGGYå¹´ZnæZjæ¥ï¼DLï¼RY RK RS RG XG SZ MG,__DATE__); +EOM + $blog::altformat="DL RY RK RG"; +} else { + # exdateãå°å ¥ããã¦ããªãæ + $calendar2::initwikiformat=<<EOM; +*&date(Y-n-j[lL],__DATE__); +EOM + $calendar2::altformat="[lL]"; +} + +$blog::subjectcols=60 + if(!defined($blog::subjectcols)); + +$blog::categorycols=30 + if(!defined($blog::categorycols)); + +sub plugin_blog_convert { + my($arg)=shift; + my($mode, $basepage, $categorypage)=split(/,/,$arg); + + $basepage=$::resource{blog_plugin_basepage_title} if($basepage eq ''); + $categorypage=$::resource{blog_plugin_categorypage_title} if($basepage eq ''); + return "test"; +} + +sub plugin_blog_edit_new { + my($basepage, $catepage)=@_; + if (1 == &exist_plugin('edit')) { + my $initwiki_format= &code_convert(\$blog::initwikiformat,$::kanjicode,$::defaultcode); + $initwiki_format=~s/__DATE__/@{[&date("Y\/m\/d")]}/g; + my %mode; + $mode{blog}=1; + $mode{category}="test\ttest"; + $::form{basepage}=$basepage eq '' ? ($::form{mypage} eq '' ? $::resource{blog_plugin_basepage_title} : $::form{mypage}) : $basepage; + $::form{catepage}=$catepage eq '' ? $::resource{blog_plugin_categorypage_title} : $catepage; + my $body .= &plugin_edit_editform( + $initwiki_format,"", %mode); + if($::newpage_auth eq 1) { + %::resource = &read_resource("$::res_dir/adminedit.$::lang.txt", %::resource); + $body = qq(<p><strong>$::resource{adminedit_plugin_passwordneeded}</strong></p>) . $body; + } + return('msg'=>"blog_plugin", 'body'=>$body); + } +} + +sub plugin_blog_action { + my($mode)=shift; + return('msg'=>"blog_plugin", 'body'=>"test-$::form{mode}"); + +} +1; +__END__ +blog_plugin_basepage_title=æ¥è¨ +blog_plugin_categorypage_title=ã«ãã´ãªã¼ +blog_plugin_input_subject=ã¿ã¤ãã« +blog_plugin_input_category=ã«ãã´ãªã¼ +blog_plugin_input_trackbackurl=ãã©ãã¯ããã¯URL + +blog_plugin_error_nomessage=æ¬æãããã¾ããã +blog_plugin_error_nosubject=ã¿ã¤ãã«ãããã¾ããã +blog_plugin_error_nocategory=ã«ãã´ãªã¼ãããã¾ããã +blog_plugin_error_dateformat=æ¥ä»ã®æ¸å¼ãéãã¾ãã +blog_plugin_error_date=åå¨ããªãæ¥ä»ã«ãªã£ã¦ãã¾ãã +blog_plugin_error_exist=ãã¼ã¸ãæ¢ã«åå¨ãã¾ããã¿ã¤ãã«ãå¤æ´ãã¦ä¸ããã + +blog_plugin_error_msg_selcategory=ã¾ãã¯ä»¥ä¸ããé¸æ + + +$tb::date_long_format= "Y-m-d(lL) H:i:s" + if(!defined($tb::date_long_format)); + +$tb::waitpost=3*60 + if(!defined($tb::waitpost)); + +sub plugin_tb_action { + my $path="$::res_dir/trackback.$::lang.txt"; + %::resource = &read_resource($path,%::resource) if(-r $path); + + if($ENV{REQUEST_METHOD} eq "GET") { + if($::form{__mode} eq "view") { + my %ret=&plugin_tb_get_view; + return('msg'=>$ret{msg}, 'body'=>$ret{body}); + } elsif($::form{__mode} eq "rss") { + } else { + return('msg'=>$::resource{trackback_plugin_title}, 'body'=>$::resource{trackback_plugin_parmerr}); + } + } elsif($ENV{REQUEST_METHOD} eq "POST") { + my %ret=&plugin_tb_post; + return('msg'=>$ret{msg}, 'body'=>$ret{body}); + } +} + +sub plugin_tb_get_view { + return('msg'=>"\t$::resource{trackback_plugin_title}",'body'=>$::resource{trackback_plugin_notload}) + if ($trackback::directory eq ''); + + &dbopen($trackback::directory,\%::trackbackbase); + my @pagelist; + my %trackbacks; + if($::form{tb_id} ne '') { + my $tbpage=&tb_id2page($::form{tb_id}); + $trackback::md5pagename=$::form{tb_id}; + if(&chkpage($tbpage) eq 0) { + my $tmp=$::trackbackbase{$tbpage}; + if($tmp ne '') { + return('msg'=>"\t$::resource{trackback_plugin_title}",'body'=>$::resource{trackbackplugin_notcompatible}) + if($tmp!~/,/); + } + my $title=$::resource{trackbackplugin_pagelist}; + $title=~s/\$PAGE/\[\[$tbpage\]\]/g; + my $wiki=<<EOM; +*$title +---- +EOM + $wiki.=&plugin_tb_add($::trackbackbase{$tbpage},$tbpage,'+',1); + my $html="\n" . &text_to_html($wiki); + $html.=&plugin_tb_displaylink; + return('msg'=>"\t$::resource{trackback_plugin_title}",'body'=>$html); + } else { + return('msg'=>"\t$::resource{trackback_plugin_title}",'body'=>$::resource{trackback_plugin_cantdisplay} . " "); + } + } else { + foreach my $tbpage (keys %::trackbackbase) { + my $tmp=$::trackbackbase{$tbpage}; + if($tmp ne '') { + return('msg'=>"\t$::resource{trackback_plugin_title}",'body'=>$::resource{trackbackplugin_notcompatible}) + if($tmp!~/,/); + push(@pagelist,$tbpage); + $trackbacks{$tbpage}=$tmp; + } + } + my $wikitop=<<EOM; +*$::resource{trackbackplugin_allpagelist} +---- +EOM + my $wiki; + @pagelist=sort @pagelist; + foreach my $page(@pagelist) { + next if(&chkpage($page) eq 1); + + $wiki.=<<EOM; +**[[$page>$page]] +EOM + $wiki.=&plugin_tb_add($::trackbackbase{$page},$page,'+',1); + $wiki.="----\n"; + } + $wiki=~s/\-\-\-\-\n$//g; + my $query=&htmlspecialchars($ENV{QUERY_STRING}); + my $html=&text_to_html("$wikitop\ntrackbackdummycontents\n----\n$wiki"); + my $contents=&plugin_contents_main("?$query", split(/\n/, "$wikitop\n$wiki")); + $html=~s/trackbackdummycontents/$contents/g; + return('msg'=>"\t$::resource{trackback_plugin_title}",'body'=>$html); + } +} + +sub plugin_tb_add { + my($tb,$page,$ch,$flg,$maxcount)=@_; + my $wiki; + + return "" if(&chkpage($::pushedpage eq "" ? $page : $page) eq 1); + + my @tb=reverse split(/\n/,$tb); + if($tb eq '' && $flg eq 1) { + my $title=$::resource{trackbackplugin_nodata}; + $title=~s/\$PAGE/\[\[$page\]\]/g; + return $title; + } + my $count=0; + foreach my $line(@tb) { + last if($maxcount+0 ne 0 && $count++ >= $maxcount+0); + my($time,$url,$title,$except,$blog_name,$remote_host)=split(/,/,$line); + my $dt=&date($tb::date_long_format, $time); + $except=~s/^\s+$//g; + $wiki.=<<EOM; +$ch\[[$title>$url]]@{[$blog_name ne '' ? " $blog_name" : ""]} &new{$dt};@{[$except ne '' ? "&br;" : ""]} +EOM + $wiki.="$except\n" if($except ne ''); + } + return $wiki; +} + +sub plugin_tb_post { + my $tb_url=$::form{url}; + &load_module("Nana::HTTP"); + &plugin_tb_post_xml("notbid") if($::form{tb_id} eq ''); + &plugin_tb_post_xml("nourl") if($::form{url}!~/$::isurl/); + &plugin_tb_post_xml("nourl") if($::form{url}!~/^https?/); + + my $http=new Nana::HTTP('plugin'=>"tb"); + my ($result, $stream) = $http->get($tb_url); + &plugin_tb_post_xml("timeout") if($result ne 0); + + $stream=~s/[\xd\xa]//g; + my $tmp=&htmlspecialchars("$::form{title}\f$::form{except}\f$::form{blog_name}"); + $tmp=~s/\,/\&x2c;/g; + $tmp=&code_convert(\$tmp, $::defaultcode); + my $chk=$tmp . &code_convert(\$stream, $::defaultcode); + my $stat=&spam_filter($chk, 1, 0, 0, 1); + &plugin_tb_post_xml($stat) if($stat ne ""); + &plugin_tb_post_xml("nohtml") if($stream!~/<[Tt][Ii][Tt][Ll][Ee]/); + &plugin_tb_post_xml("nohtml") if($stream!~/<[Hh][Tt][Mm][Ll]/); + + my($tb_title, $tb_except, $tb_blog_name, $tb_http_body)=split(/\f/,$tmp); + if($tb_title eq '') { + my $title=$tb_http_body; + if($title=~/[Tt][Ii][Tt][Ll][Ee]/) { + $title=~s/<\/[Tt][Ii][Tt][Ll][Ee]>.*//g; + $title=~s/.*<[Tt][Ii][Tt][Ll][Ee](.+?)>//g; + $title=~s/.*<[Tt][Ii][Tt][Ll][Ee]>//g; + $tb_title=$title; + } + } + &plugin_tb_post_xml("notitle") if($tb_title eq ''); + + &dbopen($trackback::directory,\%::trackbackbase); + + foreach my $tbpage(keys %::trackbackbase) { + $::form{url}=~ m!(https?:)?(//)?([^:/]*)?(:([ 0-9]+)?)?(/.*)?!; + my $host=$3; + my $tb = $::trackbackbase{$tbpage}; + foreach my $line(split(/\n/,$tb)) { + my($time,$url,$title,$except,$blog_name,$remote_host)=split(/,/,$line); + $url=~ m!(https?:)?(//)?([^:/]*)?(:([ 0-9]+)?)?(/.*)?!; + my $_host=$3; + &plugin_tb_post_xml("wait") + if(time < $time + $tb::waitpost && $host eq $_host); + } + } + my $tbpage=&tb_id2page($::form{tb_id}); + if($tbpage=~/SandBox|$::resource{help}|$::resource{rulepage}|$::MenuBar|$::non_list/ + || $::meta_keyword eq "" || lc $::meta_keyword eq "disable" + || &is_readable($tbpage) eq 0) { + &plugin_tb_post_xml("ignorepage"); + } + + my $tb = $::trackbackbase{$tbpage}; + foreach my $line(split(/\n/,$tb)) { + my($time,$url,$title,$except,$blog_name,$remote_host)=split(/,/,$line); + my $_url=$url; + my $_tb_url=$tb_url; + &plugin_tb_post_xml("exist") if($_url eq $_tb_url); + + $_url="$url/"; + &plugin_tb_post_xml("exist") if($_url eq $_tb_url); + + $_url="$url"; + $_tb_url="$tb_url/"; + &plugin_tb_post_xml("exist") if($_url eq $_tb_url); + + $_url=$url; + $_url=~s/\/$//g; + $_tb_url=$tb_url; + &plugin_tb_post_xml("exist") if($_url eq $_tb_url); + + $_url=$url; + $_tb_url="$tb_url"; + $_tb_url=~s/\/$//g; + &plugin_tb_post_xml("exist") if($_url eq $_tb_url); + } + my $mailbody=<<EOM; +$tb_url +$tb_title +$tb_except +$tb_blog_name +EOM + &send_mail_to_admin($tbpage, "Trackback", $mailbody); + + my $tb_time=time; + $tb.=<<EOM; +$tb_time,$tb_url,$tb_title,$tb_except,$tb_blog_name,$ENV{REMOTE_ADDR} +EOM + $::trackbackbase{$tbpage}=$tb; + &plugin_tb_post_xml("ok"); +} + +sub plugin_tb_post_xml { + my ($stat)=@_; + my $xml; + my %tb_err=( + "notbid"=>"No trackback ID", + "timeout"=>"Timeout", + "notitle"=>"Not found html title", + "exist"=>"Exist trackback", + "wait"=>"Waiting", + "nourl"=>"Not URL", + "spam"=>"Forbidden", + "Over http"=>"Forbidden", + "Over Mail"=>"Forbidden", + "No Japanese"=>"Forbidden", + "nohtml"=>"No html", + "ignorepage"=>"Forbidden", + ); + if($stat eq "ok") { + $xml=<<EOM; +<?xml version="1.0" encoding="UTF-8" ?> +<response><error>0</error></response> +EOM + } else { + $xml=<<EOM; +<?xml version="1.0" encoding="iso-8859-1" ?> +<response> +<error>1</error> +<message>$tb_err{$stat}</message> +</response> +EOM + } + print &http_header( + "Content-type: text/xml; charset=$::charset"); + print $xml; + exit; +} + +sub plugin_tb_convert { + my ($args)=@_; + my @arg=split(/,/,$args); + my $html; + + my $flg=0; + foreach(@logs::allowcmd) { + $flg=1 if($_ eq $::form{cmd}); + } + return ' ' if($flg eq 0); + $html.=&plugin_tb_displaylink; + my $showflg=0; + my $displayflg=0; + foreach(@arg) { + $showflg=1 if($_=~/show/); + $displayflg=1 if($_=~/all/); + } + $html.=&plugin_tb_displaytrackback($displayflg) if($showflg eq 1); + return $html . ' '; +} + +sub plugin_tb_displaylink { + my $langflg=$::_exec_plugined{lang} eq 2 ? "&lang=$::lang" : ""; + my $url="$::basehref?cmd=tb&tb_id=$trackback::md5pagename$langflg"; + my $linkstr; + return "" if(&chkpage($::pushedpage eq '' ? $::form{mypage} : $::pushedpage)); + + if($ENV{HTTP_USER_AGENT} =~ /MSIE/) { + $linkstr=$::resource{trackback_plugin_link_MSIE}; + } else { + $linkstr=$::resource{trackback_plugin_link}; + } + $linkstr=~s/\$URL/$url/g; + return "$linkstr"; +} + +sub plugin_tb_displaytrackback { + my($flg)=@_; + &dbopen($trackback::directory,\%::trackbackbase); + my $myp=$::pushedpage eq '' ? $::form{mypage} : $::pushedpage; + return "" if(&chkpage($myp)); + + my $trackbacks=&text_to_html(&plugin_tb_add($::trackbackbase{$myp}, $myp, '-',$flg,10)); + my $html=$::resource{trackback_plugin_linklist}; + $html=~s/\$LINK/$trackbacks/g; + &dbclose(\%::trackbackbase); + return $html; +} + +sub plugin_time_convert { + return &plugin_time_inline(@_); +} + +sub plugin_time_inline { + my ($format,$time) = split(/,/, shift); + my ($h,$m,$s); + + $format=&htmlspecialchars($format); + $time=&htmlspecialchars($time); + + if($format eq '') { + return &date($::time_format); + } + $time=time if($time eq ''); + + if($time=~/\:/) { + my($sec, $min, $hour, $mday, $mon, $year,$wday, $yday, $isdst) = localtime; + ($h,$m,$s)=split(/\:/,$time); + $time=Time::Local::timelocal($s,$m,$h,$mday,$mon,$year); + } + return &date($format,$time); +} + +1; +__END__ +=head1 NAME + +tb.inc.pl - PyukiWiki Plugin + +=head1 SYNOPSIS + + ?cmd=tb&tb_id=(trackback id page) [ & __mode=(view|rss)] [ & lang=(language)] + #tb + #tb(show) + #tb(all) + #tb(showall) + +=head1 DESCRIPTION + +Trackback process. + +=head1 SEE ALSO + +=over 4 + +=item PyukiWiki/Plugin/Standard/tb + +L<http://pyukiwiki.sfjp.jp/PyukiWiki/Plugin/Standard/tb/> + +=item PyukiWiki/Plugin/Explugin/trackback + +L<http://pyukiwiki.sfjp.jp/PyukiWiki/Plugin/Explugin/trackback/> + +=item PyukiWiki CVS + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel/plugin/tb.inc.pl?view=log> + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel-UTF8/plugin/tb.inc.pl?view=log> + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel/lib/trackback.inc.pl?view=log> + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel-UTF8/lib/trackback.inc.pl?view=log> + +=head1 AUTHOR + +=over 4 + +=item Nanami + +L<http://nanakochi.daiba.cx/> etc... + +=item PyukiWiki Developers Team + +L<http://pyukiwiki.sfjp.jp/> + +=back + +=head1 LICENSE + +Copyright (C) 2005-2012 by Nanami. + +Copyright (C) 2005-2012 by PyukiWiki Developers Team + +License is GNU GENERAL PUBLIC LICENSE 3 and/or Artistic 1 or each later version. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=cut Index: PyukiWiki-Devel-UTF8/plugin/edit.inc.pl diff -u PyukiWiki-Devel-UTF8/plugin/edit.inc.pl:1.319 PyukiWiki-Devel-UTF8/plugin/edit.inc.pl:1.320 --- PyukiWiki-Devel-UTF8/plugin/edit.inc.pl:1.319 Thu Mar 15 11:18:26 2012 +++ PyukiWiki-Devel-UTF8/plugin/edit.inc.pl Fri Mar 16 01:30:59 2012 @@ -1,6 +1,6 @@ -####################################################################### +###################################################################### # edit.inc.pl - This is PyukiWiki, yet another Wiki clone. -# $Id: edit.inc.pl,v 1.319 2012/03/15 02:18:26 papu Exp $ +# $Id: edit.inc.pl,v 1.320 2012/03/15 16:30:59 papu Exp $ # # "PyukiWiki" ver 0.2.0-p3-dev1 $$ # Author: Nekyo http://nekyo.qp.land.to/ @@ -59,12 +59,18 @@ my $frozen = &is_frozen($::form{mypage}); my $body = ''; - if ($::extend_edit) { - $::IN_HEAD.=qq(<script type="text/javascript" src="$::skin_url/instag.js"></script>\n); + # 0.2.0-p3 split to edit_extend.inc.pl # comment + if ($::extend_edit && -f "$::plugin_dir/edit_extend.inc.pl") { + require "$::plugin_dir/edit_extend.inc.pl"; + &plugin_edit_extend_edit_init; + } else { + $::extend_edit=0; } my $edit = $mode{admin} ? 'adminedit' : 'edit'; - if($edit eq 'adminedit') { + $edit = $mode{blog} && $::newpage_auth eq 1 ? 'adminedit' : $edit; + + if($edit eq 'adminedit' || $mode{blog} && $::newpage_auth eq 1) { %auth=&authadminpassword("input",$::resource{admin_passwd_prompt_msg},"frozen"); } if($::pukilike_edit > 1 && $::form{template} ne '') { @@ -102,11 +108,14 @@ } } my $escapedmypage = &htmlspecialchars($::form{mypage}); - $body.=&plugin_edit_extend_edit if ($::extend_edit); $body.=$::pukilike_edit >0 - ? &plugin_edit_editform_pukilike($mymsg,$conflictchecker,$escapedmypage,$frozen,$edit,$edit eq 'adminedit' ? $auth{crypt} : 0,%mode) - : &plugin_edit_editform_pyukiwiki($mymsg,$conflictchecker,$escapedmypage,$frozen,$edit,$edit eq 'adminedit' ? $auth{crypt} : 0,%mode); + ? &plugin_edit_editform_pukilike( + $mymsg,$conflictchecker,$escapedmypage,$frozen,$edit, + $edit eq 'adminedit' || $::newpage_auth eq 1 ? $auth{crypt} : 0,%mode) + : &plugin_edit_editform_pyukiwiki( + $mymsg,$conflictchecker,$escapedmypage,$frozen,$edit, + $edit eq 'adminedit' || $::newpage_auth eq 1 ? $auth{crypt} : 0,%mode); unless ($mode{conflict}) { if(&is_exist_page($::resource{rulepage})) { @@ -153,16 +162,38 @@ } # changed 0.2.0 Javascript crypt password # comment + # changed 0.2.0-p3 support blog # comment + my $category_array; + if($mode{category} ne '') { + $category_array=<<EOM; +<select name="selcategory" onchange="addcategory()"> +<option value="">$::resource{blog_plugin_error_msg_selcategory}</option> +EOM + foreach(split(/\t/,$mode{category})) { + $category_array.=<<EOM; +<option value="$_">$_</option> +EOM + } + $category_array.=<<EOM; +</select> +EOM + } + my $blog=$mode{blog} ? "blog_" : ""; my $body = <<"EOD"; <form action="$::script" method="post" id="editform" name="editform"> - @{[$mode{admin} ? "$auth{html}<br />" : ""]} + @{[$mode{admin} || $mode{blog} && $::newpage_auth ? "$auth{html}<br />" : ""]} <input type="hidden" name="myConflictChecker" value="$conflictchecker" /> <input type="hidden" name="mypage" value="$escapedmypage" /> <input type="hidden" name="refer" value="$::form{refer}" /> <input type="hidden" name="refercmd" value="$edit" /> + @{[$mode{blog} ? qq($::resource{blog_plugin_input_subject} : <input name="subject" value="" size="$blog::subjectcols" /><br />) : ""]} + @{[$mode{blog} ? qq($::resource{blog_plugin_input_category} : <input name="category" value="" size="$blog::categorycols" /> $category_array ) : ""]} + @{[$mode{blog} ? qq(<input type="hidden" name="basepage" value="$::form{basepage}" />) : ""]} + @{[$mode{blog} ? qq(<input type="hidden" name="catepage" value="$::form{catepage}" />) : ""]} + @{[$::extend_edit ? &plugin_edit_extend_edit : ""]} $partfield $loadlist - <textarea cols="$::cols" rows="$::rows" name="mymsg">@{[&plugin_edit_crlfconv(&htmlspecialchars($mymsg,1))]}</textarea><br /> + <textarea cols="$::cols" rows="$::rows" name="mymsg" id="mymsg">@{[&plugin_edit_crlfconv(&htmlspecialchars($mymsg,1))]}</textarea><br /> @{[ $mode{admin} ? qq( @@ -176,20 +207,20 @@ qq( <span id="submitbutton"></span> <script type="text/javascript"><!-- - d.getElementById("submitbutton").innerHTML='<input type="hidden" name="mypreviewjs_$edit" value="" /><input type="hidden" name="mypreviewjs_write" value="" /><input type="hidden" name="mypreviewjs_cancel" value="" /><input type="button" name="mypreviewjs_button_$edit" value="$::resource{edit_plugin_previewbutton}" onclick="editpost(0);" onkeypress="editpost(0,event);" /><input type="button" name="mypreviewjs_button_write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" onclick="editpost(1);" onkeypress="editpost(1,event);" /><input type="checkbox" name="mytouchjs" id="mytouchjs" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch}<input type="button" name="mypreviewjs_button_cancel" value="$::resource{edit_plugin_cancelbutton}" onclick="editpost(2);" onkeypress="editpost(2,event);" />'; + d.getElementById("submitbutton").innerHTML='<input type="hidden" name="mypreviewjs_$blog$edit" value="" /><input type="hidden" name="mypreviewjs_@{[$blog]}write" value="" /><input type="hidden" name="mypreviewjs_@{[$blog]}cancel" value="" /><input type="button" name="mypreviewjs_button_$edit" value="$::resource{edit_plugin_previewbutton}" onclick="editpost(0);" onkeypress="editpost(0,event);" /><input type="button" name="mypreviewjs_button_write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" onclick="editpost(1);" onkeypress="editpost(1,event);" /><input type="checkbox" name="mytouchjs" id="mytouchjs" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch}<input type="button" name="mypreviewjs_button_cancel" value="$::resource{edit_plugin_cancelbutton}" onclick="editpost(2);" onkeypress="editpost(2,event);" />'; //--></script> <noscript> - <input type="submit" name="mypreview_$edit" value="$::resource{edit_plugin_previewbutton}" /> - <input type="submit" name="mypreview_write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" /> + <input type="submit" name="mypreview_$blog$edit" value="$::resource{edit_plugin_previewbutton}" /> + <input type="submit" name="mypreview_@{[$blog]}write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" /> <input type="checkbox" name="mytouch" id="mytouch" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch} - <input type="submit" name="mypreview_cancel" value="$::resource{edit_plugin_cancelbutton}" /> + <input type="submit" name="mypreview_@{[$blog]}cancel" value="$::resource{edit_plugin_cancelbutton}" /> </noscript> ) : qq( - <input type="submit" name="mypreview_$edit" value="$::resource{edit_plugin_previewbutton}" /> - <input type="submit" name="mypreview_write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" /> + <input type="submit" name="mypreview_$blog$edit" value="$::resource{edit_plugin_previewbutton}" /> + <input type="submit" name="mypreview_@{[$blog]}write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" /> <input type="checkbox" name="mytouch" id="mytouch" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch} - <input type="submit" name="mypreview_cancel" value="$::resource{edit_plugin_cancelbutton}" /> + <input type="submit" name="mypreview_@{[$blog]}cancel" value="$::resource{edit_plugin_cancelbutton}" /> ) ]} </form> @@ -280,15 +311,37 @@ } # changed 0.2.0 Javascript crypt password # comment + # changed 0.2.0-p3 support blog # comment + my $category_array; + if($mode{category} ne '') { + $category_array=<<EOM; +<select name="selcategory" onchange="addcategory()"> +<option value="">$::resource{blog_plugin_error_msg_selcategory}</option> +EOM + foreach(split(/\t/,$mode{category})) { + $category_array.=<<EOM; +<option value="$_">$_</option> +EOM + } + $category_array.=<<EOM; +</select> +EOM + } + my $blog=$mode{blog} ? "blog_" : ""; my $body= <<"EOD"; <form action="$::script" method="post" id="editform" name="editform"> - @{[ $mode{admin} ? "$auth{html}<br />" : ""]} + @{[$mode{admin} || $mode{blog} && $::newpage_auth ? "$auth{html}<br />" : ""]} <input type="hidden" name="myConflictChecker" value="$conflictchecker" /> <input type="hidden" name="mypage" value="$escapedmypage" /> <input type="hidden" name="refer" value="$::form{refer}" /> <input type="hidden" name="refercmd" value="$edit" /> + @{[$mode{blog} ? qq($::resource{blog_plugin_input_subject} : <input name="subject" value="" size="$blog::subjectcols" /><br />) : ""]} + @{[$mode{blog} ? qq($::resource{blog_plugin_input_category} : <input name="category" value="" size="$blog::categorycols" /> $category_array ) : ""]} + @{[$mode{blog} ? qq(<input type="hidden" name="basepage" value="$::form{basepage}" />) : ""]} + @{[$mode{blog} ? qq(<input type="hidden" name="catepage" value="$::form{catepage}" />) : ""]} + @{[$::extend_edit ? &plugin_edit_extend_edit : ""]} $partfield - <textarea cols="$::cols" rows="$::rows" name="mymsg">@{[&plugin_edit_crlfconv(&htmlspecialchars($mymsg,1))]}</textarea><br /> + <textarea cols="$::cols" rows="$::rows" name="mymsg" id="mymsg">@{[&plugin_edit_crlfconv(&htmlspecialchars($mymsg,1))]}</textarea><br /> @{[ $mode{admin} ? qq( @@ -302,18 +355,18 @@ qq( <span id="submitbutton"></span> <script type="text/javascript"><!-- - d.getElementById("submitbutton").innerHTML='<input type="hidden" name="mypreviewjs_$edit" value="" /><input type="hidden" name="mypreviewjs_write" value="" /><input type="checkbox" name="mytouchjs" id="mytouchjs" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch}<br /><input type="button" name="mypreviewjs_button_$edit" value="$::resource{edit_plugin_previewbutton}" onclick="editpost(0);" onkeypress="editpost(0,event);" /><input type="button" name="mypreviewjs_button_write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" onclick="editpost(1);" onkeypress="editpost(1,event);" />'; + d.getElementById("submitbutton").innerHTML='<input type="hidden" name="mypreviewjs_@{[$blog]}$edit" value="" /><input type="hidden" name="mypreviewjs_@{[$blog]}write" value="" /><input type="checkbox" name="mytouchjs" id="mytouchjs" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch}<br /><input type="button" name="mypreviewjs_button_$edit" value="$::resource{edit_plugin_previewbutton}" onclick="editpost(0);" onkeypress="editpost(0,event);" /><input type="button" name="mypreviewjs_button_write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" onclick="editpost(1);" onkeypress="editpost(1,event);" />'; //--></script> <noscript> <input type="checkbox" name="mytouch" id="mytouch" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch}<br /> - <input type="submit" name="mypreview_$edit" value="$::resource{edit_plugin_previewbutton}" /> - <input type="submit" name="mypreview_write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" /> + <input type="submit" name="mypreview_$blog$edit" value="$::resource{edit_plugin_previewbutton}" /> + <input type="submit" name="mypreview_@{[$blog]}write" value="@{[$::resource{edit_plugin_pukiwikisavebutton} eq '' ? $::resource{edit_plugin_savebutton} : $::resource{edit_plugin_pukiwikisavebutton}]}" /> </noscript> ) : qq( <input type="checkbox" name="mytouch" id="mytouch" value="on"@{[&mytouchcheck]} />$::resource{edit_plugin_touch}<br /> - <input type="submit" name="mypreview_$edit" value="$::resource{edit_plugin_previewbutton}" /> - <input type="submit" name="mypreview_write" value="$::resource{edit_plugin_savebutton}" /><br /> + <input type="submit" name="mypreview_$blog$edit" value="$::resource{edit_plugin_previewbutton}" /> + <input type="submit" name="mypreview_@{[$blog]}write" value="$::resource{edit_plugin_savebutton}" /><br /> ) ]} </form> @@ -321,46 +374,6 @@ return $body; } -sub plugin_edit_extend_edit { - my $body; - $body = <<"EOD"; -<div> -<a href="javascript:insTag('\\'\\'','\\'\\'','bold');"><b>B</b></a> -<a href="javascript:insTag('\\'\\'\\'','\\'\\'\\'','italic');"><i>I</i></a> -<a href="javascript:insTag('%%%','%%%','underline');"><ins>U</ins></a> -<a href="javascript:insTag('%%','%%','delline');"><del>D</del></a> -<a href="javascript:insTag('\\n-','','list');"> -<img src="$::image_url/list_ex.png" alt="list" border="0" vspace="0" - hspace="1" /></a> -<a href="javascript:insTag('\\n+','','list');"> -<img src="$::image_url/numbered.png" alt="list" border="0" vspace="0" - hspace="1" /></a> -<a href="javascript:insTag('\\nCENTER:','\\n','centering');"> -<img src="$::image_url/center.png" alt="center" border="0" vspace="0" - hspace="1" /></a> -<a href="javascript:insTag('\\nLEFT:','\\n','left');"> -<img src="$::image_url/left_just.png" alt="left" border="0" vspace="0" - hspace="1" /></a> -<a href="javascript:insTag('\\nRIGHT:','\\n','right');"> -<img src="$::image_url/right_just.png" alt="right" border="0" vspace="0" - hspace="1" /></a> -<a href="javascript:insTag('\\n*','','title');"><b>H</b></a> -<a href="javascript:insTag('[[',']]','wikipage');">[[]]</a> -<a href="javascript:insTag('','~\\n','');"><br></a> -<a href="javascript:insTag('\\n----\\n','','');"><b>--</b></a> -<a href="javascript:insTag('&size(20){','};','big');"><b>BIG</b></a> -EOD - foreach("black", "red", "green", "blue") { - $body.=<<EOD; -<a href="javascript:insTag('&color($_){','};','$_');"><span style="color:$_;backgroud-color:$_;"> </span></a> -EOD - } - $body.=<<EOD; -</div> -EOD - return $body; -} - sub plugin_edit_crlfconv { my ($msg)=shift; $msg=~s/\x0D\x0A|\x0D|\x0A/\&\#13;\&\#10;/g; Index: PyukiWiki-Devel-UTF8/plugin/edit_extend.inc.pl diff -u /dev/null PyukiWiki-Devel-UTF8/plugin/edit_extend.inc.pl:1.1 --- /dev/null Fri Mar 16 01:30:59 2012 +++ PyukiWiki-Devel-UTF8/plugin/edit_extend.inc.pl Fri Mar 16 01:30:59 2012 @@ -0,0 +1,256 @@ +####################################################################### +# edit_extend.inc.pl - This is PyukiWiki, yet another Wiki clone. +# $Id: edit_extend.inc.pl,v 1.1 2012/03/15 16:30:59 papu Exp $ +# +# "PyukiWiki" ver 0.2.0-p3-dev1 $$ +# Author: Nanami http://nanakochi.daiba.cx/ +# Copyright (C) 2004-2012 Nekyo +# http://nekyo.qp.land.to/ +# Copyright (C) 2005-2012 PyukiWiki Developers Team +# http://pyukiwiki.sfjp.jp/ +# Based on YukiWiki http://www.hyuki.com/yukiwiki/ +# Powerd by PukiWiki http://pukiwiki.sfjp.jp/ +# License: GPL3 and/or Artistic or each later version +# +# This program is free software; you can redistribute it and/or +# modify it under the same terms as Perl itself. +# Return:LF Code=UTF-8 1TAB=4Spaces +###################################################################### + +use strict; + +sub plugin_edit_extend_edit_init { + %::resource=&read_resource("$::res_dir/edit_extend.$::lang.txt", %::resource); + $::IN_HEAD.=qq(<link rel="stylesheet" href="$::skin_url/instag.css" type="text/css" media="screen" charset="utf-8"> +\n); + $::IN_HEAD.=qq(<script type="text/javascript" src="$::skin_url/jquery.js"></script>\n); + $::IN_HEAD.=qq(<script type="text/javascript" src="$::skin_url/instag.js"></script>\n); +} + +sub mkextend { + my($res, $first, $last, $image)=@_; + $res=$::resource{$res} if($::resource{$res} ne ''); + return <<EOM; +<a title="$res" href="javascript:insTag('$first','$last','$res');"> +@{[$image=~/$::image_extention/ + ? qq(<img src="$::image_url/$image" alt="$res" border="0" vspace="0" hspace="1" height="14" width="14" /></a>) : $image]} +EOM +} + +sub plugin_edit_extend_edit { + my $body; + $body="<div>"; + $body.=&mkextend( + "edit_plugin_instag_bold", qq(\\'\\'), qq(\\'\\'), "<strong>B</strong>"); + $body.=&mkextend( + "edit_plugin_instag_italic", qq(\\'\\'\\'), qq(\\'\\'\\'), "<i>I</i>"); + $body.=&mkextend( + "edit_plugin_instag_underline", '%%%', '%%%', "<ins>U</ins>"); + $body.=&mkextend( + "edit_plugin_instag_delline", '%%', '%%', "<del>D</del>"); + $body.=&mkextend( + "edit_plugin_instag_list_ul", '\\n-', '', "list_ex.png"); + $body.=&mkextend( + "edit_plugin_instag_list_ol", '\\n+' ,'', "numbered.png"); + $body.=&mkextend( + "edit_plugin_instag_list_center", '\\nCENTER:','\n', "center.png"); + $body.=&mkextend( + "edit_plugin_instag_list_left", '\\nLEFT:','\n', "left_just.png"); + $body.=&mkextend( + "edit_plugin_instag_list_right", '\\nRIGHT:','\n', "right_just.png"); + $body.=&mkextend( + "edit_plugin_instag_list_head", '\\n*','', "<strong>H1</strong>"); + $body.=&mkextend( + "edit_plugin_instag_list_head", '\\n**','', "<strong>H2</strong>"); + $body.=&mkextend( + "edit_plugin_instag_list_wikipage", '[[',']]', "[[]]"); + $body.=&mkextend( + "edit_plugin_instag_list_link", '[[','>http://]]', "http:://"); + $body.=&mkextend( + "edit_plugin_instag_list_ref", '#ref(',')', "attach.png"); + $body.=&mkextend( + "edit_plugin_instag_list_break", '','~\\n', "<BR>"); + $body.=&mkextend( + "edit_plugin_instag_list_hr", '\\n----\\n','', "<strong>--</strong>"); + + +if(0) { + $body.=&mkextend( + "edit_plugin_instag_list_size", '&size(20){','};', "20"); + $body.=&mkextend( + "edit_plugin_instag_list_size", '&size(30){','};', "30"); + + my @csscolorlist=split(/\|/,$::resource{edit_plugin_instag_csscolor}); + foreach(@csscolorlist) { + my ($name, $code)=split(/\#/,$_); + $body.=&mkextend( + $::resource{"edit_plugin_instag_colorname_" . lc $name} ne '' + ? $::resource{"edit_plugin_instag_colorname_" . lc $name} : $name, + "&color($name){",'};', + qq(<span style="color:$name;background-color:$name;"> </span>)); + } +} + my $teststring=$::resource{edit_plugin_instag_color_title}; + my $teststring2=$::resource{edit_plugin_instag_size_teststring}; + + # ãã©ã³ã # comment + $body.=<<EOD; +<a href="#" onclick="return false;" id="panellink4"> +<span style="font-weight: bold;">$::resource{edit_plugin_instag_font_title}</span></a> +<span class="editpanel editfontpanel" id="panelbody4"> +EOD + foreach(split(/,/,$::resource{edit_plugin_instag_fontlist})) { + $body.=<<EOD; +<a href="http://www.daiba.cx" onclick="insTag('&font(@{[$_]}){','};','font');return true;" class="jqmClose fontsample" style="font-size:$::resource{edit_plugin_instag_fontlist_samplesize}px; font-family: $_;"> +$teststring2 ($_)</a><br /> +EOD + } + $body.=<<EOD; +</a> +</span> +EOD + + # ãµã¤ãº # comment + $body.=<<EOD; +<a href="#" onclick="return false;" id="panellink3"> +<span style="font-weight: bold;">$::resource{edit_plugin_instag_size_title}</span></a> +<span class="editpanel editsizepanel" id="panelbody3"> +EOD + + foreach(split(/,/,$::resource{edit_plugin_instag_sizelist})) { + $body.=<<EOD; +<a href="#" onclick="insTag('&size(@{[$_]}px){','};','size');return false;" class="jqmClose sizesample" style="font-size:@{[$_]}px"> +$teststring2 (@{[$_]}px)</a><br /> +EOD + } + $body.=<<EOD; +</a> +</span> +EOD + + # æåè² # comment + $body.=<<EOD; +<a href="#" onclick="return false;" id="panellink1"> +<span style="font-weight: bold; color:red;">$teststring</span></a> +<span class="editpanel editcolorpicker" id="panelbody1"> +<input type="text" class="colortext" id="panel1" name="panel1" value="#000000" /> +<a href="#" onclick="insTag('&color('+gid('editform').panel1.value+'){','};','color');return false;" class="jqmClose"><span id="picker1"></span></a> +</span> +EOD + + # èæ¯è² # comment + $body.=<<EOD; +<a href="#" onclick="return false;" id="panellink2"> +<span style="font-weight: bold; color:white; background-color:red;">$teststring</span></a> +<span class="editpanel editcolorpicker" id="panelbody2"> +<input type="text" class="colortext" id="panel2" name="panel2" value="#ffffff" /> +<a href="#" onclick="insTag('&color(,'+gid('editform').panel2.value+'){','};','color');return false;" class="jqmClose"><span id="picker2"></span></a> +</span> +EOD + + # é¡æå # comment + if($::usePukiWikiStyle) { + $body.=<<EOD; +<a href="#" onclick="return false;" id="panellink5"> +<span style="font-weight: bold;">$::resource{edit_plugin_instag_face_title}</span></a> +<span class="editpanel editfacepanel" id="panelbody5"> +EOD + foreach(split(/,/,$::resource{edit_plugin_instag_face_list})) { + my $img=&text_to_html($_); + $img=~s/<p>//g; + $img=~s/<\/p>//g; + $body.=<<EOD; +<a href="#" onclick="insTag('$_','','');return false;" class="jqmClose facesample"> +$img</a> +EOD + } + $body.=<<EOD; +</a> +</span> +EOD + + } + $body.=<<EOD; +</div> +EOD + return $body; +} + +1; +__END__ + +=head1 NAME + +edit_extend.inc.pl - PyukiWiki Plugin + +=head1 SYNOPSIS + + none + +=head1 DESCRIPTION + +Extend Edit module + +This is submodule of edit.inc.pl + +=head1 SETTING + +=head 2 pyukiwiki.ini.cgi + +=over 4 + +=item $::extend_edit + +0 - Non use + +1 - PyukiWiki Compatible + +2 - New PyukiWiki Design + +=back + +=head1 SEE ALSO + +=over 4 + +=item PyukiWiki/Plugin/Standard/edit_extend + +L<http://pyukiwiki.sfjp.jp/PyukiWiki/Plugin/Standard/edit_extend/> + +=item PyukiWiki/Plugin/Standard/edit + +L<http://pyukiwiki.sfjp.jp/PyukiWiki/Plugin/Standard/edit/> + +=item PyukiWiki CVS + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel/plugin/edit_extend.inc.pl?view=log> + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel-UTF8/plugin/edit_extend.inc.pl?view=log> + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel/plugin/edit.inc.pl?view=log> + +L<http://sfjp.jp/cvs/view/pyukiwiki/PyukiWiki-Devel-UTF8/plugin/edit.inc.pl?view=log> + +=back + +=head1 AUTHOR + +=over 4 + +=item Nanami + +L<http://nanakochi.daiba.cx/> etc... + +=item PyukiWiki Developers Team + +L<http://pyukiwiki.sfjp.jp/> + +=back + +=head1 LICENSE + +=item Nanami + +L<http://nanakochi.daiba.cx/> etc... + +=cut Index: PyukiWiki-Devel-UTF8/plugin/newpage.inc.pl diff -u PyukiWiki-Devel-UTF8/plugin/newpage.inc.pl:1.317 PyukiWiki-Devel-UTF8/plugin/newpage.inc.pl:1.318 --- PyukiWiki-Devel-UTF8/plugin/newpage.inc.pl:1.317 Thu Mar 15 11:18:26 2012 +++ PyukiWiki-Devel-UTF8/plugin/newpage.inc.pl Fri Mar 16 01:30:59 2012 @@ -1,6 +1,6 @@ ###################################################################### # newpage.inc.pl - This is PyukiWiki, yet another Wiki clone. -# $Id: newpage.inc.pl,v 1.317 2012/03/15 02:18:26 papu Exp $ +# $Id: newpage.inc.pl,v 1.318 2012/03/15 16:30:59 papu Exp $ # # "PyukiWiki" ver 0.2.0-p3-dev1 $$ # Author: Nekyo http://nekyo.qp.land.to/ @@ -24,6 +24,43 @@ if($::newpage_auth eq 1) { %auth=&authadminpassword("input",$::resource{admin_passwd_prompt_msg},"frozen"); } + if($auth{authed} eq 1 || $::form{refer} ne '') { + my $refer=$::form{refer}; + my @path_array = split($::separator, $refer); + my $flg=0; + my $pathname; + my $basepage; + my $catepage; + foreach my $pagename(@path_array) { + if($pathname ne "") { + $pathname .= $::separator . $pagename; + } else { + $pathname = $pagename; + } + if($::database{$pathname}=~/(^#blog|\n#blog)/) { + $flg=1; + $basepage=$pathname; + my $tmp=$database{$pathname}; + $tmp=~/\#blog\(([^\,\)]+)\,([^\,\)]+)/; + if($2 ne '') { + $basepage=&trim($2); + } + $tmp=~/\#blog\(([^\,\)]+)\,([^\,\)]+)\,([^\,\)]+)/; + if($3 ne '') { + $basepage=&trim($2); + $catepage=&trim($3); + } + } + } + if($flg eq 1 && 1 == &exist_plugin('blog')) { + if($catepage ne '') { + return &plugin_blog_edit_new($pathname, $catepage); + } else { + return &plugin_blog_edit_new($pathname); + } + } + } + if($auth{authed} eq 1 && $::form{mypage} ne '') { if (1 == &exist_plugin('adminedit')) { if($::form{under} ne '') {