generated from coulomb/repo-seed
Added prior art yawex perl wiki
This commit is contained in:
138
history/priorart/yawex-0.7.4/bin/yawex.pl
Executable file
138
history/priorart/yawex-0.7.4/bin/yawex.pl
Executable file
@@ -0,0 +1,138 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# main cgiscript for yawex
|
||||
#
|
||||
# $Header: /var/local/cvs/yawex/bin/yawex.pl,v 1.3 2004/10/03 14:24:08 bernd Exp $
|
||||
#
|
||||
|
||||
use strict;
|
||||
|
||||
use CGI qw/:standard/;
|
||||
use CGI::Carp 'fatalsToBrowser';
|
||||
$CGI::POST_MAX=1024 * 100; # max 100k POSTs
|
||||
$CGI::DISABLE_UPLOADS = 1; # no uploads
|
||||
|
||||
use Yawex::PageLookUp;
|
||||
use Yawex::PageActions;
|
||||
use Yawex::Page;
|
||||
use Yawex::Auth;
|
||||
use Yawex::Errors;
|
||||
use Yawex::Debug;
|
||||
use Conf::TestWiki;
|
||||
|
||||
print header();
|
||||
|
||||
#die und warn sauber abhandeln
|
||||
$SIG{__DIE__} = $SIG{__WARN__} =
|
||||
sub {
|
||||
Yawex::Errors::handler(@_);
|
||||
};
|
||||
|
||||
#laufzeit begrenzen
|
||||
alarm(20);
|
||||
|
||||
#check for POST size error
|
||||
my $dummy = param('dummy');
|
||||
if (cgi_error()) {
|
||||
print header(-status => cgi_error());
|
||||
exit 0;
|
||||
}
|
||||
|
||||
#arbeitsverzeichnis setzen
|
||||
chdir "testwiki" ||
|
||||
chdir "/var/www/bernd-worsch.de/friendswiki/pages" ||
|
||||
chdir "/var/www/testwiki/pages" ||
|
||||
instant_install();
|
||||
|
||||
#umask setzen
|
||||
umask 0000;
|
||||
|
||||
#request hash initialisieren
|
||||
#
|
||||
#simpler wäre es mit der CGI param() Funktion weiter zu arbeiten.
|
||||
#kann aber nicht sagen wie ich dann action und page parameter
|
||||
#modifiziert bekomme :(
|
||||
#
|
||||
my %request = ();
|
||||
foreach (param()) {
|
||||
$request{$_} = param($_);
|
||||
}
|
||||
|
||||
$request{'full_url'} = url();
|
||||
$request{'relative_url'} = url(-relative=>1);
|
||||
$request{'absolute_url'} = url(-absolute=>1);
|
||||
$request{'url_with_path'} = url(-path_info=>1);
|
||||
$request{'url_with_path_and_query'} = url(-path_info=>1, -query=>1);
|
||||
$request{'netloc'} = url(-base=>1);
|
||||
|
||||
$request{'referer'} = referer() || $Conf::default_referer;
|
||||
$request{'user'} = Yawex::Auth::resolve_user(remote_user());
|
||||
|
||||
$request{'debug'} = param('debug');
|
||||
unless ($request{'debug'} && ($request{'debug'} == 1)) {
|
||||
if ($request{'referer'} =~ /debug=1/) {
|
||||
$request{'debug'} = 1;
|
||||
}
|
||||
}
|
||||
|
||||
Yawex::Debug::show_request(\%request, "raw") if $request{'debug'};
|
||||
|
||||
sub instant_install {
|
||||
print "Welcome to Yawex!";
|
||||
print header(), "Sorry 'instant_install()' not implemented. Exiting!";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
sub lastpage {
|
||||
my $result;
|
||||
if ($request{'referer'} =~ /page=([^&]+)/) {
|
||||
$result = $1;
|
||||
} else {
|
||||
$result = "UnknownPage"; #fake name of lastpage if necessary
|
||||
}
|
||||
if (-d $result) {
|
||||
$result .= "/$result";
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
# resolve action and page (needs cleanup)
|
||||
if ($request{'relative_url'} eq 'register') {
|
||||
$request{'page'} = "NewUser";
|
||||
$request{'relative_url'} = $Conf::publicurl;
|
||||
} elsif (exists $request{'form_quicksearch'} && $request{'form_quicksearch'}) {
|
||||
#todo: jump to page if appropriate
|
||||
#$request{'page'} = $request{'form_quicksearch'};
|
||||
#$request{'action'} = "open";
|
||||
$request{'page'} = Yawex::Page::topic($request{'page'}) . "/SearchPage";
|
||||
$request{'action'} = "open";
|
||||
delete $request{'form-button'};
|
||||
} else {
|
||||
$request{'page'} = param('page') || param('newpage');
|
||||
}
|
||||
|
||||
$request{'lastpage'} = lastpage();
|
||||
Yawex::Debug::show_request(\%request, "1") if $request{'debug'};
|
||||
|
||||
Yawex::PageActions::resolve_action(\%request);
|
||||
Yawex::Debug::show_request(\%request, "action resolved") if $request{'debug'};
|
||||
|
||||
my $original_page = $request{'page'};
|
||||
($request{'state'}, $request{'page'}) =
|
||||
Yawex::PageLookUp::lookup_page($request{'page'}, $request{'lastpage'});
|
||||
if ($request{'state'} == 8) { # do not change to virtual pages
|
||||
$request{'virtualpage'} = $request{'page'};
|
||||
$request{'page'} = $original_page;
|
||||
}
|
||||
|
||||
Yawex::Debug::show_request(\%request, "page resolved") if $request{'debug'};
|
||||
|
||||
# what to do when page resolution failed
|
||||
if ($request{'state'} == 0 && $request{'action'} ne 'create') {
|
||||
$request{'action'} = 'new';
|
||||
Yawex::Debug::show_request(\%request, "unknown page") if $request{'debug'};
|
||||
}
|
||||
|
||||
eval('Yawex::PageActions::action_'.$request{'action'}.'(\%request)');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user