mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)
Mark Smith ([staff profile] mark) wrote in [site community profile] changelog2009-03-21 11:54 pm

[dw-free] Allow user to specify a reason for an entry being marked as 14+/18+

[commit: http://hg.dwscoalition.org/dw-free/rev/6c26c423dbe1]

http://bugs.dwscoalition.org/show_bug.cgi?id=15

Allow specifying reason for adult content restriction.

Patch by [personal profile] exor674.

Files modified:
  • bin/upgrading/en.dat
  • cgi-bin/DW/Setting/AdultContentReason.pm
  • htdocs/manage/settings/index.bml
--------------------------------------------------------------------------------
diff -r 6228d9286ad0 -r 6c26c423dbe1 bin/upgrading/en.dat
--- a/bin/upgrading/en.dat	Sat Mar 21 23:52:54 2009 +0000
+++ b/bin/upgrading/en.dat	Sat Mar 21 23:54:27 2009 +0000
@@ -2471,6 +2471,8 @@ setting.adultcontent.option.select.none=
 
 setting.adultcontent.option.self=This journal contains content suitable for
 
+setting.adultcontentreason.label=Adult Content Reason
+
 setting.bio.desc|notes=There shouldn't be a description unless the page specifies one
 setting.bio.desc=_none
 
diff -r 6228d9286ad0 -r 6c26c423dbe1 cgi-bin/DW/Setting/AdultContentReason.pm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cgi-bin/DW/Setting/AdultContentReason.pm	Sat Mar 21 23:54:27 2009 +0000
@@ -0,0 +1,48 @@
+package DW::Setting::AdultContentReason;
+use base 'LJ::Setting';
+use strict;
+use warnings;
+use LJ::Constants;
+
+sub should_render {
+    my ( $class, $u ) = @_;
+
+    return !LJ::is_enabled( "content_flag" ) || !$u || $u->is_identity ? 0 : 1;
+}
+
+sub label {
+    return $_[0]->ml( 'setting.adultcontentreason.label' );
+}
+
+sub option {
+    my ( $class, $u, $errs, $args ) = @_;
+
+    my $key = $class->pkgkey;
+    my $ret;
+
+    $ret .= LJ::html_text({
+        name  => "${key}reason",
+        id    => "${key}reason",
+        class => "text",
+        value => $errs ? $class->get_arg( $args, "reason" ) : $u->adult_content_reason,
+        size  => 60,
+        maxlength => 255,
+    });
+
+    my $errdiv = $class->errdiv( $errs, "reason" );
+    $ret .= "<br />$errdiv" if $errdiv;
+
+    return $ret;
+}
+
+sub save {
+    my ( $class, $u, $args ) = @_;
+ 
+    my $txt = $class->get_arg( $args, "reason" );
+    $txt = LJ::trim( $txt || "" );
+    $txt = LJ::text_trim( $txt, 0, 255 );
+    $u->set_prop( "adult_content_reason", $txt );
+    return 1;
+}
+
+1;
diff -r 6228d9286ad0 -r 6c26c423dbe1 htdocs/manage/settings/index.bml
--- a/htdocs/manage/settings/index.bml	Sat Mar 21 23:52:54 2009 +0000
+++ b/htdocs/manage/settings/index.bml	Sat Mar 21 23:54:27 2009 +0000
@@ -65,6 +65,7 @@ body<=
                 LJ::Setting::CtxPopup
                 LJ::Setting::SiteScheme
                 LJ::Setting::AdultContent
+                DW::Setting::AdultContentReason
                 LJ::Setting::ViewingAdultContent
                 LJ::Setting::SafeSearch
                 LJ::Setting::CyrillicServices
--------------------------------------------------------------------------------