예제 #1
0
 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>']);
     }
 }