/** * Обработчик событий страницы /about/team/ (Команда) * */ function teamAction() { $DB = new DB('master'); require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/team.php"; $action = $_POST['action']; switch ($action) { case 'updatecategory': if (!get_uid(false)) { header("Location: /fbd.php"); exit; } if (!hasPermissions('about')) { header("Location: /about/team"); exit; } $id = front::$_req['ecf_id']; $name = stripslashes(front::$_req['ecf_name']); $position = front::$_req['ecf_number']; $error = 0; if (empty($name)) { $error = 1; $error_msgs[1] = 'Поле "Название" заполнено некорректно'; } if (!is_numeric($position)) { $error = 1; $error_msgs[2] = 'Поле "Порядок" заполнено некорректно'; } else { $position = (int) $position; if ($position <= 0) { $error = 1; $error_msgs[2] = 'Поле "Порядок" заполнено некорректно'; } } $name = change_q($name); if ($error) { front::og("tpl")->error_msgs_ecf = $error_msgs; front::og("tpl")->ecf_name = $name; front::og("tpl")->ecf_position = $position; front::og("tpl")->ecf_id = $id; } else { team::EditGroup($id, $name, $position); header('Location: /about/team/'); exit; } break; case 'addpeople': if (!get_uid(false)) { header("Location: /fbd.php"); exit; } if (!hasPermissions('about')) { header("Location: /about/team"); exit; } $p_name = stripslashes(front::$_req['pt_name']); $p_login = stripslashes(front::$_req['pt_login']); $p_occupation = stripslashes(front::$_req['pt_occupation']); $p_position = stripslashes(front::$_req['pt_position']); $p_group = stripslashes(front::$_req['pt_group']); $p_info = stripslashes(front::$_req['pt_info']); $p_foto = $_FILES['pt_photo']; $error = 0; if (empty($p_name)) { $error = 1; $error_msgs[1] = 'Поле "Имя, фамилия" заполнено некорректно'; } if (empty($p_occupation)) { $error = 1; $error_msgs[2] = 'Поле "Должность" заполнено некорректно'; } if (!is_numeric($p_position) && $p_position != '') { $error = 1; $error_msgs[3] = 'Поле "Порядок" заполнено некорректно'; } else { $p_position = (int) $p_position; } if (!empty($p_login)) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php"; $u = new users(); if (!$u->GetUid($ee, $p_login)) { $error = 1; $error_msgs[4] = 'Поле "Логин" заполнено некорректно'; } } $p_name = change_q($p_name); $p_login = change_q($p_login); $p_occupation = change_q($p_occupation); $p_info = change_q($p_info); $p_name = addslashes($p_name); $p_occupation = addslashes($p_occupation); $p_info = addslashes($p_info); $p_foto = ''; if (!empty($_FILES['pt_photo']['tmp_name'])) { list($i_width, $i_height, $i_type) = @getimagesize($_FILES['pt_photo']['tmp_name']); if (in_array($i_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) && $i_width == 150 && $i_height == 200) { $p_userpic = new CFile($_FILES['pt_photo']); if ($p_userpic->name) { $e = team::UpdateFoto($p_userpic); if ($e['error'] == '1') { $error = 1; $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки'; $p_foto = $e['foto']; } else { $p_foto = $e['foto']; $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки'; } } } else { $error = 1; $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки'; } } if ($error) { if ($p_foto != '') { $p_userpic->Delete(0, 'team/' . $p_foto); } front::og("tpl")->error_msgs_apf = $error_msgs; front::og("tpl")->p_name = $p_name; front::og("tpl")->p_login = $p_login; front::og("tpl")->p_occupation = $p_occupation; front::og("tpl")->p_group = $p_group; front::og("tpl")->p_position = $p_position; front::og("tpl")->p_info = $p_info; } else { if ($p_position <= 0) { $max_position = front::og("db")->select("SELECT MAX(position) as position FROM team_people WHERE groupid = ?;", $p_group)->fetchOne(); $p_position = $max_position['position'] + 1; } team::AddUser($p_name, $p_login, $p_occupation, $p_foto, $p_group, $p_position, $p_info); header('Location: /about/team/'); exit; } break; case 'updatepeople': if (!get_uid(false)) { header("Location: /fbd.php"); exit; } if (!hasPermissions('about')) { header("Location: /about/team"); exit; } $p_id = stripslashes(front::$_req['pt_id']); $p_name = stripslashes(front::$_req['pt_name']); $p_login = stripslashes(front::$_req['pt_login']); $p_occupation = stripslashes(front::$_req['pt_occupation']); $p_position = stripslashes(front::$_req['pt_position']); $p_group = stripslashes(front::$_req['pt_group']); $p_info = stripslashes(front::$_req['pt_info']); $p_foto = $_FILES['pt_photo']; $error = 0; if (empty($p_name)) { $error = 1; $error_msgs[1] = 'Поле "Имя, фамилия" заполнено некорректно'; } if (empty($p_occupation)) { $error = 1; $error_msgs[2] = 'Поле "Должность" заполнено некорректно'; } if (!is_numeric($p_position)) { $error = 1; $error_msgs[3] = 'Поле "Порядок" заполнено некорректно'; } else { $p_position = (int) $p_position; if ($p_position <= 0) { $error = 1; $error_msgs[3] = 'Поле "Порядок" заполнено некорректно'; } } if (!empty($p_login)) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php"; $u = new users(); if (!$u->GetUid($ee, $p_login)) { $error = 1; $error_msgs[4] = 'Поле "Логин" заполнено некорректно'; } } $p_name = change_q($p_name); $p_login = change_q($p_login); $p_occupation = change_q($p_occupation); $p_info = change_q($p_info); $p_name = addslashes($p_name); $p_occupation = addslashes($p_occupation); $p_info = addslashes($p_info); $p_foto = ''; if (!empty($_FILES['pt_photo']['tmp_name'])) { list($i_width, $i_height, $i_type) = @getimagesize($_FILES['pt_photo']['tmp_name']); if (in_array($i_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) && $i_width == 150 && $i_height == 200) { $p_userpic = new CFile($_FILES['pt_photo']); if ($p_userpic->name) { $e = team::UpdateFoto($p_userpic); if ($e['error'] == '1') { $error = 1; $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки'; $p_foto = $e['foto']; } else { $p_foto = $e['foto']; $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки'; } } } else { $error = 1; $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки'; } } if ($error) { if ($p_foto != '') { $p_userpic->Delete(0, 'team/' . $p_foto); } front::og("tpl")->error_msgs_apf = $error_msgs; front::og("tpl")->p_name = $p_name; front::og("tpl")->p_login = $p_login; front::og("tpl")->p_occupation = $p_occupation; front::og("tpl")->p_group = $p_group; front::og("tpl")->p_position = $p_position; front::og("tpl")->p_info = $p_info; front::og("tpl")->p_id = $p_id; front::og("tpl")->p_action = 'updatepeople'; } else { team::EditUser($p_id, $p_name, $p_login, $p_occupation, $p_foto, $p_group, $p_position, $p_info); header('Location: /about/team/'); exit; } break; case 'insertcategory': if (!get_uid(false)) { header("Location: /fbd.php"); exit; } if (!hasPermissions('about')) { header("Location: /about/team"); exit; } $name = stripslashes(front::$_req['acf_name']); $position = front::$_req['acf_number']; $error = 0; if (empty($name)) { $error = 1; $error_msgs[1] = 'Поле "Название" заполнено некорректно'; } if (!is_numeric($position)) { $error = 1; $error_msgs[2] = 'Поле "Порядок" заполнено некорректно'; } else { $position = (int) $position; if ($position <= 0) { $error = 1; $error_msgs[2] = 'Поле "Порядок" заполнено некорректно'; } } $name = change_q($name); if ($error) { front::og("tpl")->error_msgs_acf = $error_msgs; front::og("tpl")->acf_name = $name; front::og("tpl")->acf_position = $position; front::og("tpl")->acf_id = $id; } else { team::CreateGroup($name, $position); header('Location: /about/team/'); exit; } break; case 'deletecategory': if (hasPermissions('about')) { team::DeleteGroup(front::$_req['dcf_id']); } header('Location: /about/team/'); exit; break; case 'deleteteampeople': if (hasPermissions('about')) { team::DeleteUser(front::$_req['dtf_id']); } header('Location: /about/team/'); exit; break; } // Берем команду для вывода front::og("tpl")->groups = team::GetAllGroups(); foreach (front::og("tpl")->groups as $group) { $sql = "SELECT team_people.*, team_groups.id as groups_id,team_groups.title as groups_title, team_groups.position as groups_position FROM team_people LEFT JOIN team_groups ON team_groups.id = team_people.groupid WHERE team_people.groupid=?i ORDER BY team_groups.position, team_people.position, team_people.id ASC"; $team = $DB->rows($sql, $group['id']); front::og("tpl")->team_people[$group['id']] = array(); if ($team) { foreach ($team as $t) { array_push(front::og("tpl")->team_people[$group['id']], $t); } } } front::og("tpl")->text = static_pages::get("about_team"); front::og("tpl")->script = array('team.js'); front::og("tpl")->display("about/about_team.tpl"); }