{'user'}; } my $u = LJ::load_user($user); unless ($u) { $title = $ML{'Error'}; $body = $ML{'error.username_notfound'}; return; } my $userid = $u->{'userid'}; if ($u->{'journaltype'} eq "R") { LJ::load_user_props($u, "renamedto"); return BML::redirect("/tools/memories.bml?user=$u->{'renamedto'}"); } LJ::load_user_props($u, "opt_blockrobots") if $u->{'statusvis'} eq 'V'; unless ($u->{'statusvis'} eq 'V' && ! $u->{'opt_blockrobots'}) { $head = LJ::robot_meta_tags(); } if ($u->{'statusvis'} eq "S") { $title = $ML{'error.suspended.title'}; $body = "$LJ::SITENAME,'user'=>$user}) . " p?>"; return; } if ($u->{'statusvis'} eq "D") { $title = $ML{'error.deleted.title'}; $body = "$user}) . " p?>"; return; } if ($u->{'statusvis'} eq "X") { $title = $ML{'error.purged.title'}; $body = ""; return; } my $authasu = LJ::get_authas_user($GET{'authas'} || $user); my $authasarg; if ($authasu) { $body .= "
\n\n"; $user = $authasu->{user}; $userid = $authasu->{userid}; $authasarg = "authas=$authasu->{user}&"; } else { $authasu = $remote; } my %filters = ("all" => $ML{'.filter.all'}, "own" => BML::ml(".filter.own", { 'user' => $user }), "other" => $ML{'.filter.other'}); my $filter = $GET{'filter'} || "all"; unless (defined $filters{$filter}) { $filter = "all"; } my %sorts = ('memid' => $ML{'.sort.orderadded'}, 'des' => $ML{'.sort.description'}, 'user' => $ML{'.sort.journal'}); my $sort = ($GET{'sortby'} || 'memid'); unless (defined $sorts{$sort}) { $sort = 'memid'; } my $secwhere = "AND m.security='public'"; if ($authasu) { if ($authasu->{userid} == $userid) { $secwhere = ""; } elsif ($authasu->{'journaltype'} eq 'P' and LJ::is_friend($userid, $authasu->{'userid'})) { $secwhere = "AND m.security IN ('public', 'friends')"; } } if ($GET{'keyword'}) { my $qkw = $dbr->quote($GET{'keyword'}); if ($GET{'keyword'} eq "*") { $title = $ML{'.title.memorable'}; $body .= " $user }) . " p?>"; } else { $title = BML::ml(".title.keyword", { 'keyword' => $GET{'keyword'}, 'user' => $user }); $body .= BML::ml(".body.keyword", { 'keyword' => $GET{'keyword'}, 'user' => $user }); } $body .= "\n"; $body .= "<< $ML{'.back'}"; my $extrawhere = ""; if ($filter eq "own" || $filter eq "other") { my $op = $filter eq "own" ? "=" : "<>"; $extrawhere = "AND m.journalid $op $userid"; } $sth = $dbr->prepare("SELECT m.memid, u.user, m.journalid, m.jitemid, m.des, m.security ". "FROM memorable m, memkeyword mk, keywords k ". "LEFT JOIN useridmap u ON m.journalid=u.userid ". "WHERE k.keyword=$qkw AND mk.memid=m.memid AND mk.kwid=k.kwid ". "AND m.userid=$userid $secwhere $extrawhere"); $sth->execute; my @memories; while (my $mem = $sth->fetchrow_hashref) { push @memories, $mem; } @memories = sort { $a->{$sort} cmp $b->{$sort} } @memories; $body .= "