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-04 06:43 pm

[dw-free] suitable ALT text for userpics

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

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

Add description to alt text, with keyword as fallback.

Patch by [personal profile] jadelennox.

Files modified:
  • cgi-bin/LJ/S2.pm
  • cgi-bin/LJ/S2/EntryPage.pm
  • cgi-bin/LJ/S2/ReplyPage.pm
  • cgi-bin/LJ/Userpic.pm
--------------------------------------------------------------------------------
diff -r 170e6692a0ee -r dc885b3a5989 cgi-bin/LJ/S2.pm
--- a/cgi-bin/LJ/S2.pm	Wed Mar 04 16:25:16 2009 +0000
+++ b/cgi-bin/LJ/S2.pm	Wed Mar 04 18:40:39 2009 +0000
@@ -2086,11 +2086,22 @@ sub Image_userpic
 
     $picid ||= LJ::get_picid_from_keyword($u, $kw);
 
-    my $pi = LJ::get_userpic_info($u, {load_comments => 1});
-    my $p = $pi->{'pic'}->{$picid};
-    my $k = $pi->{'kw'};
-    my $kwstr = join(', ', ( grep { $k->{$_}{'picid'} eq $picid } (keys %$k) ) );
-    my $alttext = $kwstr;
+    # get the Userpic object
+    my $p = LJ::Userpic->new($u, $picid);
+
+    # load the alttext.  use description by default, keyword as fallback,
+    # and all keywords as final fallback (should be for default icon only).
+    my $description = $p->description;
+    my $alttext;
+
+    if ($description) {
+        $alttext = $description;
+    } elsif ($kw) {
+        $alttext = $kw;
+    } else {
+        my $kwstr = $p->keywords;
+        $alttext = $kwstr;
+    }
 
     return Null("Image") unless $p;
     return {
diff -r 170e6692a0ee -r dc885b3a5989 cgi-bin/LJ/S2/EntryPage.pm
--- a/cgi-bin/LJ/S2/EntryPage.pm	Wed Mar 04 16:25:16 2009 +0000
+++ b/cgi-bin/LJ/S2/EntryPage.pm	Wed Mar 04 18:40:39 2009 +0000
@@ -439,8 +439,11 @@ sub EntryPage_entry
     my $stylemine = $get->{'style'} eq "mine" ? "style=mine" : "";
     my $style_set = defined $get->{'s2id'} ? "s2id=" . $get->{'s2id'} : "";
     my $style_arg = ($stylemine ne '' and $style_set ne '') ? ($stylemine . '&' . $style_set) : ($stylemine . $style_set);
-
-    my $userpic = Image_userpic($pu, $entry->userpic ? $entry->userpic->picid : 0);
+    
+    # load the userpic; include the keyword selected by the user 
+    # as a backup for the alttext
+    my $pickw = LJ::Entry->userpic_kw_from_props($entry->props);
+    my $userpic = Image_userpic($pu, $entry->userpic ? $entry->userpic->picid : 0, $pickw);
 
     my $permalink = $entry->url;
     my $readurl = LJ::Talk::talkargs($permalink, $nc, $style_arg);
diff -r 170e6692a0ee -r dc885b3a5989 cgi-bin/LJ/S2/ReplyPage.pm
--- a/cgi-bin/LJ/S2/ReplyPage.pm	Wed Mar 04 16:25:16 2009 +0000
+++ b/cgi-bin/LJ/S2/ReplyPage.pm	Wed Mar 04 18:40:39 2009 +0000
@@ -158,8 +158,8 @@ sub ReplyPage
             return $opts->{handler_return} = 403 if $pu->{statusvis} eq 'S'; # do not show comments by suspended users
             $s2poster = UserLite($pu);
 
-            # FIXME: this is a little heavy:
-            $comment_userpic = Image_userpic($pu, 0, $parpost->{'props'}->{'picture_keyword'});
+            my $pickw = LJ::Entry->userpic_kw_from_props($parpost->{'props'});
+            $comment_userpic = Image_userpic($pu, 0, $pickw);
         }
 
         LJ::CleanHTML::clean_comment(\$parpost->{'body'},
diff -r 170e6692a0ee -r dc885b3a5989 cgi-bin/LJ/Userpic.pm
--- a/cgi-bin/LJ/Userpic.pm	Wed Mar 04 16:25:16 2009 +0000
+++ b/cgi-bin/LJ/Userpic.pm	Wed Mar 04 18:40:39 2009 +0000
@@ -375,7 +375,7 @@ sub supports_comments {
 }
 
 # class method
-# does this user's dataversion support usepic comments?
+# does this user's dataversion support userpic comments?
 sub userpics_partitioned {
     my ($class, $u) = @_;
     Carp::croak("Not a valid \$u object") unless LJ::isu($u);
@@ -398,7 +398,7 @@ sub load_row {
 
     my $row;
     if (LJ::Userpic->userpics_partitioned($u)) {
-        $row = $u->selectrow_hashref("SELECT userid, picid, width, height, state, fmt, comment, location, url, " .
+        $row = $u->selectrow_hashref("SELECT userid, picid, width, height, state, fmt, comment, description, location, url, " .
                                      "UNIX_TIMESTAMP(picdate) AS 'pictime', flags, md5base64 " .
                                      "FROM userpic2 WHERE userid=? AND picid=?", undef,
                                      $u->{userid}, $self->{picid});
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
No Subject Icon Selected
More info about formatting

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