[Pyukiwiki-cvs 0008473] CVS update: PyukiWiki-Devel-UTF8/plugin

Back to archive index

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 ? "&amp;lang=$::lang" : "";
+	my $url="$::basehref?cmd=tb&amp;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','');">&lt;br&gt;</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:$_;">&nbsp;</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', "&lt;BR&gt;");
+	$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;">&nbsp;&nbsp;</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 '') {



Pyukiwiki-cvs メーリングリストの案内
Back to archive index