Exemplo n.º 1
0
function Vote($pfx, $commune_id, $user_id, $prev_rating, $vote)
{
    $objResponse = new xajaxResponse();
    if ($commune_id == 5100) {
        return $objResponse;
    }
    if (get_uid(false) != $user_id) {
        return $objResponse;
    }
    // !!! Вообще, везде бы, где ajax, проверку такую делать.
    $uStatus = commune::GetUserCommuneRel($commune_id, $user_id);
    if (!$uStatus || !$uStatus['is_accepted'] || $uStatus['is_deleted'] || $uStatus['is_banned'] || is_banned($user_id)) {
        $objResponse->script("document.location.replace('/commune/?id={$commune_id}')");
    } else {
        $comm = commune::GetCommune($commune_id, $user_id);
        if ($comm && !$comm['is_blocked']) {
            $v = commune::Vote($commune_id, $user_id, intval($vote));
            // заменяем html'овский минус (−) на -
            $prev_rating = str_replace('–', '-', $prev_rating);
            $rating = intval($prev_rating) + $v;
            $html = __commPrntRating($comm, $user_id, $rating);
            $objResponse->assign($pfx . $commune_id, 'innerHTML', $html);
            $objResponse->script("if(window.lockRating{$commune_id}) lockRating{$commune_id}=0;");
        }
    }
    return $objResponse;
}