Files
shard-wiki/research/260608-yawex-prior-art/sources/yawex-0.7.4/bin/yawex.pl
tegwick 1c0c0efc56 Reorganize documentation into canonical repository layout
Adopt CoulombSocial/HelixForge/MarkiTect documentation structure:
- research/260608-yawex-prior-art/ — yawex exploration and sources
- demand/ — inbound NetKingdom integration requirements
- spec/ — PRD, TSD, UseCaseCatalog, ArchitectureBlueprint scaffolds
- docs/ — stakeholder documentation and repository-layout guide
- wiki/, issues/, history/ — scaffolded directories

Add SCOPE.md and AGENTS.md. Update workplan paths and README.
2026-06-08 13:55:27 +02:00

139 lines
3.6 KiB
Perl
Executable File

#!/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)');