[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
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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}) { --------------------------------------------------------------------------------