[dw-free] Standardize height + width attributes for user icon display
[commit: http://hg.dwscoalition.org/dw-free/rev/efa4d53fc342]
http://bugs.dwscoalition.org/show_bug.cgi?id=926
Properly specify both width and height attributes for scaled userpics.
Patch by
draigwen.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=926
Properly specify both width and height attributes for scaled userpics.
Patch by
Files modified:
- cgi-bin/LJ/Userpic.pm
- cgi-bin/bml/scheme/blueshift.look
- cgi-bin/bml/scheme/celerity.look
- cgi-bin/bml/scheme/gradation-vertical.look
- cgi-bin/weblib.pl
--------------------------------------------------------------------------------
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>";
--------------------------------------------------------------------------------
