use CGI2;
use File::Copy;
use File::Path;
+use HTTP::Status;
use Wiki::DefaultStorage;
use Wiki::HTMLParser;
use vars qw($VERSION $DEBUG);
-$VERSION = '3.6.4';
+$VERSION = '3.6.5';
$DEBUG = 0;
#==============================================================================
# <p>
my $obj = $self->get_plugin_instance($self->{"handler"}->{$action});
unless(defined($obj)){
- return $self->error("ÉÔÀµ¤Ê¥¢¥¯¥·¥ç¥ó¤Ç¤¹¡£");
+ return $self->error(RC_BAD_REQUEST, "ÉÔÀµ¤Ê¥¢¥¯¥·¥ç¥ó¤Ç¤¹¡£");
}
# ´ÉÍý¼ÔÍѤΥ¢¥¯¥·¥ç¥ó
if($self->{"handler_permission"}->{$action}==0){
my $login = $self->get_login_info();
if(!defined($login)){
- return $self->error("¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
+ return $self->error(RC_FORBIDDEN, "¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
} elsif($login->{type}!=0){
- return $self->error("´ÉÍý¼Ô¸¢¸Â¤¬É¬ÍפǤ¹¡£");
+ return $self->error(RC_FORBIDDEN, "´ÉÍý¼Ô¸¢¸Â¤¬É¬ÍפǤ¹¡£");
}
return $obj->do_action($self).
"<div class=\"comment\"><a href=\"".$self->create_url({action=>"LOGIN"})."\">¥á¥Ë¥å¡¼¤ËÌá¤ë</a></div>";
} elsif($self->{"handler_permission"}->{$action}==2){
my $login = $self->get_login_info();
if(!defined($login)){
- return $self->error("¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
+ return $self->error(RC_FORBIDDEN, "¥í¥°¥¤¥ó¤·¤Æ¤¤¤Þ¤»¤ó¡£");
}
return $obj->do_action($self).
"<div class=\"comment\"><a href=\"".$self->create_url({action=>"LOGIN"})."\">¥á¥Ë¥å¡¼¤ËÌá¤ë</a></div>";
# my $wiki = shift;
# ...
# return $wiki->error(¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸);
+# or
+# return $wiki->error(¥¨¥é¡¼¥³¡¼¥É, ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸);
# }
# </pre>
#==============================================================================
sub error {
my $self = shift;
+ my $status = shift;
my $message = shift;
+ if(!defined($message)){
+ $message = $status;
+ $status = undef;
+ } else {
+ printf "Status: %d\n", $status;
+ }
+
$self->set_title("¥¨¥é¡¼");
$self->get_CGI->param("action","ERROR");
my $text = shift;
my ($cmd, @args_tmp) = split(/ /,$text);
my $args_txt = &Util::trim(join(" ",@args_tmp));
- if($cmd =~ s/}}(.*?)$//){
+ if($cmd =~ s/\}\}(.*?)$//){
return { command=>$cmd, args=>[], post=>"$1 $args_txt"};
}
my $self = shift;
my $page = shift;
my $level = shift;
-
- # Í¿¤¨¤é¤ì¤¿ $level ¤¬¸½ºß¤Î¥Ú¡¼¥¸¥ì¥Ù¥ë¤ÈÅù¤·¤±¤ì¤Ð²¿¤â¤»¤º¤Ë½ªÎ»¡£
- my $old_level = $self->get_page_level($page);
- return if ($level == $old_level);
$self->{"storage"}->set_page_level($page,$level);
+ # $level ¤¬Ì¤ÄêµÁ¤Ê¤é¥Ú¡¼¥¸¥Ç¡¼¥¿ºï½ü¤Ê¤Î¤Ç¡¢¥Õ¥Ã¥¯´ØÏ¢½èÍýÉÔÍס£
+ return if (not defined $level);
+
# ½èÍý¤ÎÀ®Èݤò¸¡ºº¡£
my $new_level = $self->get_page_level($page);
if ($new_level != $level) {
}
# ¥Ú¡¼¥¸¥ì¥Ù¥ë¤ÎÊѹ¹¤ËÀ®¸ù¤·¤¿¤Î¤Ç¡¢¥Õ¥Ã¥¯¤òȯ¹Ô¡£
- $self->do_hook('change_page_level', $page, $new_level, $old_level);
+ $self->do_hook('change_page_level', $page, $new_level);
}
#==============================================================================
#==============================================================================
# <p>
# ¥Ú¡¼¥¸¤òÊݸ¤·¤Þ¤¹¡£
-# ¥¥ã¥Ã¥·¥å¥â¡¼¥ÉON¤ÇÍøÍѤ·¤Æ¤¤¤ë¾ì¹ç¡¢¥Ú¡¼¥¸¤Î¥¥ã¥Ã¥·¥å¤âºï½ü¤µ¤ì¤Þ¤¹¡£
# </p>
# <pre>
# $wiki->save_page(¥Ú¡¼¥¸Ì¾,¥Ú¡¼¥¸ÆâÍÆ);
# <pre>
# $wiki->redirect("FrontPage");
# </pre>
+# <p>
+# ÂèÆó°ú¿ô¤Ë¥Ñ¡¼¥ÈÈÖ¹æ¤òÅϤ¹¤È¤½¤Î¥Ñ¡¼¥È¤Ë¥ê¥À¥¤¥ì¥¯¥È¤·¤Þ¤¹¡£
+# </p>
+# <pre>
+# $wiki->redirect("FrontPage", 1);
+# </pre>
+#
#==============================================================================
sub redirect {
my $self = shift;
my $page = shift;
- $self->redirectURL($self->create_page_url($page));
+ my $part = shift;
+ my $url = $self->create_page_url($page);
+ if($part ne ""){
+ $url .= "#p".Util::url_encode($part);
+ }
+ $self->redirectURL($url);
}
#==============================================================================