{'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"; $body .= LJ::make_authas_select($remote, { 'authas' => $authasu->{user} }) . "\n"; $body .= LJ::html_hidden(keyword => $GET{keyword}) if $GET{keyword}; $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 .= "
"; $body .= LJ::html_hidden(keyword => $GET{keyword}) if $GET{keyword}; $body .= LJ::html_hidden(user => $GET{user}) if $GET{user}; $body .= LJ::html_hidden(authas => $GET{user}) if $GET{authas}; $body .= "$ML{'.form.sort'} "; $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 .= ""; return; } $title = $ML{'.title.memorable'}; $body .= BML::ml(".body.list_categories", { 'user' => $user }); if ($filter eq "all") { $sth = $dbr->prepare("SELECT k.keyword, COUNT(*) AS 'count' FROM memorable m, memkeyword mk, keywords k WHERE mk.memid=m.memid AND mk.kwid=k.kwid AND m.userid=$userid $secwhere GROUP BY k.keyword"); } else { my $op = $filter eq "own" ? "=" : "<>"; $sth = $dbr->prepare("SELECT k.keyword, COUNT(*) AS 'count' FROM memorable m, memkeyword mk, keywords k WHERE mk.memid=m.memid AND mk.kwid=k.kwid AND m.userid=$userid $secwhere AND m.journalid $op $userid GROUP BY k.keyword"); } $sth->execute; my @sortedrows; push @sortedrows, $_ while $_ = $sth->fetchrow_hashref; @sortedrows = sort { $a->{'keyword'} cmp $b->{'keyword'} } @sortedrows; $body .= "
"; $body .= ""; $body .= "$ML{'.form.filter'} "; $body .= "
"; unless (@sortedrows) { $body .= ""; } else { $body .= ""; } return; _code?> head=> body<= <=body page?> link: htdocs/tools/memories.bml, htdocs/tools/memadd.bml, htdocs/talkread.bml form: htdocs/tools/memories.bml _c?>