Properly specify both width and height attributes for scaled userpics.
Patch by draigwen.
diffs (170 lines):
diff -r 19969e7506a3 -r efa4d53fc342 cgi-bin/LJ/Userpic.pm
--- a/cgi-bin/LJ/Userpic.pm Tue Aug 11 16:20:04 2009 -0500
+++ b/cgi-bin/LJ/Userpic.pm Wed Aug 12 01:27:16 2009 -0500
@@ -331,6 +331,7 @@ sub imgtag {
# parameters, set them. Otherwise, take what ever is set in
# the userpic
my $width = $opts{width} || $self->width;
+ my $height = $opts{height} || $self->height;
my $keyword = $opts{keyword} || $self->keywords;
# if no description is available for alttext, try to fall
@@ -351,8 +352,9 @@ sub imgtag {
}
$title = LJ::ehtml( $title );
- return '<img src="' . $self->url . '" width="' . $width .
- '" alt="' . $alttext . '" title="' . $title . '" class="userpic-img"
/>';
+ return '<img src="' . $self->url . '" width="' . $width .
+ '" height="' . $height . '" alt="' . $alttext .
+ '" title="' . $title . '" class="userpic-img" />';
}
# FIXME: should have alt text, if it should be kept
@@ -379,6 +381,33 @@ sub imgtag_percentagesize {
return '<img src="' . $self->url . '" width="' . $width . '" height="' .
$height . '" class="userpic-img" />';
}
+
+# pass a fixed height or width that you want to be the size of the userpic
+# must include either a height or width, if both are given the smaller of the
two is used
+# returns the width and height attributes as a string to insert into an img tag
+sub img_fixedsize {
+ my $self = shift;
+ my %opts = @_;
+
+ my $width = $opts{width} || 0;
+ my $height = $opts{height} || 0;
+
+ if ( $width > 0 && $width < $self->width &&
+ ( !$height || ( $width <= $height && $self->width >= $self->height ) )
) {
+ my $ratio = $width / $self->width;
+ $height = int( $self->height * $ratio );
+ } elsif ( $height > 0 && $height < $self->height ) {
+ my $ratio = $height / $self->height;
+ $width = int( $self->width * $ratio );
+ } else {
+ $width = $self->width;
+ $height = $self->height;
+ }
+
+ return 'height="' . $height . '" width="' . $width . '"';
+}
+
+
# in scalar context returns comma-seperated list of keywords or "pic#12345" if
no keywords defined
# in list context returns list of keywords ( (pic#12345) if none defined )
diff -r 19969e7506a3 -r efa4d53fc342 cgi-bin/bml/scheme/blueshift.look
--- a/cgi-bin/bml/scheme/blueshift.look Tue Aug 11 16:20:04 2009 -0500
+++ b/cgi-bin/bml/scheme/blueshift.look Wed Aug 12 01:27:16 2009 -0500
@@ -65,20 +65,14 @@ accountlinks<=
my $inbox = $remote->notification_inbox;
my $unread = $inbox->unread_count;
my $identity = $remote->is_identity;
- my $wh = "";
- if ( $userpic ) {
- if ( $userpic->width > $userpic->height ) {
- $wh = 'width="' . ( $userpic->width > 80 ? 80 :
$userpic->width ) . '"';
- } else {
- $wh = 'height="' . ( $userpic->height > 80 ? 80 :
$userpic->height ) . '"';
- }
- }
$ret .= "<div id='account-links-userpic'><a
href='$LJ::SITEROOT/editpics'>";
+
if ( $userpic ) {
+ my $wh = $userpic->img_fixedsize( width => 80, height => 80 );
$ret .= "<img src='" . $userpic->url . "' $wh
alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
} else {
- $ret .= "<img src='$LJ::IMGPREFIX/nouserpic.png' width='80'
alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
+ $ret .= "<img src='$LJ::IMGPREFIX/nouserpic.png' width='80'
height='80' alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
}
$ret .= "</a></div>";
$ret .= "<div id='account-links-text'>";
diff -r 19969e7506a3 -r efa4d53fc342 cgi-bin/bml/scheme/celerity.look
--- a/cgi-bin/bml/scheme/celerity.look Tue Aug 11 16:20:04 2009 -0500
+++ b/cgi-bin/bml/scheme/celerity.look Wed Aug 12 01:27:16 2009 -0500
@@ -64,7 +64,6 @@ accountlinks<=
my $inbox = $remote->notification_inbox;
my $unread = $inbox->unread_count;
my $identity = $remote->is_identity;
- my $wh = "";
$ret .= "<div id='account-links-text'>";
$ret .= "<form action='$LJ::SITEROOT/logout?ret=1' method='post'>";
@@ -151,14 +150,10 @@ userpic<=
if ( $remote ) {
my $userpic = $remote->userpic;
if ( $userpic && !$LJ::IS_SSL ) {
- if ( $userpic->width > $userpic->height ) {
- $wh = 'width="' . ( $userpic->width > 80 ? 80 :
$userpic->width ) . '"';
- } else {
- $wh = 'height="' . ( $userpic->height > 80 ? 80 :
$userpic->height ) . '"';
- }
+ my $wh = $userpic->img_fixedsize( width => 80, height => 80 );
$ret .= "<img src='" . $userpic->url . "' $wh
alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
} else {
- $ret .= "<img src='$imgprefix/nouserpic.png' width='80'
alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
+ $ret .= "<img src='$imgprefix/nouserpic.png' width='80'
height='80' alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
}
}
diff -r 19969e7506a3 -r efa4d53fc342 cgi-bin/bml/scheme/gradation-vertical.look
--- a/cgi-bin/bml/scheme/gradation-vertical.look Tue Aug 11 16:20:04
2009 -0500
+++ b/cgi-bin/bml/scheme/gradation-vertical.look Wed Aug 12 01:27:16
2009 -0500
@@ -65,20 +65,13 @@ accountlinks<=
my $inbox = $remote->notification_inbox;
my $unread = $inbox->unread_count;
my $identity = $remote->is_identity;
- my $wh = "";
- if ( $userpic ) {
- if ( $userpic->width > $userpic->height ) {
- $wh = 'width="' . ( $userpic->width > 80 ? 80 :
$userpic->width ) . '"';
- } else {
- $wh = 'height="' . ( $userpic->height > 80 ? 80 :
$userpic->height ) . '"';
- }
- }
$ret .= "<div id='account-links-userpic'><a
href='$LJ::SITEROOT/editpics'>";
if ( $userpic ) {
+ my $wh = $userpic->img_fixedsize( width => 80, height => 80 );
$ret .= "<img src='" . $userpic->url . "' $wh
alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
} else {
- $ret .= "<img src='$LJ::IMGPREFIX/nouserpic.png' width='80'
alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
+ $ret .= "<img src='$LJ::IMGPREFIX/nouserpic.png' width='80'
height='80' alt=\"$ML{'sitescheme.accountlinks.userpic.alt'}\" />";
}
$ret .= "</a></div>";
$ret .= "<div id='account-links-text'>";
diff -r 19969e7506a3 -r efa4d53fc342 cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl Tue Aug 11 16:20:04 2009 -0500
+++ b/cgi-bin/weblib.pl Wed Aug 12 01:27:16 2009 -0500
@@ -2571,9 +2571,11 @@ sub control_strip
my $ret;
if ($remote) {
my $remote_display = LJ::ljuser($remote);
- if ($remote->{'defaultpicid'}) {
- my $url =
"$LJ::USERPIC_ROOT/$remote->{'defaultpicid'}/$remote->{'userid'}";
- $ret .= "<td id='lj_controlstrip_userpic' style='background-image:
none;'><a href='$LJ::SITEROOT/editpics'><img src='$url'
alt=\"$BML::ML{'web.controlstrip.userpic.alt'}\"
title=\"$BML::ML{'web.controlstrip.userpic.title'}\" height='43' /></a></td>";
+ my $userpic = $remote->userpic;
+ if ( $userpic ) {
+ my $wh = $userpic->img_fixedsize( width => 43, height => 43 );
+ $ret .= "<td id='lj_controlstrip_userpic' style='background-image:
none;'><a href='$LJ::SITEROOT/editpics'>";
+ $ret .= "<img src='" . $userpic->url . "'
alt=\"$BML::ML{'web.controlstrip.userpic.alt'}\"
title=\"$BML::ML{'web.controlstrip.userpic.title'}\" $wh /></a></td>";
} else {
my $tinted_nouserpic_img = "";
@@ -2591,10 +2593,11 @@ sub control_strip
}
$ret .= "<td id='lj_controlstrip_userpic' style='background-image:
none;'><a href='$LJ::SITEROOT/editpics'>";
if ($tinted_nouserpic_img eq "") {
- $ret .= "<img src='$LJ::IMGPREFIX/controlstrip/nouserpic.gif'
alt=\"$BML::ML{'web.controlstrip.nouserpic.alt'}\"
title=\"$BML::ML{'web.controlstrip.nouserpic.title'}\" height='43' />";
+ $ret .= "<img src='$LJ::IMGPREFIX/controlstrip/nouserpic.gif'
";
} else {
- $ret .= "<img src='$tinted_nouserpic_img'
alt=\"$BML::ML{'web.controlstrip.nouserpic.alt'}\"
title=\"$BML::ML{'web.controlstrip.nouserpic.title'}\" height='43' />";
+ $ret .= "<img src='$tinted_nouserpic_img' ";
}
+ $ret .= "alt=\"$BML::ML{'web.controlstrip.nouserpic.alt'}\"
title=\"$BML::ML{'web.controlstrip.nouserpic.title'}\" height='43' width='43'
/>";
$ret .= "</a></td>";
}
$ret .= "<td id='lj_controlstrip_user' nowrap='nowrap'><form
id='Greeting' class='nopic' action='$LJ::SITEROOT/logout?ret=1'
method='post'><div>";
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog