my $path_info = $r->path_info; my $dbroot = $r->dir_config('WikiDBRoot') || die "No DB root specified!"; my $default_db = $r->dir_config( 'WikiDB' ) || 'AxKit'; my $default_page = $r->dir_config( 'DefaultPage' ) || 'DefaultPage'; my $uri = $r->uri; my ($db, $page) = AxKit::XSP::Wiki::extract_page_info($path_info); if (!$db) { $r->header_out(Location => "$uri/$default_db/$default_page"); return 302; } if (!$page) { $r->header_out(Location => "$uri/$db/$default_page"); return 302; } my $action = $cgi->param('action') || 'view'; $action = 'preview' if $cgi->param('preview'); my $id = $cgi->param('id'); if ($id !~ /^\d*$/) { die "Invalid id format"; } if ($action eq 'save') { my $ip = $r->get_remote_host(); AxKit::XSP::Wiki::save_page( $dbroot, $db, $page, $cgi->param('text'), $cgi->param('texttype'), $ip, ); $r->header_out(Location => "$uri/$db/$page"); return 302; } elsif ($action eq 'restore') { my $ip = $r->get_remote_host(); AxKit::XSP::Wiki::restore_page( $dbroot, $db, $page, $ip, $id, ); $r->header_out(Location => "$uri/$db/$page"); return 302; } elsif ($action eq 'preview') { $page $db $dbroot $db $page $cgi->param('text') $cgi->param('texttype') } else { $page $db $dbroot $db $page $action $id }