afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-03-19 04:36 pm

[dw-free] Change behaviour for image placeholders with no dimensions specified

[commit: http://hg.dwscoalition.org/dw-free/rev/1dc64b86a2dc]

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

Add option for image placeholders for images with undefined dimensions.

Patch by [community profile] isabeau.

Files modified:
  • bin/upgrading/en.dat
  • bin/upgrading/proplists.dat
  • cgi-bin/LJ/S2/FriendsPage.pm
  • cgi-bin/LJ/Setting/ImagePlaceholders.pm
  • cgi-bin/cleanhtml.pl
--------------------------------------------------------------------------------
diff -r 2e5ff7fd3f07 -r 1dc64b86a2dc bin/upgrading/en.dat
--- a/bin/upgrading/en.dat	Thu Mar 19 16:19:40 2009 +0000
+++ b/bin/upgrading/en.dat	Thu Mar 19 16:34:25 2009 +0000
@@ -2695,6 +2695,12 @@ setting.imageplaceholders.option.select.
 
 setting.imageplaceholders.option.select.none=nothing (display all images)
 
+setting.imageplaceholders.option.undef=Treat images with undefined size as
+
+setting.imageplaceholders.option.undef.large=large images (use placeholder)
+
+setting.imageplaceholders.option.undef.small=small images (display image)
+
 setting.interests.desc|notes=There shouldn't be a description unless the page specifies one
 setting.interests.desc=_none
 
diff -r 2e5ff7fd3f07 -r 1dc64b86a2dc bin/upgrading/proplists.dat
--- a/bin/upgrading/proplists.dat	Thu Mar 19 16:19:40 2009 +0000
+++ b/bin/upgrading/proplists.dat	Thu Mar 19 16:34:25 2009 +0000
@@ -621,6 +621,14 @@ userproplist.opt_imagelinks:
   indexed: 0
   multihomed: 0
   prettyname: Use Placeholders on Your Friend's Page
+
+userproplist.opt_imageundef:
+  cldversion: 4
+  datatype: bool
+  des: 0: show image, 1: use placeholder
+  indexed: 0
+  multihomed: 0
+  prettyname: Use Placeholders for Undefined-Size Images
 
 userproplist.opt_ljcut_disable_friends:
   cldversion: 4
diff -r 2e5ff7fd3f07 -r 1dc64b86a2dc cgi-bin/LJ/S2/FriendsPage.pm
--- a/cgi-bin/LJ/S2/FriendsPage.pm	Thu Mar 19 16:19:40 2009 +0000
+++ b/cgi-bin/LJ/S2/FriendsPage.pm	Thu Mar 19 16:34:25 2009 +0000
@@ -60,7 +60,7 @@ sub FriendsPage
 
     my $ret;
 
-    LJ::load_user_props($remote, "opt_nctalklinks", "opt_stylemine", "opt_imagelinks", "opt_ljcut_disable_friends");
+    LJ::load_user_props( $remote, "opt_nctalklinks", "opt_stylemine", "opt_imagelinks", "opt_imageundef", "opt_ljcut_disable_friends" );
 
     # load options for image links
     my ($maximgwidth, $maximgheight) = (undef, undef);
@@ -230,6 +230,7 @@ sub FriendsPage
                                              'cuturl' => LJ::item_link($friends{$friendid}, $itemid, $item->{'anum'}, $stylemine),
                                              'maximgwidth' => $maximgwidth,
                                              'maximgheight' => $maximgheight,
+                                             'imageplaceundef' => $remote->{'opt_imageundef'},
                                              'ljcut_disable' => $remote->{'opt_ljcut_disable_friends'},
                                              'suspend_msg' => $suspend_msg,
                                              'unsuspend_supportid' => $suspend_msg ? $entry_obj->prop("unsuspend_supportid") : 0, });
diff -r 2e5ff7fd3f07 -r 1dc64b86a2dc cgi-bin/LJ/Setting/ImagePlaceholders.pm
--- a/cgi-bin/LJ/Setting/ImagePlaceholders.pm	Thu Mar 19 16:19:40 2009 +0000
+++ b/cgi-bin/LJ/Setting/ImagePlaceholders.pm	Thu Mar 19 16:34:25 2009 +0000
@@ -26,6 +26,7 @@ sub option {
     my $key = $class->pkgkey;
 
     my $imgplaceholders = $class->get_arg($args, "imgplaceholders") || $u->prop("opt_imagelinks");
+    my $imgplaceundef = $class->get_arg( $args, "imgplaceundef" ) || $u->prop( "opt_imageundef" );
 
     my ($maxwidth, $maxheight) = (0, 0);
     ($maxwidth, $maxheight) = ($1, $2)
@@ -55,7 +56,23 @@ sub option {
         selected => $imgplaceholders,
     }, @options);
 
+    # Option for undefined-size images. Might want to be magicked into only displaying when placeholders are set for other than all/none
+
+    my @optionundef = (
+        0 => $class->ml( 'setting.imageplaceholders.option.undef.small' ),
+        1 => $class->ml( 'setting.imageplaceholders.option.undef.large' )
+    );
+
+    $ret .= "<br /><label for='${key}imgplaceundef'>" . $class->ml( 'setting.imageplaceholders.option.undef' ) . "</label> ";
+    $ret .= LJ::html_select({
+        name => "${key}imgplaceundef",
+        id => "${key}imgplaceundef",
+        selected => $imgplaceundef,
+    }, @optionundef);
+
+
     my $errdiv = $class->errdiv($errs, "imgplaceholders");
+    $errdiv .= $class->errdiv( $errs, "imgplaceundef" );
     $ret .= "<br />$errdiv" if $errdiv;
 
     return $ret;
@@ -77,6 +94,8 @@ sub save {
 
     my $val = $class->get_arg($args, "imgplaceholders");
     $u->set_prop( opt_imagelinks => $val );
+    $val = $class->get_arg( $args, "imgplaceundef" );
+    $u->set_prop( opt_imageundef => $val );
 
     return 1;
 }
diff -r 2e5ff7fd3f07 -r 1dc64b86a2dc cgi-bin/cleanhtml.pl
--- a/cgi-bin/cleanhtml.pl	Thu Mar 19 16:19:40 2009 +0000
+++ b/cgi-bin/cleanhtml.pl	Thu Mar 19 16:34:25 2009 +0000
@@ -691,12 +691,13 @@ sub clean
                 if ($tag eq "img")
                 {
                     my $img_bad = 0;
+
                     if (defined $opts->{'maximgwidth'} &&
-                        (! defined $hash->{'width'} ||
-                         $hash->{'width'} > $opts->{'maximgwidth'})) { $img_bad = 1; }
+                         $hash->{width} > $opts->{maximgwidth}) { $img_bad = 1; }
                     if (defined $opts->{'maximgheight'} &&
-                        (! defined $hash->{'height'} ||
-                         $hash->{'height'} > $opts->{'maximgheight'})) { $img_bad = 1; }
+                         $hash->{height} > $opts->{maximgheight}) { $img_bad = 1; }
+                    if (! defined $hash->{width} ||
+                        ! defined $hash->{height}) { $img_bad ||= $opts->{imageplaceundef}; }
                     if ($opts->{'extractimages'}) { $img_bad = 1; }
 
                     $hash->{src} = canonical_url($hash->{src}, 1);
@@ -1307,6 +1308,7 @@ sub clean_event
         'cleancss' => 1,
         'maximgwidth' => $opts->{'maximgwidth'},
         'maximgheight' => $opts->{'maximgheight'},
+        'imageplaceundef' => $opts->{'imageplaceundef'},
         'ljcut_disable' => $opts->{'ljcut_disable'},
         'noearlyclose' => 1,
         'tablecheck' => 1,
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org