Added form plugin honeypot to webgui_newsletter. It can be used with:
<tmpl_var subscriptionForm_form> <tmpl_var form_honeypot> <tmpl_var form_honeypot_id> It's used by default now.
This commit is contained in:
parent
4379770f2d
commit
dd9150a1a8
5 changed files with 136 additions and 32 deletions
|
|
@ -36,10 +36,11 @@ addListNameColumn( $session );
|
|||
addRegistrationSteps( $session );
|
||||
addConfirmationTemplateColumn( $session );
|
||||
addSentToIndex( $session );
|
||||
addUseHoneypotColumn( $session );
|
||||
|
||||
finish($session);
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
#-------------------------------------------------------------------------------
|
||||
sub addConfirmationTemplateColumn {
|
||||
my $session = shift;
|
||||
my $db = $session->db;
|
||||
|
|
@ -65,7 +66,7 @@ sub addConfirmationTemplateColumn {
|
|||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
print "Done.\n";
|
||||
}
|
||||
|
||||
|
|
@ -124,21 +125,21 @@ sub installSubscriberAspectTable {
|
|||
|
||||
$session->db->write(<<EOSQL);
|
||||
create table if not exists assetAspectSubscriber (
|
||||
assetId char(22) binary not null,
|
||||
revisionDate bigint(20) not null,
|
||||
subscriptionGroupId char(22) binary,
|
||||
subscriptionEnabled tinyint(1) not null default 0,
|
||||
alwaysConfirmSubscription tinyint(1) not null default 0,
|
||||
allowAnonymousSubscription tinyint(1) not null default 0,
|
||||
assetId char(22) binary not null,
|
||||
revisionDate bigint(20) not null,
|
||||
subscriptionGroupId char(22) binary,
|
||||
subscriptionEnabled tinyint(1) not null default 0,
|
||||
alwaysConfirmSubscription tinyint(1) not null default 0,
|
||||
allowAnonymousSubscription tinyint(1) not null default 0,
|
||||
confirmationRequiredTemplateId char(22) binary,
|
||||
confirmationEmailTemplateId char(22) binary,
|
||||
confirmationEmailSubject varchar(255),
|
||||
noMutationEmailTemplateId char(22) binary,
|
||||
noMutationEmailSubject varchar(255),
|
||||
confirmationEmailTemplateId char(22) binary,
|
||||
confirmationEmailSubject varchar(255),
|
||||
noMutationEmailTemplateId char(22) binary,
|
||||
noMutationEmailSubject varchar(255),
|
||||
primary key( assetId, revisionDate )
|
||||
);
|
||||
EOSQL
|
||||
|
||||
|
||||
$session->db->write(<<EOSQL2);
|
||||
create table if not exists assetAspectSubscriber_log (
|
||||
assetId char(22) binary not null,
|
||||
|
|
@ -167,6 +168,7 @@ sub installNewsletterCollection {
|
|||
create table if not exists NewsletterCollection (
|
||||
assetId char(22) binary not null,
|
||||
revisionDate bigint(20) not null,
|
||||
useHoneypot tinyint(1) default 0,
|
||||
primary key( assetId, revisionDate )
|
||||
);
|
||||
EOSQL
|
||||
|
|
@ -181,7 +183,7 @@ sub addTemplateColumnToNewsletterCollection {
|
|||
print "\tAdding view template column to NewletterCollection...";
|
||||
|
||||
my $hasColumn = $db->quickScalar( 'show columns from NewsletterCollection where Field=?', [ 'viewTemplateId' ] );
|
||||
|
||||
|
||||
unless ( $hasColumn ) {
|
||||
$db->write( 'alter table NewsletterCollection add column viewTemplateId char(22) binary not null default ?', [
|
||||
'aYVYFpofaYvmRYoHwl3x4w'
|
||||
|
|
@ -201,7 +203,7 @@ sub addRecentColumnToNewsletterCollection {
|
|||
print "\tAdding recent issues column to NewletterCollection...";
|
||||
|
||||
my $hasColumn = $db->quickScalar( 'show columns from NewsletterCollection where Field=?', [ 'recentIssueCount' ] );
|
||||
|
||||
|
||||
unless ( $hasColumn ) {
|
||||
$db->write( 'alter table NewsletterCollection add column recentIssueCount int(3) not null default ?', [
|
||||
1,
|
||||
|
|
@ -260,7 +262,7 @@ sub installNewsletterInAdminConsole {
|
|||
sub installNewsletterSettings {
|
||||
my $session = shift;
|
||||
my $setting = $session->setting;
|
||||
|
||||
|
||||
print "\tInstalling newsletter setting slots...";
|
||||
|
||||
my %settings = (
|
||||
|
|
@ -285,11 +287,11 @@ sub addPluginsToConfigFile {
|
|||
my $config = $session->config;
|
||||
|
||||
print "\tAdding plugins to config file...";
|
||||
|
||||
|
||||
$config->set( 'assets/WebGUI::Asset::Wobject::NewsletterCollection', {
|
||||
category => 'basic',
|
||||
} );
|
||||
|
||||
|
||||
my @handlers = @{ $session->config->get('contentHandlers') };
|
||||
if ( !scalar grep { $_ eq 'WebGUI::Content::NewsletterManager' } @handlers ) {
|
||||
insert_after_string 'WebGUI::Content::Shop', 'WebGUI::Content::NewsletterManager', @handlers;
|
||||
|
|
@ -301,7 +303,7 @@ sub addPluginsToConfigFile {
|
|||
push @workflows, 'WebGUI::Workflow::Activity::SendQueuedMailings';
|
||||
$session->config->set( 'workflowActivities/None', \@workflows );
|
||||
}
|
||||
|
||||
|
||||
|
||||
print "Done.\n";
|
||||
}
|
||||
|
|
@ -343,43 +345,63 @@ sub addRegistrationSteps {
|
|||
my $session = shift;
|
||||
|
||||
print "\tAdding MailingSubscribe Registration Step to config...";
|
||||
|
||||
|
||||
my %steps = map { $_ => 1 } @{ $session->config->get( 'registrationSteps' ) || [] };
|
||||
$steps{ 'WebGUI::Registration::Step::MailingSubscribe' } = 1;
|
||||
|
||||
$session->config->set( 'registrationSteps', [ keys %steps ] );
|
||||
|
||||
print "Done.\n";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
#----------------------------------------------------------------------------
|
||||
sub addUseHoneypotColumn {
|
||||
my $session = shift;
|
||||
|
||||
my $db = $session->db;
|
||||
|
||||
print "\tAdding useHoneypot column...";
|
||||
|
||||
my @columns = $db->buildArray( 'show columns from NewsletterCollection' );
|
||||
|
||||
if ( ! grep { $_ eq 'useHoneypot' } @columns ) {
|
||||
$db->write( 'alter table NewsletterCollection add column useHoneypot tinyint(1) default 0' );
|
||||
$db->write( 'update NewsletterCollection set useHoneypot = 0 where useHoneypot is null' );
|
||||
|
||||
print "Done\n";
|
||||
|
||||
}
|
||||
else {
|
||||
print "Skipping\n";
|
||||
}
|
||||
}
|
||||
#----------------------------------------------------------------------------
|
||||
sub start {
|
||||
my $webguiRoot = shift;
|
||||
my $configFile = shift;
|
||||
my $session = WebGUI::Session->open($webguiRoot,$configFile);
|
||||
$session->user({userId=>3});
|
||||
|
||||
|
||||
## If your script is adding or changing content you need these lines, otherwise leave them commented
|
||||
#
|
||||
# my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
# $versionTag->set({name => 'Name Your Tag'});
|
||||
#
|
||||
##
|
||||
|
||||
|
||||
return $session;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub finish {
|
||||
my $session = shift;
|
||||
|
||||
|
||||
## If your script is adding or changing content you need these lines, otherwise leave them commented
|
||||
#
|
||||
# my $versionTag = WebGUI::VersionTag->getWorking($session);
|
||||
# $versionTag->commit;
|
||||
##
|
||||
|
||||
|
||||
$session->var->end;
|
||||
$session->close;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue