[dw-free] Memories pass in user name, not user object; server error
[commit: http://hg.dwscoalition.org/dw-free/rev/a4b0829dcccd]
http://bugs.dwscoalition.org/show_bug.cgi?id=2921
Clean up memories code page code: use a user, rather than a username for
LJ::item_link.
Patch by
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2921
Clean up memories code page code: use a user, rather than a username for
LJ::item_link.
Patch by
Files modified:
- cgi-bin/LJ/Entry.pm
- htdocs/tools/memories.bml
--------------------------------------------------------------------------------
diff -r 48959df3692d -r a4b0829dcccd cgi-bin/LJ/Entry.pm
--- a/cgi-bin/LJ/Entry.pm Mon Aug 23 19:12:30 2010 +0800
+++ b/cgi-bin/LJ/Entry.pm Mon Aug 23 19:40:17 2010 +0800
@@ -2150,11 +2150,12 @@ sub item_link
{
my ($u, $itemid, $anum, @args) = @_;
my $ditemid = $itemid*256 + $anum;
+ $u = LJ::load_user( $u ) unless LJ::isu( $u );
# XXX: should have an option of returning a url with escaped (&)
# or non-escaped (&) arguments. a new link object would be best.
my $args = @args ? "?" . join("&", @args) : "";
- return LJ::journal_base( $u ) . "/$ditemid.html$args";
+ return $u->journal_base . "/$ditemid.html$args";
}
# <LJFUNC>
diff -r 48959df3692d -r a4b0829dcccd htdocs/tools/memories.bml
--- a/htdocs/tools/memories.bml Mon Aug 23 19:12:30 2010 +0800
+++ b/htdocs/tools/memories.bml Mon Aug 23 19:40:17 2010 +0800
@@ -218,21 +218,23 @@ _c?>
{ security => $securities, filter => $filter });
return $dberr->() unless defined $memoryhash;
my @memories = $sortfunc{$sort}->( values %$memoryhash );
+ my $mem_us = LJ::load_userids( map { $_->{journalid} } @memories );
$body .= "<form method='post' action='./memories?user=$user$authasarge'>\n" . LJ::form_auth()
if $is_owner && $GET{multidelete};
$body .= "<ul>\n";
foreach my $mem (@memories) {
- my $user = $mem->{user};
+ my $memuser = $mem->{user};
+ my $mem_u = $mem_us->{ $mem->{journalid} };
my $eh_des = LJ::ehtml($mem->{'des'});
LJ::text_out(\$eh_des);
my ($entrylink, $editlink);
- if ($user) {
- my $itemid = int($mem->{'ditemid'} / 256);
- my $anum = $mem->{'ditemid'} % 256;
- $entrylink = LJ::item_link($user, $itemid, $anum);
- $editlink = "/tools/memadd?journal=$user&itemid=$mem->{ditemid}$authasarge";
+ if ( $memuser && $mem_u ) {
+ my $itemid = int( $mem->{ditemid} / 256 );
+ my $anum = $mem->{ditemid} % 256;
+ $entrylink = LJ::item_link( $mem_u, $itemid, $anum );
+ $editlink = "/tools/memadd?journal=$memuser&itemid=$mem->{ditemid}$authasarge";
} else {
$entrylink = "/talkread?itemid=$mem->{ditemid}";
$editlink = "/tools/memadd?itemid=$mem->{ditemid}$authasarge";
@@ -246,11 +248,11 @@ _c?>
if $GET{multidelete};
}
- my %icons = (
- 'friends' => "<?securityprotected?>",
- 'private' => "<?securityprivate?>",
- );
- $body .= "<p><li>$delete <a href=\"$entrylink\"><b>$eh_des</b></a> $edit $icons{$mem->{security}}<br /><font size='-1'><b>$user</b></font></li>";
+ my $icon = {
+ friends => "<?securityprotected?>",
+ private => "<?securityprivate?>",
+ }->{ $mem->{security} } || '';
+ $body .= "<p><li>$delete <a href=\"$entrylink\"><b>$eh_des</b></a> $edit $icon<br /><font size='-1'><b>$memuser</b></font></li>";
}
$body .= "</ul>";
if ($is_owner && $GET{multidelete}) {
--------------------------------------------------------------------------------
