static function votereport_api($user, $qreq, $prow) { $tagger = new Tagger($user); if (!($tag = $tagger->check($qreq->tag, Tagger::NOVALUE))) { json_exit(["ok" => false, "error" => $tagger->error_html]); } if (!$user->can_view_peruser_tags($prow, $tag)) { json_exit(["ok" => false, "error" => "Permission error."]); } $votemap = []; preg_match_all('/ (\\d+)~' . preg_quote($tag) . '#(\\S+)/i', $prow->all_tags_text(), $m); $is_approval = TagInfo::is_approval($tag); $min_vote = $is_approval ? 0 : 0.001; for ($i = 0; $i != count($m[0]); ++$i) { if ($m[2][$i] >= $min_vote) { $votemap[$m[1][$i]] = $m[2][$i]; } } $user->ksort_cid_array($votemap); $result = []; foreach ($votemap as $k => $v) { if ($is_approval) { $result[] = $user->reviewer_html_for($k); } else { $result[] = $user->reviewer_html_for($k) . " ({$v})"; } } if (empty($result)) { json_exit(["ok" => true, "result" => ""]); } else { json_exit(["ok" => true, "result" => '<span class="nw">' . join(',</span> <span class="nw">', $result) . '</span>']); } }