Add ability for maintainers to opt their community out of the account
creation promo flow.
Patch by afuna.
diffs (143 lines):
diff -r b6ad03cd95b5 -r 582a6fe26f6c bin/upgrading/en.dat
--- a/bin/upgrading/en.dat Wed Feb 17 04:45:29 2010 +0000
+++ b/bin/upgrading/en.dat Wed Feb 17 04:49:29 2010 +0000
@@ -2395,6 +2395,10 @@ setting.commentscreening.option.select.n
setting.commentscreening.option.select.nonmembers=comments from non-members
+setting.communitypromo.label=Community Promo
+
+setting.communitypromo.option=Opt out of putting this community in the list of
promoted communities, when a user you invite creates an account
+
setting.contactinfo.error.invalid=Invalid selection.
setting.contactinfo.label=Contact Info Security
diff -r b6ad03cd95b5 -r 582a6fe26f6c bin/upgrading/proplists.dat
--- a/bin/upgrading/proplists.dat Wed Feb 17 04:45:29 2010 +0000
+++ b/bin/upgrading/proplists.dat Wed Feb 17 04:49:29 2010 +0000
@@ -61,6 +61,14 @@ userproplist.city:
indexed: 1
multihomed: 0
prettyname: City
+
+userproplist.optout_community_promo:
+ cldversion: 4
+ datatype: char
+ des: Promote this community to invited users when they create their account
+ indexed: 0
+ multihomed: 0
+ prettyname: Account creation community promo
userproplist.comm_promo_blurb:
cldversion: 4
diff -r b6ad03cd95b5 -r 582a6fe26f6c cgi-bin/DW/Setting/CommunityPromo.pm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cgi-bin/DW/Setting/CommunityPromo.pm Wed Feb 17 04:49:29 2010 +0000
@@ -0,0 +1,62 @@
+#!/usr/bin/perl
+#
+# DW::Setting::CommunityPromo
+#
+# DW::Setting module for choosing whether a community should appear on the
list of
+# promoted communities, on account creation
+#
+# Authors:
+# Afuna <[email protected]>
+#
+# Copyright (c) 2009 by Dreamwidth Studios, LLC.
+#
+# This program is free software; you may redistribute it and/or modify it under
+# the same terms as Perl itself. For a copy of the license, please reference
+# 'perldoc perlartistic' or 'perldoc perlgpl'.
+#
+
+package DW::Setting::CommunityPromo;
+use base 'LJ::Setting';
+use strict;
+use warnings;
+
+sub should_render {
+ my ( $class, $u ) = @_;
+
+ return $u->is_community;
+}
+
+sub label {
+ my $class = $_[0];
+
+ return $class->ml( 'setting.communitypromo.label' );
+}
+
+sub option {
+ my ( $class, $u, $errs, $args ) = @_;
+ my $key = $class->pkgkey;
+
+ my $communitypromo = $class->get_arg( $args, 'communitypromo' ) ||
$u->optout_community_promo;
+
+ my $ret = LJ::html_check({
+ name => "${key}communitypromo",
+ id => "${key}communitypromo",
+ value => 1,
+ selected => $communitypromo,
+ });
+ $ret .= " <label for='${key}communitypromo'>";
+ $ret .= $class->ml( 'setting.communitypromo.option' );
+ $ret .= "</label>";
+
+ return $ret;
+}
+
+sub save {
+ my ( $class, $u, $args ) = @_;
+
+ $u->optout_community_promo( $class->get_arg( $args, "communitypromo" ) ?
"1" : "0" );
+
+ return 1;
+}
+
+1;
diff -r b6ad03cd95b5 -r 582a6fe26f6c cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm Wed Feb 17 04:45:29 2010 +0000
+++ b/cgi-bin/LJ/User.pm Wed Feb 17 04:49:29 2010 +0000
@@ -2031,6 +2031,17 @@ sub clear_daycounts
}
}
+sub optout_community_promo {
+ my ( $u, $val ) = @_;
+
+ if ( defined $val && $val =~ /^[01]$/ ) {
+ $u->set_prop( optout_community_promo => $val );
+ return $val;
+ }
+
+ return $u->prop( 'optout_community_promo' ) ? 1 : 0;
+}
+
sub control_strip_display {
my $u = shift;
@@ -3523,10 +3534,12 @@ sub relevant_communities {
my $memberships = LJ::load_userids( @ids );
# get all communities that $u is a member of that aren't closed membership
+ # and that wish to be included in the community promo
foreach my $membershipid ( keys %$memberships ) {
my $membershipu = $memberships->{$membershipid};
next unless $membershipu->is_community;
+ next if $membershipu->optout_community_promo;
next unless $membershipu->is_visible;
next if $membershipu->is_closed_membership;
diff -r b6ad03cd95b5 -r 582a6fe26f6c htdocs/manage/settings/index.bml
--- a/htdocs/manage/settings/index.bml Wed Feb 17 04:45:29 2010 +0000
+++ b/htdocs/manage/settings/index.bml Wed Feb 17 04:49:29 2010 +0000
@@ -120,6 +120,7 @@ body<=
DW::Setting::RandomPaidGifts
DW::Setting::GlobalSearch
DW::Setting::AllowSearchBy
+ DW::Setting::CommunityPromo
)],
},
history => {
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog