some updates to URL and content handlers to make them a bit more flexible
This commit is contained in:
parent
c074fde72a
commit
17d6151832
9 changed files with 91 additions and 12 deletions
|
|
@ -24,6 +24,7 @@ my $quiet; # this line required
|
||||||
my $session = start(); # this line required
|
my $session = start(); # this line required
|
||||||
|
|
||||||
# upgrade functions go here
|
# upgrade functions go here
|
||||||
|
addReferralHandler( $session );
|
||||||
addCalendarEventWorkflow( $session );
|
addCalendarEventWorkflow( $session );
|
||||||
addPurgeOldInboxActivity( $session );
|
addPurgeOldInboxActivity( $session );
|
||||||
addingInStoreCredit($session);
|
addingInStoreCredit($session);
|
||||||
|
|
@ -45,6 +46,23 @@ mergeProductsWithCommerce($session);
|
||||||
|
|
||||||
finish($session); # this line required
|
finish($session); # this line required
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
sub addReferralHandler {
|
||||||
|
my $session = shift;
|
||||||
|
print "\tAdding a referral handler." unless $quiet;
|
||||||
|
my $config = $session->config;
|
||||||
|
my @handlers = ();
|
||||||
|
foreach my $element (@{$config->get("contentHandlers")}) {
|
||||||
|
if ($element eq "WebGUI::Content::Operation") {
|
||||||
|
push @handlers, "WebGUI::Content::Referral";
|
||||||
|
}
|
||||||
|
push @handlers, $element;
|
||||||
|
}
|
||||||
|
$config->set("contentHandlers", \@handlers);
|
||||||
|
print "DONE!\n" unless $quiet;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Add the database column to select the workflow to approve Calendar Events
|
# Add the database column to select the workflow to approve Calendar Events
|
||||||
sub addCalendarEventWorkflow {
|
sub addCalendarEventWorkflow {
|
||||||
|
|
|
||||||
|
|
@ -67,20 +67,27 @@ sub handler {
|
||||||
my $matchUri = $request->uri;
|
my $matchUri = $request->uri;
|
||||||
my $gateway = $config->get("gateway");
|
my $gateway = $config->get("gateway");
|
||||||
$matchUri =~ s{^$gateway(.*)}{/$1};
|
$matchUri =~ s{^$gateway(.*)}{/$1};
|
||||||
|
my $gotMatch = 0;
|
||||||
foreach my $handler (@{$config->get("urlHandlers")}) {
|
foreach my $handler (@{$config->get("urlHandlers")}) {
|
||||||
my ($regex) = keys %{$handler};
|
my ($regex) = keys %{$handler};
|
||||||
if ($matchUri =~ m{$regex}i) {
|
if ($matchUri =~ m{$regex}i) {
|
||||||
my $output = eval { WebGUI::Pluggable::run($handler->{$regex}, "handler", [$request, $server, $config]) };
|
my $output = eval { WebGUI::Pluggable::run($handler->{$regex}, "handler", [$request, $server, $config]) };
|
||||||
if ($@) {
|
if ($@) {
|
||||||
die $@ if ($@ =~ "^fatal:");
|
$error = $@;
|
||||||
# bad
|
warn $@ if ($@ =~ "^fatal:");
|
||||||
return Apache2::Const::DECLINED;
|
last;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return $output;
|
$gotMatch = 1;
|
||||||
|
if ($output ne Apache2::Const::DECLINED) {
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return Apache2::Const::DECLINED if ($gotMatch);
|
||||||
|
|
||||||
|
# can't handle the url due to error or misconfiguration
|
||||||
$request->push_handlers(PerlResponseHandler => sub {
|
$request->push_handlers(PerlResponseHandler => sub {
|
||||||
print "This server is unable to handle the url '".$request->uri."' that you requested. ".$error;
|
print "This server is unable to handle the url '".$request->uri."' that you requested. ".$error;
|
||||||
return Apache2::Const::OK;
|
return Apache2::Const::OK;
|
||||||
|
|
|
||||||
55
lib/WebGUI/Content/Referral.pm
Normal file
55
lib/WebGUI/Content/Referral.pm
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
package WebGUI::Content::Referral;
|
||||||
|
|
||||||
|
=head1 LEGAL
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
WebGUI is Copyright 2001-2008 Plain Black Corporation.
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Please read the legal notices (docs/legal.txt) and the license
|
||||||
|
(docs/license.txt) that came with this distribution before using
|
||||||
|
this software.
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
http://www.plainblack.com info@plainblack.com
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use WebGUI::Affiliate;
|
||||||
|
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
Package WebGUI::Content::Referral
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
Processes referrals from other sites.
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
use WebGUI::Content::Referral;
|
||||||
|
my $output = WebGUI::Content::Referral::handler($session);
|
||||||
|
|
||||||
|
=head1 SUBROUTINES
|
||||||
|
|
||||||
|
These subroutines are available from this package:
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
=head2 handler ( session )
|
||||||
|
|
||||||
|
The content handler for this package.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
sub handler {
|
||||||
|
my ($session) = @_;
|
||||||
|
WebGUI::Affiliate::grabReferral($session); # process affiliate tracking request
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
|
@ -80,12 +80,11 @@ sub handler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WebGUI::Affiliate::grabReferral($session); # process affiliate tracking request
|
|
||||||
$session->close;
|
$session->close;
|
||||||
return Apache2::Const::OK;
|
return Apache2::Const::OK;
|
||||||
});
|
});
|
||||||
$request->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK });
|
$request->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK });
|
||||||
return Apache2::Const::DECLINED;
|
return Apache2::Const::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ sub handler {
|
||||||
return Apache2::Const::OK;
|
return Apache2::Const::OK;
|
||||||
} );
|
} );
|
||||||
$request->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK });
|
$request->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK });
|
||||||
return Apache2::Const::DECLINED;
|
return Apache2::Const::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ sub handler {
|
||||||
$request->handler(Apache2::Const::DIR_MAGIC_TYPE); # Hand off to mod_dir
|
$request->handler(Apache2::Const::DIR_MAGIC_TYPE); # Hand off to mod_dir
|
||||||
return Apache2::Const::OK;
|
return Apache2::Const::OK;
|
||||||
}
|
}
|
||||||
return Apache2::Const::DECLINED;
|
return Apache2::Const::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ sub handler {
|
||||||
return Apache2::Const::OK;
|
return Apache2::Const::OK;
|
||||||
} );
|
} );
|
||||||
$request->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK });
|
$request->push_handlers(PerlTransHandler => sub { return Apache2::Const::OK });
|
||||||
return Apache2::Const::DECLINED;
|
return Apache2::Const::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ sub handler {
|
||||||
return Apache2::Const::NOT_FOUND;
|
return Apache2::Const::NOT_FOUND;
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
return Apache2::Const::DECLINED;
|
return Apache2::Const::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ package WebGUI::URL::MyHandler;
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use Apache2::Const -compile => qw(OK DECLINED NOT_FOUND DIR_MAGIC_TYPE);
|
use Apache2::Const -compile => qw(OK DECLINED NOT_FOUND);
|
||||||
|
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
@ -48,7 +48,7 @@ The Apache request handler for this package.
|
||||||
sub handler {
|
sub handler {
|
||||||
my ($request, $server, $config) = @_;
|
my ($request, $server, $config) = @_;
|
||||||
# ...
|
# ...
|
||||||
return Apache2::Const::DECLINED;
|
return Apache2::Const::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue