function qa_limits_remaining($userid, $action) { if (qa_to_override(__FUNCTION__)) { $args = func_get_args(); return qa_call_override(__FUNCTION__, $args); } require_once QA_INCLUDE_DIR . 'qa-db-limits.php'; $dblimits = qa_db_limits_get($userid, qa_remote_ip_address(), $action); return qa_limits_calc_remaining($action, @$dblimits['user'], @$dblimits['ip']); }
function qa_limits_remaining($userid, $action) { if (qa_to_override(__FUNCTION__)) { $args = func_get_args(); return qa_call_override(__FUNCTION__, $args); } require_once QA_INCLUDE_DIR . 'qa-app-options.php'; require_once QA_INCLUDE_DIR . 'qa-db-limits.php'; $period = (int) (qa_opt('db_time') / 3600); $dblimits = qa_db_limits_get($userid, qa_remote_ip_address(), $action); switch ($action) { case QA_LIMIT_QUESTIONS: $userlimit = qa_opt('max_rate_user_qs'); $iplimit = qa_opt('max_rate_ip_qs'); break; case QA_LIMIT_ANSWERS: $userlimit = qa_opt('max_rate_user_as'); $iplimit = qa_opt('max_rate_ip_as'); break; case QA_LIMIT_COMMENTS: $userlimit = qa_opt('max_rate_user_cs'); $iplimit = qa_opt('max_rate_ip_cs'); break; case QA_LIMIT_VOTES: $userlimit = qa_opt('max_rate_user_votes'); $iplimit = qa_opt('max_rate_ip_votes'); break; case QA_LIMIT_REGISTRATIONS: $userlimit = 1; // not really relevant $iplimit = qa_opt('max_rate_ip_registers'); break; case QA_LIMIT_LOGINS: $userlimit = 1; // not really relevant $iplimit = qa_opt('max_rate_ip_logins'); break; case QA_LIMIT_UPLOADS: $userlimit = qa_opt('max_rate_user_uploads'); $iplimit = qa_opt('max_rate_ip_uploads'); break; case QA_LIMIT_FLAGS: $userlimit = qa_opt('max_rate_user_flags'); $iplimit = qa_opt('max_rate_ip_flags'); break; case QA_LIMIT_MESSAGES: $userlimit = qa_opt('max_rate_user_messages'); $iplimit = qa_opt('max_rate_ip_messages'); break; default: qa_fatal_error('Unknown limit code in qa_limits_remaining: ' . $action); break; } return max(0, min($userlimit - (@$dblimits['user']['period'] == $period ? $dblimits['user']['count'] : 0), $iplimit - (@$dblimits['ip']['period'] == $period ? $dblimits['ip']['count'] : 0))); }
function qa_limits_remaining($userid, $actioncode) { require_once QA_INCLUDE_DIR . 'qa-app-options.php'; require_once QA_INCLUDE_DIR . 'qa-db-limits.php'; $period = (int) (qa_opt('db_time') / 3600); $dblimits = qa_db_limits_get($userid, qa_remote_ip_address(), $actioncode); switch ($actioncode) { case 'Q': $userlimit = qa_opt('max_rate_user_qs'); $iplimit = qa_opt('max_rate_ip_qs'); break; case 'A': $userlimit = qa_opt('max_rate_user_as'); $iplimit = qa_opt('max_rate_ip_as'); break; case 'C': $userlimit = qa_opt('max_rate_user_cs'); $iplimit = qa_opt('max_rate_ip_cs'); break; case 'V': $userlimit = qa_opt('max_rate_user_votes'); $iplimit = qa_opt('max_rate_ip_votes'); break; case 'L': $userlimit = 1; // not really relevant $iplimit = qa_opt('max_rate_ip_logins'); break; case 'U': $userlimit = qa_opt('max_rate_user_uploads'); $iplimit = qa_opt('max_rate_ip_uploads'); break; case 'F': $userlimit = qa_opt('max_rate_user_flags'); $iplimit = qa_opt('max_rate_ip_flags'); break; case 'M': $userlimit = qa_opt('max_rate_user_messages'); $iplimit = qa_opt('max_rate_ip_messages'); break; } return max(0, min($userlimit - (@$dblimits['user']['period'] == $period ? $dblimits['user']['count'] : 0), $iplimit - (@$dblimits['ip']['period'] == $period ? $dblimits['ip']['count'] : 0))); }