/** * Установка/снятие кандидата. * * @param integer id предложения * * @return xajaxResponse */ function Candidate($oid) { global $DB; session_start(); $uid = $_SESSION['uid']; $oid = intval($oid); $objResponse = new xajaxResponse(); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php'; $row = $DB->row(' SELECT offers.*, users.login, projects.user_id AS owner_id, projects.closed FROM projects_contest_offers AS offers JOIN projects ON projects.id = offers.project_id JOIN users ON users.uid = offers.user_id WHERE offers.id = ? AND ((SELECT COUNT(*) FROM projects_contest_offers WHERE project_id = projects.id AND (position IS NOT NULL AND position > 0)) = 0) ', $oid); if (!$row) { $objResponse->alert('Несуществующее предложение'); return $objResponse; } if (!is_emp() || $uid != $row['owner_id']) { $objResponse->alert('Несуществующее предложение!'); return $objResponse; } if ($row['closed'] == 't') { $objResponse->alert('Проект закрыт!'); return $objResponse; } $contest = new contest(0, $uid, is_emp(), TRUE, hasPermissions('projects')); if ($error = $contest->Candidate($oid)) { $objResponse->alert($error); return $objResponse; } if ($row['selected'] == 't') { $objResponse->call('candidate.deleted', $row['user_id'], $row['login']); } else { $objResponse->call('candidate.added', $row['user_id'], $row['login']); } return $objResponse; }