function del_same_editor_rights() { /*Проверка прав на выполнение действия*/ if (!check_rights('add_same_editor_rights')) { return "У вас нет соответствующих прав"; } /*Получаем и проверяем данные от пользователя*/ $editor_id = (int) $_GET['editor']; /*Получаем и проверяем данные от пользователя*/ $user_id = (int) $_GET['user']; /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$editor_id} AND `timetable_editor`=1") == 0) { return "Ошибка в формате входных данных (editor)"; } /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id}") == 0) { return "Ошибка в формате входных данных (user)"; } //Запрос к базе if (db_easy_count("SELECT * FROM `phpbb_timetable_editors_rights` WHERE `user_id`={$user_id} AND `editor_id`={$editor_id}") > 0) { $insertRES = db_query("DELETE FROM `phpbb_timetable_editors_rights` WHERE `user_id`={$user_id} AND `editor_id`={$editor_id}"); } /*Проверка правильности выполнения запроса к БД*/ if (!db_result($insertRES)) { return "Ошибка при выполнении (DELETE)"; } //Выполняем HTTP запрос header("location: /manager.php?action=show_timetable_rights"); }
function check_rights($right_name = "") { //Define global variables global $user; //Check rights if (isset($GLOBALS['super_rights_users'][$user->data['username']])) { //For users with super rights return true; } else { //If if ($right_name !== "") { $rightRES = db_query("SELECT * FROM `phpbb_rights` WHERE `name`='{$right_name}'"); if (db_count($rightRES) == 1) { $right_id = db_fetch($rightRES)['id']; } else { show("Ошибка в функции check_right_name(). Права с именем '{$right_name}' не существует или имеется несколько прав с таким именем.<br/>"); show('Debug backtrace:'); show(debug_backtrace()); exit; } if (db_easy_count("SELECT * FROM `phpbb_rights_users` WHERE `user_id`={$user->data['user_id']} AND `right_id`={$right_id}") > 0) { return true; } else { return false; } } } }
function delete_right() { /*Проверка прав на выполнение действия*/ if (!check_rights('delete_right')) { return "У вас нет соответствующих прав"; } //Определяем переменную $user_id = (int) $_GET['user']; /*Получаем и проверяем данные от пользвователя*/ $right_id = (int) $_GET['right']; /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id}") == 0) { return "Ошибка входных данных (user)"; } /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_rights` WHERE `id`='{$right_id}'") == 0) { return "Ошибка в формате входных данных (right)"; } //Запрос к базе $delRES = db_query("DELETE FROM `phpbb_rights_users` WHERE `user_id`={$user_id} AND `right_id`={$right_id}"); /*Проверка правильности выполнения запроса к БД*/ if (!db_result($delRES)) { return "Ошибка при выполнении (delete)"; } //Выполняем HTTP запрос header("location: /manager.php?action=show_rights"); }
function delete_hr_manager_right() { /*Проверка прав на выполнение действия*/ if (!check_rights('delete_hr_manager_right')) { return "У вас нет соответствующих прав"; } /*Проверка входных данных*/ if (!isset($_GET['user'])) { return "Ошибка входных данных (1)"; } /*Проверка входных данных*/ if (!preg_match("/^[0-9]{1,8}\$/", $_GET['user'])) { return "Ошибка в формате входных данных (2)"; } //Определяем переменную $user_id = (int) $_GET['user']; /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id} AND `hrmanager`=1") == 0) { return "Ошибка в формате входных данных (3)"; } //Запрос к базе db_query("UPDATE `phpbb_users` SET `hrmanager`=0 WHERE `user_id`={$user_id}"); /*Проверка правильности выполнения запроса к БД*/ if (!db_result()) { return "Ошибка при выполнении (4)"; } //Выполняем HTTP запрос header("location: /manager.php?action=show_rights"); }
function add_right() { //Определяем переменные $html = ""; $users_html = ""; /*Проверка прав на выполнение действия*/ if (!check_rights('add_right')) { return "У вас нет соответствующих прав"; } //IF if (!isset($_POST['user'])) { /*Получаем и проверяем данные от пользвователя*/ $right_id = (int) $_GET['right']; /*Проверка входных данных*/ $rightRES = db_query("SELECT `name` FROM `phpbb_rights` WHERE `id`='{$right_id}'"); if (db_count($rightRES) == 0) { return "Ошибка в формате входных данных (right)"; } else { $right_name = db_fetch($rightRES)['name']; } //Запрос к базе $usersRES = db_query("SELECT * FROM `phpbb_users`\r\n\t\t\t\t\t\t\t\tWHERE (`user_type`=0 OR `user_type`=3) AND `username`!='root'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY `username` ASC"); //WHILE while ($userWHILE = db_fetch($usersRES)) { if (db_easy_count("SELECT * FROM `phpbb_rights_users`\r\n\t\t\t\t\t\t\t\tWHERE `user_id`={$userWHILE['user_id']}\r\n\t\t\t\t\t\t\t\t\tAND `right_id`={$right_id}\r\n\t\t\t\t\t\t") == 0) { $users_html .= "<option value='{$userWHILE['user_id']}'>{$userWHILE['username']}</option>"; } } /*Подключаем шаблон*/ $html .= template_get("rights/add_right", array('users' => $users_html, 'right_id' => $right_id, 'right_name' => $right_name)); //ELSE } else { /*Получаем и проверяем данные от пользвователя*/ $user_id = (int) $_POST['user']; /*Получаем и проверяем данные от пользвователя*/ $right_id = (int) $_POST['right']; /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id}") == 0) { return "Ошибка в формате входных данных (user)"; } /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_rights` WHERE `id`='{$right_id}'") == 0) { return "Ошибка в формате входных данных (right)"; } //Запрос к базе if (db_easy_count("SELECT * FROM `phpbb_rights_users` WHERE `user_id`={$user_id} AND `right_id`={$right_id}") == 0) { $insertRES = db_query("INSERT INTO `phpbb_rights_users` SET `user_id`={$user_id}, `right_id`={$right_id}"); } /*Проверка правильности выполнения запроса к БД*/ if (!db_result($insertRES)) { return "Ошибка при выполнении (insert)"; } //Выполняем HTTP запрос header("location: /manager.php?action=show_rights"); } //Возвращаем значение функции return $html; }
function save_comment() { /*Получаем данные от пользователя*/ if (isset($_POST['id'])) { if (!preg_match("/^comment\\-[0-9]{1,2}\\-[0-9]{4}\\-[0-9]{1,2}\\-[0-9]{1,2}\$/", $_POST['id'])) { return "Ошибка в формате входных данных (td)."; } else { $id = $_POST['id']; } } else { return "Не определены входные данные (id)"; } /*Получаем данные от пользователя*/ if (isset($_POST['comment1'])) { $comment1 = $_POST['comment1']; } else { return "Не определены входные данные (comment1)"; } if (isset($_POST['comment2'])) { $comment2 = $_POST['comment2']; } else { return "Не определены входные данные (comment2)"; } if (isset($_POST['comment3'])) { $comment3 = $_POST['comment3']; } else { return "Не определены входные данные (comment3)"; } /*Обрабатываем полученные данные*/ $temp = explode('-', $id); $year = (int) $temp[2]; $month = (int) $temp[3]; $day = (int) $temp[4]; //Делаем комментарии безопасными для БД $comment1_esc = db_escape($comment1); $comment2_esc = db_escape($comment2); $comment3_esc = db_escape($comment3); //Запрос к базе if (db_easy_count("SELECT * FROM `phpbb_timetable_comments` WHERE `year`={$year} AND `month`={$month} AND `day`={$day}") == 0) { return db_result(db_query("INSERT INTO `phpbb_timetable_comments` SET `year`={$year}, `month`={$month}, `day`={$day}, `comment1`='{$comment1_esc}', `comment2`='{$comment2_esc}', `comment3`='{$comment3_esc}'")); } else { /*Если точно такая же запись уже существует*/ if (db_easy_count("SELECT * FROM `phpbb_timetable_comments` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `comment1`='{$comment1_esc}' AND `comment2`='{$comment2_esc}' AND `comment3`='{$comment3_esc}'") == 1) { return 1; /*иначе идет обновление записи в БД*/ } else { return db_easy_result("UPDATE `phpbb_timetable_comments` SET `comment1`='{$comment1_esc}', `comment2`='{$comment2_esc}', `comment3`='{$comment3_esc}' WHERE `year`={$year} AND `month`={$month} AND `day`={$day}"); } } }
function add_point() { if (!check_rights('add_point')) { //Возвращаем значение функции return "У вас нет соответствующих прав"; } if (!isset($_POST['name'])) { switch (@$_GET['message']) { case "emptypointname": $message_html = template_get("errormessage", array('message' => "Название не может быть пустым")); break; case "samepointexists": $message_html = template_get("errormessage", array('message' => "Офис/склад с таким именем уже имеется")); break; default: $message_html = template_get("nomessage"); } $branches_html = ""; $branchesRES = db_query("SELECT * FROM `phpbb_branches` ORDER BY `name` ASC"); while ($branch = db_fetch($branchesRES)) { $branches_html .= "<option value='{$branch['id']}' {$selected_html}>{$branch['name']}</option>"; } $html .= template_get("points/add_point", array('action' => "/manager.php?action=add_point", 'branches' => $branches_html, 'message' => $message_html)); } else { $do = true; //Проверка на пустое название города $point['name'] = trim($_POST['name']); $point['address'] = trim($_POST['address']); $point['phone'] = trim($_POST['phone']); $point['branch_id'] = trim($_POST['branch']); if (!preg_match("/^.{1,70}\$/", $point['name'])) { header("location: /manager.php?action=add_point&message=emptypointname"); $do = false; } //Проверка на наличие города с таким же именем if (db_easy_count("SELECT * FROM `phpbb_points` WHERE `name`='{$point['name']}'") > 0) { header("location: /manager.php?action=add_point&message=samepointexists"); $do = false; } if ($do) { db_query("INSERT INTO `phpbb_points` SET\r\n\t\t\t\t\t\t\t\t\t\t`name`='{$point['name']}',\r\n\t\t\t\t\t\t\t\t\t\t`address`='{$point['address']}',\r\n\t\t\t\t\t\t\t\t\t\t`phone`='{$point['phone']}',\r\n\t\t\t\t\t\t\t\t\t\t`branch_id`={$point['branch_id']}"); $point_id = db_insert_id(); header("location: /manager.php?action=list_points&message=pointadded&name={$point['name']}"); } } return $html; }
function edit_branch() { if (!check_rights('edit_branch')) { //Возвращаем значение функции return "У вас нет соответствующих прав"; } $branch_id = $_GET['branch']; if (!isset($_POST['name'])) { switch (@$_GET['message']) { case "branchsaved": $message_html = template_get("message", array('message' => "Изменения сохранены")); break; case "emptybranchname": $message_html = template_get("errormessage", array('message' => "Название подразделения не может быть пустым")); break; case "samebranchexists": $message_html = template_get("errormessage", array('message' => "Подразделение с таким именем уже имеется")); break; default: $message_html = template_get("nomessage"); } $branch = db_easy("SELECT * FROM `phpbb_branches` WHERE `id`={$branch_id}"); $show_branch_html = "<a href='/manager.php?action=show_branch&branch={$branch_id}' style='font-size:8pt;'>Просмотреть</a>"; $html .= template_get("branches/edit_branch", array('action' => "/manager.php?action=edit_branch&branch={$branch_id}", 'name' => $branch['name'], 'showbranch' => $show_branch_html, 'message' => $message_html)); } else { $branch['name'] = trim($_POST['name']); $do = true; //Проверка на пустое название города $branch['name'] = trim($_POST['name']); if (!preg_match("/^.{1,70}\$/", $branch['name'])) { header("location: /manager.php?action=edit_branch&branch={$branch_id}&message=emptybranchname"); $do = false; } //Проверка на наличие города с таким же именем if (db_easy_count("SELECT * FROM `phpbb_branches` WHERE `name`='{$branch['name']}'") > 0) { header("location: /manager.php?action=edit_branch&branch={$branch_id}&message=samebranchexists"); $do = false; } if ($do) { db_query("UPDATE `phpbb_branches`\r\n\t\t\t\t\tSET `name`='{$branch['name']}'\r\n\t\t\t\t\tWHERE `id`={$branch_id}"); header("location: /manager.php?action=edit_branch&branch={$branch_id}&message=branchsaved"); } } return $html; }
function add_contact() { /*Проверка прав на выполнение действия*/ if (!check_rights('add_contact')) { //Возвращаем значение функции return "У вас нет соответствующих прав"; } //IF if (!isset($_POST['name'])) { //Возвращаем значение функции return show_form_add_contact(); //ELSE } else { //Проверка 'name' if (preg_match(REGEXP_USERNAME, $_POST['name'])) { if (db_easy_count("SELECT `user_id` FROM `phpbb_users` WHERE `username`='" . $_POST['name'] . "'") > 0) { $errors[] = ERROR_USERNAME_EXISTS; } else { $name = $_POST['name']; } } else { $errors[] = ERROR_USERNAME_REQUIREMENT; } //IF if (count($errors) == 0) { //Определяем переменную /*$user_data=array( 'username'=>$name., 'group_id'=>'1774', 'user_lang'=>'ru', 'user_type'=>0, 'user_regdate'=>time() );*/ $user_data = array('username' => $name, 'user_password' => phpbb_hash('вава'), 'user_email' => '', 'group_id' => '1774', 'user_lang' => 'ru', 'user_type' => 0, 'user_regdate' => time(), 'point_id' => 1); /*Добавляем пользователя, использую функцию PHPBB*/ $user_id = user_add($user_data); //Отправляем HTTP запрос header("location: /manager.php?action=edit_contact&contact={$user_id}"); //ELSE } else { //Возвращаем значение функции return show_form_add_contact($_POST, $errors); } } }
function add_hr_manager_right() { //Определяем переменные $html = ""; $users_html = ""; /*Проверка прав на выполнение действия*/ if (!check_rights('add_hr_manager_right')) { return "У вас нет соответствующих прав"; } //IF if (!isset($_POST['user'])) { //Запрос к базе $usersRES = db_query("SELECT * FROM `phpbb_users` WHERE (`user_type`=0 OR `user_type`=3) AND `hrmanager`!=1 AND `username`!='root' ORDER BY `username` ASC"); //WHILE while ($userWHILE = db_fetch($usersRES)) { $users_html .= "<option value='{$userWHILE['user_id']}'>{$userWHILE['username']}</option>"; } /*Подключаем шаблон*/ $html .= template_get("rights/add_hr_manager_right", array('users' => $users_html)); //ELSE } else { /*Проверка входных данных*/ if (!preg_match("/^[0-9]{1,8}\$/", $_POST['user'])) { return "Ошибка в формате входных данных (1)"; } //Определяем переменную $user_id = (int) $_POST['user']; /*Проверка входных данных*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id}") == 0) { return "Ошибка в формате входных данных (2)"; } //Запрос к базе db_query("UPDATE `phpbb_users` SET `hrmanager`=1 WHERE `user_id`={$user_id}"); /*Проверка правильности выполнения запроса к БД*/ if (!db_result()) { return "Ошибка при выполнении (3)"; } //Выполняем HTTP запрос header("location: /manager.php?action=show_rights"); } //Возвращаем значение функции return $html; }
function add_branch() { if (!check_rights('add_branch')) { //Возвращаем значение функции return "У вас нет соответствующих прав"; } if (!isset($_POST['name'])) { switch (@$_GET['message']) { case "emptybranchname": $message_html = template_get("errormessage", array('message' => "Название подразделения не может быть пустым")); break; case "samebranchexists": $message_html = template_get("errormessage", array('message' => "Подразделение с таким именем уже имеется")); break; default: $message_html = template_get("nomessage"); } $html .= template_get("branches/add_branch", array('action' => "/manager.php?action=add_branch", 'message' => $message_html)); } else { $do = true; //Проверка на пустое название города $branch['name'] = trim($_POST['name']); if (!preg_match("/^.{1,70}\$/", $branch['name'])) { header("location: /manager.php?action=add_branch&message=emptybranchname"); $do = false; } //Проверка на наличие города с таким же именем if (db_easy_count("SELECT * FROM `phpbb_branches` WHERE `name`='{$branch['name']}'") > 0) { header("location: /manager.php?action=add_branch&message=samebranchexists"); $do = false; } if ($do) { db_query("INSERT INTO `phpbb_branches` SET `name`='{$branch['name']}'"); $branch_id = db_insert_id(); header("location: /manager.php?action=show_branch&branch={$branch_id}&message=branchjustadded"); } } return $html; }
function list_contacts() { //НАЧАЛО: Получаем направление сортировки if (isset($_GET['sortdirection'])) { $sortdirection = $_GET['sortdirection']; } else { $sortdirection = "asc"; } if ($sortdirection == "asc") { $link_sortdirection = "desc"; } if ($sortdirection == "desc") { $link_sortdirection = "asc"; } //КОНЕЦ: Получаем направление сортировки //НАЧАЛО: Получаем столбец для сортировки if (isset($_GET['sort'])) { $sort = $_GET['sort']; } else { $sort = "username"; } //КОНЕЦ: Получаем столбец для сортировки //НАЧАЛО: Получаем заголовки колонок для сортировки $headers = array('username' => array('rus' => "ФИО", 'sortcolumn' => "username"), 'branch' => array('rus' => 'Подразделение', 'sortcolumn' => "`phpbb_points`.`name`")); foreach ($headers as $name => $value) { if ($sort == $name) { $headers[$name]['html'] = "<a href='" . uri_make(array('sortdirection' => $link_sortdirection, 'sort' => $name)) . "' class='header'>" . $headers[$name]['rus'] . "<img src='/images/{$sortdirection}.png' class='header'></a>"; } else { $headers[$name]['html'] = "<a href='" . uri_make(array('sortdirection' => 'asc', 'sort' => $name)) . "' class='header'>" . $headers[$name]['rus'] . "</a>"; } } //КОНЕЦ: Получаем заголовки колонок для сортировки //НАЧАЛО: Строим фильтр городов $branchesRES = db_query("SELECT * FROM `phpbb_branches` ORDER BY `name`"); if (isset($_GET['branch']) && @$_GET['branch'] != 1) { $branch_id = $_GET['branch']; $branch_where1 = " , `phpbb_branches`, `phpbb_points` "; $branch_where2 = " AND `phpbb_branches`.`id`={$branch_id} "; } else { $branch_where1 = ""; $branch_where2 = ""; } $branches_html = ""; while ($branch = db_fetch($branchesRES)) { if ($branch_id == $branch['id']) { $selected = "selected"; } else { $selected = ""; } if ($branch['id'] != 1) { $branches_html .= "<option value='{$branch['id']}' {$selected}>{$branch['name']}</option>"; } else { $branches_html .= "<option value='1' {$selected}>Все города</option>"; } } if (check_rights('show_hidden_contacts')) { if (@$_GET['show_hidden_contacts'] == 'on') { $sql_hidden_contacts = "OR `user_type`=9"; $hidden_contact_checked = 'checked'; } else { $sql_hidden_contacts = ""; $hidden_contact_checked = ''; } } //КОНЕЦ: Строим фильтр городов isset($_GET['branch']) ? $input_hidden_branch = "<input type='hidden' name='branch' value='{$_GET['branch']}' />" : ($input_hidden_branch = ""); if (check_rights('show_hidden_contacts')) { $filter_hidden_contacts = template_get("contacts/filter_hidden_contacts", array('input_hidden_branch' => $input_hidden_branch, 'hidden_contact_checked' => $hidden_contact_checked)); } $usersRES = db_query("SELECT *, `phpbb_branches`.`name` as `branch_name`, `phpbb_branches`.`id` as `branch_id`, \r\n\t\t\t\t\t\t\t\t\t\t`phpbb_points`.`phone` as `officephone`,\r\n\t\t\t\t\t\t\t\t\t\t`phpbb_points`.`name` as `point_name`, `phpbb_points`.`id` as `point_id`\r\n\t\t\t\t\t\t\t\t\tFROM `phpbb_users` , `phpbb_branches`, `phpbb_points` \r\n\t\t\t\t\t\t\t\t\tWHERE (`user_type` IN (0,3) {$sql_hidden_contacts}) AND `username`!='root' \r\n\t\t\t\t\t\t\t\t\t\t\tAND `phpbb_points`.`id`=`phpbb_users`.`point_id`\r\n\t\t\t\t\t\t\t\t\t\t\tAND `phpbb_points`.`branch_id`=`phpbb_branches`.`id` \r\n\t\t\t\t\t\t\t\t\t\t\t{$branch_where2}\r\n\t\t\t\t\t\t\t\t\tORDER BY {$headers[$sort]['sortcolumn']} {$sortdirection}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t"); $num_users = db_count($usersRES); $num = 0; $table_html = ""; if (check_rights('delete_contact')) { $th_html = "\t\t\r\n\t\t\t\t\t\t<th class='right'></th>"; } else { $th_html = ""; } while ($userWHILE = db_fetch($usersRES)) { $num++; $branch_points_number = db_easy_count("SELECT * FROM `phpbb_points` WHERE `branch_id`={$userWHILE['branch_id']}"); if ($branch_points_number == 1) { $branch_point_link = "/manager.php?action=show_point&point=" . $userWHILE['point_id']; } else { $branch_point_link = "/manager.php?action=show_branch&branch=" . $userWHILE['branch_id']; } if ($num == $num_users) { $bottom_class = "bottom"; } else { $bottom_class = ""; } if (trim($userWHILE['officephone']) != "") { $officephone = $userWHILE['officephone']; if (trim($userWHILE['user_extphone']) != "") { $officephone .= ", доб. " . $userWHILE['user_extphone']; } } else { $officephone = "-"; } if (trim($userWHILE['user_workmobilephone']) != "") { $mobilephone = $userWHILE['user_workmobilephone'] . " (рабочий)"; } elseif (trim($userWHILE['user_privatemobilephone']) != "") { $mobilephone = $userWHILE['user_privatemobilephone'] . " (личный)"; } else { $mobilephone = "-"; } if (trim($userWHILE['user_occ']) == "") { $userWHILE['user_occ'] = "-"; } if (trim($userWHILE['point_id']) == 1) { $userWHILE['point_name'] = "-"; $userWHILE['branch_name'] = "-"; } $userWHILE['user_type'] == 9 ? $style_hidden_contact = 'color:grey' : ($style_hidden_contact = ''); if (check_rights('delete_contact')) { $right_class = ''; } else { $right_class = 'right'; } $table_html .= "\t<tr class='{$bottom_class}'>\r\n\t\t\t\t\t\t\t<td class='left'><a href='/manager.php?action=show_contact&contact=" . $userWHILE['user_id'] . "' style='font-size:9pt;{$style_hidden_contact}'>" . $userWHILE['username'] . "</a></td>\r\n\t\t\t\t\t\t\t<td><a href='{$branch_point_link}' style='font-size:9pt;'>" . $userWHILE['branch_name'] . "</a></td>\r\n\t\t\t\t\t\t\t<td style='width:250px;'>" . $userWHILE['user_occ'] . "</td>\r\n\t\t\t\t\t\t\t<td style='width:250px;'>" . $mobilephone . "</td>\r\n\t\t\t\t\t\t\t<td class='{$right_class}'>" . $officephone . "</td>"; if (check_rights('delete_contact')) { $table_html .= "\t<td class='right'><a href='/manager.php?action=delete_contact&contact={$userWHILE['user_id']}' onclick=\"if(!confirm('Удалить?')) return false;\">Удалить</a><br/></td>\r\n\t\t\t\t\t\t</tr>"; } } //Ссылка "Добавить контакт" if (check_rights('add_contact')) { $add_contact_html = "<a href='/manager.php?action=add_contact' class='listcontacts'>Добавить сотрудника</a><br/><br/>"; } else { $add_contact_html = ""; } $html .= template_get("contacts/list_contacts", array('add_contact' => $add_contact_html, 'numusers' => $num_users, 'table' => $table_html, 'add_user' => $add_user_html, 'branches' => $branches_html, 'header[username]' => $headers['username']['html'], 'header[branch]' => $headers['branch']['html'], 'th_html' => $th_html, 'right_class' => $right_class, 'filter_hidden_contacts' => $filter_hidden_contacts)); return $html; }
function set_td_remote() { /*Получаем данные от пользователя*/ if (isset($_GET['td'])) { if (!preg_match("/^[0-9]{1,8}\\-[0-9]{4}\\-[0-9]{1,2}\\-[0-9]{1,2}\\-[01]{1}-[01]{1}\$/", $_GET['td'])) { return "Ошибка в формате входных данных (td)."; } else { $td = $_GET['td']; } } else { return "Не определены входные данные (td)"; } /*Получаем данные от пользователя*/ if (isset($_GET['status'])) { if (!preg_match("/^[0-9]{1,3}\$/", $_GET['status'])) { return "Ошибка в формате входных данных (status)."; } else { $status = (int) $_GET['status']; } } else { return "Не определены входные данные (status)"; } /*Получаем данные от пользователя*/ $hours = (int) $_GET['hours']; /*Обрабатываем полученные данные*/ $temp = explode('-', $td); $user_id = (int) $temp[0]; $year = (int) $temp[1]; $month = (int) $temp[2]; $day = (int) $temp[3]; /*Проверяем входной user_id*/ if (db_easy_count("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id}") == 0) { return "Ошибка входных данных (user_id)."; } /*Запрещаем редактировать предыдущие месяцы*/ if (!check_rights('edit_previous_month_timetables')) { if ($month != date('n')) { return "Ошибка! Редактирование предыдущих и будущих месяцев запрещено."; } } //*Проверяем количество использованных дней больничного и отпуска в текущем году для отдельного пользователя{ $check_array = array(0 => array('name_rus_rodit_padezh' => 'больничного', 'hours_per_day' => 8, 'max_days' => 5, 'code' => 3), 1 => array('name_rus_rodit_padezh' => 'отпуска', 'hours_per_day' => 8, 'max_days' => 20, 'code' => 2)); foreach ($check_array as $key => $check) { $status_rodit_pad = $check['name_rus_rodit_padezh']; $status_hours_per_day = $check['hours_per_day']; $status_max_days = $check['max_days']; $status_code = $check['code']; //Проверяем, заполнена ли уже данная ячейка и вычисляем количество часов в ней, если да{ $status_this_res = db_query("SELECT `hours` FROM `phpbb_timetable` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id} AND `status`={$status_code}"); if (db_count($status_this_res) > 0) { $status_this_hours = db_fetch($status_this_res)['hours']; } else { $status_this_hours = 0; } //} $status_res = db_query("SELECT * FROM `phpbb_timetable` WHERE `year`={$year} AND `user_id`={$user_id} AND `status`={$status_code}"); $status_sum = 0; while ($statusWHILE = db_fetch($status_res)) { $status_sum += $statusWHILE['hours']; } if ($status_sum + $hours - $status_this_hours > $status_max_days * $status_hours_per_day && $status == $status_code) { $status_rest_hours_total = $status_max_days * $status_hours_per_day - $status_sum; $status_rest_hours = $status_rest_hours_total % $status_hours_per_day; $status_rest_days = ($status_rest_hours_total - $status_rest_hours) / $status_hours_per_day; return "Ошибка! У вас осталось {$status_rest_days}д {$status_rest_hours}ч {$status_rodit_pad}."; } } //} //Запрос к базе if (db_easy_count("SELECT * FROM `phpbb_timetable` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id}") == 0) { return db_result(db_query("INSERT INTO `phpbb_timetable` SET `year`={$year}, `month`={$month}, `day`={$day}, `user_id`={$user_id}, `status`={$status}, `hours`={$hours}")); } else { //IF /*status=1 то же самое, что запись об этой ячейке отсутствует в БД*/ //if($status==1){ //return db_easy_result("DELETE FROM `phpbb_timetable` WHERE `year`=$year AND `month`=$month AND `day`=$day AND `user_id`=$user_id"); //ELSE //}else{ /*Если точно такая же запись уже существует*/ if (db_easy_count("SELECT * FROM `phpbb_timetable` WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id} AND `status`={$status} AND `hours`={$hours}") == 1) { return 1; /*иначе идет обновление записи в БД*/ } else { return db_easy_result("UPDATE `phpbb_timetable` SET `status`={$status}, `hours`={$hours} WHERE `year`={$year} AND `month`={$month} AND `day`={$day} AND `user_id`={$user_id}"); } //} } }
function show_timetable_rights() { //Определяем переменные $html = ""; $rights_html = ""; $hrmanagers_html = ""; /*Выводим список менеджеров HR*/ $hrmanagers_html .= show_hr_managers(); //Запрос к базе $editorsRES = db_query("SELECT * FROM `phpbb_users` WHERE `timetable_editor`=1 ORDER BY `username` ASC"); //IF if (db_count($editorsRES) > 0) { //WHILE while ($editor = db_fetch($editorsRES)) { //НАЧАЛО: Строим список, у кого есть аналочичные права $same_rights_usersRES = db_query("SELECT * FROM `phpbb_timetable_editors_rights`, `phpbb_users`\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `phpbb_users`.`user_id`=`phpbb_timetable_editors_rights`.`user_id`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND `phpbb_timetable_editors_rights`.`editor_id`={$editor['user_id']}"); if (db_count($same_rights_usersRES) > 0) { $same_rights_html = ""; $same_right_suffix = "AND `user_id` NOT IN("; while ($same_rights_user = db_fetch($same_rights_usersRES)) { $same_rights_html .= "{$same_rights_user['username']}\r\n\t\t\t\t\t\t\t<a href='/manager.php?action=del_same_editor_rights&editor={$editor['user_id']}&user={$same_rights_user['user_id']}'>\r\n\t\t\t\t\t\t\t\t<img src='/images/delete.png' />\r\n\t\t\t\t\t\t\t\t\t</a> "; $same_right_suffix .= "{$same_rights_user['user_id']},"; } $same_right_suffix = substr($same_right_suffix, 0, strlen($same_right_suffix) - 1) . ")"; } else { $same_rights_html = "отсутствуют"; $same_right_suffix = ""; } //КОНЕЦ: Строим список, у кого есть аналочичные права //НАЧАЛО: Строим список пользователей для "аналогичных прав" $same_rights_select = "<form id='add_same_editor_rights{$editor['user_id']}' action='/manager.php?action=add_timetable_editor_same_rights' method='get' class='same_right'>\r\n\t\t\t\t\t\t\t\t\t<input type='hidden' name='action' value='add_same_editor_rights' />\r\n\t\t\t\t\t\t\t\t\t<input type='hidden' name='editor' value='{$editor['user_id']}' />\r\n\t\t\t\t\t\t\t\t\t<select class='same_rights' name='user'>"; $usersRES = db_query("SELECT * FROM `phpbb_users` WHERE `user_type` IN(0,3) AND `user_id`!={$editor['user_id']} {$same_right_suffix} AND `username`!='root' ORDER BY `username` ASC"); $num_same_rights_users = 0; if (db_count($usersRES) > 0) { while ($userWHILE = db_fetch($usersRES)) { if (db_easy_count("SELECT * FROM `phpbb_timetable_editors_rights` WHERE `user_id`={$userWHILE['user_id']}") == 0) { $num_same_rights_users++; $same_rights_select .= "<option value='{$userWHILE['user_id']}'>{$userWHILE['username']}</option>"; } } } if ($num_same_rights_users == 0) { $same_rights_select .= "<option value=''>нет доступных пользователей</option>"; } $same_rights_select .= "</select></form>"; //КОНЕЦ: Строим список пользователей для "аналогичных прав" //Определяем переменную $rights_html .= "<b class='smallheader'>Редактор: " . $editor['username'] . "</b>\r\n\t\t\t\t\t\t\t\t<div class='undersmallheader'>Аналогичные права: {$same_rights_html}</div>\r\n\t\t\t\t\t\t\t\t<div class='undersmallheader'>Добавить для: {$same_rights_select} <a href='#' onClick=\"document.getElementById('add_same_editor_rights{$editor['user_id']}').submit();\"><img src='/images/add.png' /></a></div>\r\n\t\t\t\t\t\t\t\t<ul class='show_timetable_rights'>"; //Запрос к базе $edited_usersRES = db_query("SELECT * FROM `phpbb_users` WHERE `my_timetable_editor_id`={$editor['user_id']} ORDER BY `username` ASC"); //IF if (db_count($edited_usersRES) > 0) { //WHILE while ($edited_user = db_fetch($edited_usersRES)) { $rights_html .= "<li>" . $edited_user['username'] . "</li>"; } } else { $rights_html .= "<li>Не указаны пользователи для управления</li>"; } $rights_html .= "</ul>"; } } else { $rights_html = "Ни один пользователь не имеет прав на управление графиками работ."; } /*Подключаем файл шаблона*/ $html .= template_get("rights/show_timetable_rights", array('hrmanagers' => $hrmanagers_html, 'rights' => $rights_html)); //Возвращаем значение функции return $html; }
function create_report() { //Получаем глобальные переменные global $Month; global $Year; global $Redactor; global $user; /*Переменная phpbb*/ //Определяем переменные $html = ""; //Определяем переменную $users = array(); /*Получаем список пользователей, графиком работы которых мы можем управлять*/ //IF if (check_rights('timetable_show_all')) { //IF if ($Redactor == 0) { $usersRES = db_query("SELECT * FROM `phpbb_users` WHERE `user_type` IN (0,3,9) AND `username`!='root' AND `my_timetable_editor_id`=0 ORDER BY `username` ASC"); //ELSEIF } elseif ($Redactor == -1) { $usersRES = db_query("SELECT * FROM `phpbb_users` WHERE `user_type` IN (0,3,9) AND `username`!='root' ORDER BY `username` ASC"); //ELSE } else { $usersRES = db_query("SELECT * FROM `phpbb_users` WHERE `user_type` IN (0,3,9) AND `username`!='root' AND `my_timetable_editor_id`={$Redactor} ORDER BY `username` ASC"); } //ELSE } else { if (db_short_easy("SELECT `timetable_editor` FROM `phpbb_users` WHERE `user_id`={$user->data['user_id']}") == 1) { $same_editor_id = $user->data['user_id']; } else { $same_editorSQL = "SELECT `editor_id` FROM `phpbb_timetable_editors_rights` WHERE `user_id`={$user->data['user_id']}"; if (db_easy_count($same_editorSQL) > 0) { $same_editor_id = db_short_easy($same_editorSQL); } } //Исключение в сортировке для пользователя Нечаев Андрей по его просьбе if ($user->data['user_id'] == 46) { $special_order = 'timetable_order'; } else { $special_order = 'username'; } //Запрос к базе $usersRES = db_query("SELECT * FROM `phpbb_users` WHERE `user_type` IN (0,3,9) AND `my_timetable_editor_id`={$same_editor_id} ORDER BY `{$special_order}` ASC"); } /*Строим шапку таблицы*/ $html .= "<tr class='vfirst'><td class='gfirst vfirst'>Ф.И.</td>\r\n\t\t\t\t<td class='glast vfirst' style='width:100px;background:#ffe599;'>Отпуска</td>\r\n\t\t\t\t<td class='gnolast vfirst' style='width:100px;background:#b6d7a8;'>Больничные</td>\r\n\t\t\t\t<td class='gnolast vfirst' style='width:100px;background:#E2B1E2;'>За свой счет</td>\r\n\t\t\t\t<td class='gnolast vfirst' style='width:100px;background:#9fc5e8;'>Командировки</td>\r\n\t\t\t\t<td class='gnolast vfirst' style='width:100px;background:#BBBBBB;'>Отработано</td>\r\n\t\t\t\t<td class='glast vfirst' style='width:100px;background:#ECC0C0;'>Выходных</td>\r\n\t\t\t</tr>"; /*НАЧАЛО: Создаем массив ускоряющий работу (чтобы не делать запрос sql на каждое число*/ if (@$_GET['report'] == 'year') { //Запрос к базе $daysRES = db_query("SELECT * FROM `phpbb_timetable` WHERE `year`={$Year}"); //Определяем переменную $timetable = array(); //WHILE while ($day = db_fetch($daysRES)) { $timetable[$day['user_id']][$day['month']][$day['day']]['status'] = $day['status']; $timetable[$day['user_id']][$day['month']][$day['day']]['hours'] = $day['hours']; } } else { //Запрос к базе $daysRES = db_query("SELECT * FROM `phpbb_timetable` WHERE `year`={$Year} AND `month`={$Month}"); //Определяем переменную $timetable = array(); $day_number = cal_days_in_month(CAL_GREGORIAN, $Month, $Year); //WHILE while ($day = db_fetch($daysRES)) { $timetable[$day['user_id']][$day['day']]['status'] = $day['status']; $timetable[$day['user_id']][$day['day']]['hours'] = $day['hours']; } } /*КОНЕЦ: Создаем массив, ускоряющий работу (чтобы не делать запрос sql на каждое число*/ /*НАЧАЛО: Строим тело таблицы*/ //IF if (db_count($usersRES) > 0) { //Определяем переменные $total = array(); //Определяем переменную $line = 1; //WHILE while ($userWHILE = db_fetch($usersRES)) { /*Пропускаем тех, у кого notimetable=1*/ if ($userWHILE['notimetable'] == 1) { continue; } //Определяем переменные $total = array(); $total_str = array(); $total_holidays = 0; $total_in_month = 0; for ($status = 1; $status <= 5; $status++) { $total[$status] = 0; } //Define variable $day_total = 0; if (@$_GET['report'] == 'year') { if ($Year == date("Y")) { $monthMAX = date("n"); } else { $monthMAX = 12; } for ($monthFOR = 1; $monthFOR <= $monthMAX; $monthFOR++) { //Вычисляем количество дней в месяце if ($Year == date("Y") && $monthFOR == date("n")) { $day_numberFOR = date("j"); } else { $day_numberFOR = cal_days_in_month(CAL_GREGORIAN, $monthFOR, $Year); } $day_total += $day_numberFOR; //show($monthFOR); //show($day_total); for ($dayFOR = 1; $dayFOR <= $day_numberFOR; $dayFOR++) { $day_of_weekFOR = date("N", strtotime("{$Year}-{$Month}-{$dayFOR}")); if (isset($timetable[$userWHILE['user_id']][$monthFOR][$dayFOR]['status'])) { $status = $timetable[$userWHILE['user_id']][$monthFOR][$dayFOR]['status']; $total[$status] += $timetable[$userWHILE['user_id']][$monthFOR][$dayFOR]['hours']; if ($status == 6) { $total_holidays++; } } else { if ($day_of_weekFOR == 6 || $day_of_weekFOR == 7) { $total_holidays++; } else { $status = 1; $total[$status] += 8; } } } } //ELSE } else { //Вычисляем количество дней в месяце if ($Year == date("Y") && $Month == date("n")) { $day_number = date("j"); } else { $day_number = cal_days_in_month(CAL_GREGORIAN, $Month, $Year); } $day_total = $day_number; //FOR for ($dayFOR = 1; $dayFOR <= $day_number; $dayFOR++) { $day_of_weekFOR = date("N", strtotime("{$Year}-{$Month}-{$dayFOR}")); if (isset($timetable[$userWHILE['user_id']][$dayFOR]['status'])) { $status = $timetable[$userWHILE['user_id']][$dayFOR]['status']; $total[$status] += $timetable[$userWHILE['user_id']][$dayFOR]['hours']; if ($status == 6) { $total_holidays++; } } else { if ($day_of_weekFOR == 6 || $day_of_weekFOR == 7) { $total_holidays++; } else { $status = 1; $total[$status] += 8; } } } } //FOR for ($status = 1; $status <= 5; $status++) { if ($total[$status] > 0) { $total_str[$status] = get_time_str($total[$status]); } else { $total_str[$status] = ""; } } //IF $line == db_count($usersRES) ? $trclass = 'vlast' : ($trclass = 'vnolast'); //Определяем переменную $line++; //Определяем переменную $html .= "<tr class='{$trclass}'>"; //Определяем переменную $html .= "<td class='gfirst'><a href='/manager.php?action=show_contact&contact={$userWHILE['user_id']}'>{$userWHILE['username']}</a></td>"; //Определяем переменную //$html.="<td class='gnolast'>{$total_str[2]}</td><td class='gnolast'>{$total_str[3]}</td><td class='gnolast'>{$total_str[4]}</td><td class='gnolast'>{$total_str[5]}</td><td class='gnolast'>{$total_str[1]}</td><td class='gnolast'>{$total_holidays}</td><td class='glast'>{$day_total}</td>"; $html .= "<td class='gnolast'>{$total_str[2]}</td><td class='gnolast'>{$total_str[3]}</td><td class='gnolast'>{$total_str[4]}</td><td class='gnolast'>{$total_str[5]}</td><td class='gnolast'>{$total_str[1]}</td><td class='glast'>{$total_holidays}</td>"; //Определяем переменную $html .= "</tr>"; } } else { } /*КОНЕЦ: Строим тело таблицы*/ //Возвращаем значение функции return $html; }
$search_phrases=array('<h>Ноуты и все к ним</h>', 'Ноутбук', 'Сумка', '', '<h>Компьютеры</h>', 'Материнская плата', 'Процессор', 'Модуль памяти', 'Жесткий диск', 'Оптический привод', 'Корпус', 'Блок питания', 'Устройство охлаждения', '', '<h>Мониторы и периферия</h>', 'Монитор', 'Мышь', 'Клавиатура', 'Наушники', 'Сетевой фильтр', '', '<h>Принтеры/МФУ/Расходники к ним</h>', 'Принтер', 'МФУ', 'Картридж', 'Тонер-картридж', '', '<h>Маршрутизаторы/роутеры/модемы</h>', 'Маршрутизатор', '', '<h>Телефония</h>', 'Телефон', '', '<h>Прочая мелочевка</h>', 'Адаптер питания', 'Кабель-удлинитель', 'Коннектор', 'Оптический диск', 'Патч-корд', 'Сетевой адаптер', 'Термопаста', 'Розетка компьютерная'); foreach($search_phrases as $id=>$phrase){ if($phrase==""){ $html.="<br/>"; }elseif(strripos($phrase, "<h>")!==false){ $html.="<b>".str_replace("</h>", '', str_replace("<h>", '', $phrase))."</b><br/>"; }else{ $html.="$phrase: ".db_easy_count("SELECT * FROM `positions` WHERE `name` LIKE '%".$phrase."%'")." <a href='".uri_make(array('action'=>'list_positions', 'keyword'=>$phrase))."'>просмотреть</a><br/>"; } } //Выполняем действия //start_actions(); //Подключаем подвал $html.=template_get('footer'); //Хтмл - в браузер echo $html; //Цепляет файл function pickup(){ //Получаем список подцепляемых файлов и директорию
function upload_user_photo($user_id) { $file_extension = get_file_extension($_FILES['file']['name']); if (db_easy_count("SELECT * FROM `phpbb_avatars` WHERE `user_id`={$user_id}") > 0) { db_query("DELETE FROM `phpbb_avatars` WHERE `user_id`={$user_id}"); } db_query("INSERT INTO `phpbb_avatars` SET `user_id`={$user_id}, `extension`='{$file_extension}'"); $file_id = db_insert_id(); $uploadfile = $_SERVER['DOCUMENT_ROOT'] . "images/avatars/upload/5748d7ff6b4d48da44e8a6525604c781_" . $file_id . "." . $file_extension; if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { $image_size = getimagesize($uploadfile); db_query("UPDATE `phpbb_users` SET `user_avatar`='{$file_id}.{$file_extension}', `user_avatar_type`=1, `user_avatar_width`={$image_size[0]}, `user_avatar_height`={$image_size[1]} WHERE `user_id`={$user_id}"); return template_get("message", array('message' => "Фотография обновлена")); } else { return template_get("errormessage", array('message' => "Ошибка")); } }
function show_contact() { $user = $GLOBALS['user']; $user_id = (int) $_GET['contact']; //НАЧАЛО: Обновление статуса if (isset($_POST['status'])) { $post_status = $_POST['status']; db_query("UPDATE `phpbb_profile_fields_data` SET `pf_status`='{$post_status}' WHERE `user_id`={$user_id}"); $status_update_message = template_get('message', array('message' => "Статус успешно обновлен")); } else { $status_update_message = ""; } //КОНЕЦ: Обновление статуса $posts_number = db_easy_count("SELECT * FROM `phpbb_posts` WHERE `poster_id`={$user_id}"); $topics_number = db_easy_count("SELECT * FROM `phpbb_topics` WHERE `topic_poster`={$user_id}"); $contact = db_easy("SELECT * FROM `phpbb_users` WHERE `user_id`={$user_id}"); $status = db_easy("SELECT * FROM `phpbb_profile_fields_data` WHERE `user_id`={$user_id}"); $point = db_easy("SELECT * FROM `phpbb_points` WHERE `id`={$contact['point_id']}"); $mobilephones_html = ""; if ($contact['user_workmobilephone'] != "") { $mobilephones_html .= "<tr><td>Мобильный телефон (рабочий)</td><td>{$contact['user_workmobilephone']}</td>"; } if ($contact['user_privatemobilephone'] != "") { $mobilephones_html .= "<tr><td>Мобильный телефон (личный)</td><td>{$contact['user_privatemobilephone']}</td>"; } // if (check_rights('show_hidden_contacts')) { $contact['user_type'] == 9 ? $sql_hidden_contacts = "OR `user_type`=9" : ($sql_hidden_contacts = ""); } //Мой руководитель if ($contact['mychief_id'] != 0) { $mychief = db_easy("SELECT * FROM `phpbb_users` WHERE `user_id`={$contact['mychief_id']}"); $mychief_html = "<tr><td>Руководитель:</td><td><a href='/manager.php?action=show_contact&contact={$contact['mychief_id']}'>{$mychief['username']}</a></td></tr>"; } else { $mychief_html = ""; } //Мои подчиненные $employeesRES = db_query("SELECT * FROM `phpbb_users` WHERE `mychief_id`={$user_id} AND `user_type` IN (0,3) ORDER BY `username` ASC"); if (db_count($employeesRES) > 0 && $contact['chief'] == 1) { $employees_html = "<tr><td valign='top'>Подчиненные:</td><td>"; while ($employee = db_fetch($employeesRES)) { $employees_html .= "<a href='/manager.php?action=show_contact&contact=" . $employee['user_id'] . "'>" . $employee['username'] . "</a><br/>"; } $employees_html .= "</td></tr>"; } else { $employees_html = ""; } if ($point['name'] == "" || $point['name'] == "--не определено--") { $point_html = "не определено"; } else { $point_html = "<a href='/manager.php?action=show_point&point={$point['id']}'>{$point['name']}</a>"; } if (check_rights('edit_contact')) { $edit_contact_html = "<a href='/manager.php?action=edit_contact&contact={$user_id}' style='font-size:8pt;'>Редактировать</a>"; } if ($user->data['user_id'] == $user_id && !check_rights('edit_contact')) { $status_html = "<form action='/manager.php?action=show_contact&contact={$user_id}' method='post'>\r\n\t\t\t\t\t\t\t\t<input type='text' name='status' value='{$status['pf_status']}' style='width:350px;' /><br/>\r\n\t\t\t\t\t\t\t\t{$status_update_message}\r\n\t\t\t\t\t\t\t\t<input type='submit' value='Обновить' style='margin:6px 0 0 0; width:80px;' />\r\n\t\t\t\t\t\t</form>"; } else { $status_html = $status['pf_status']; } //НАЧАЛО: Переключатели "Следующий" и "Предыдущий" $previous_html = ""; $next_html = ""; $all_contactsRES = db_query("SELECT * FROM `phpbb_users`\r\n\t\t\t\t\t\t\t\tWHERE (`user_type`=0 OR `user_type`=3 {$sql_hidden_contacts}) AND `username`!='root'\r\n\t\t\t\t\t\t\t\t\tORDER BY `username`\r\n\t\t\t\t\t\t\t\t\t\t"); $count_contacts = db_count($all_contactsRES); $i = 0; $all_contacts = array(); while ($a_contact = db_fetch($all_contactsRES)) { $all_contacts[$i] = $a_contact['user_id']; if ($a_contact['user_id'] == $user_id) { $current = $i; } $i++; } $previous = $current; $next = $current; $previous_id = $user_id; $next_id = $user_id; if ($current > 0) { $previous = $current - 1; $previous_id = $all_contacts[$previous]; } if ($current < $count_contacts - 1) { $next = $current + 1; $next_id = $all_contacts[$next]; } //КОНЕЦ: Переключатели "Следующий" и "Предыдущий" /*НАЧАЛО: Учет рабочего времени*/ if (($user->data['user_id'] == $user_id || $user->data['timetable_editor'] == 1 && $contact['my_timetable_editor_id'] == $user->data['user_id'] || check_rights('hr_manager')) && $contact['notimetable'] != 1) { /*Отпуск*/ $vocations = get_days_str($user_id, date("Y"), 2); /*Больничный*/ $bolnichny = get_days_str($user_id, date("Y"), 3); /*За свой счет*/ $zasvoischet = get_days_str($user_id, date("Y"), 4); /*Командировка*/ $travel = get_days_str($user_id, date("Y"), 5); $uchet_rabochego_vremeni = template_get("contacts/uchet_rabochego_vremeni", array('vocations_num' => $vocations['used'], 'vocations_rest' => get_rest($vocations['used_hours'], 20 * 8), 'vocations_str' => $vocations['when'], 'bolnichny_num' => $bolnichny['used'], 'bolnichny_rest' => get_rest($bolnichny['used_hours'], 5 * 8), 'bolnichny_str' => $bolnichny['when'], 'zasvoischet_num' => $zasvoischet['used'], 'zasvoischet_str' => $zasvoischet['when'], 'travel_num' => $travel['used'], 'travel_str' => $travel['when'])); } else { $uchet_rabochego_vremeni = ''; } /*КОНЕЦ: Учет рабочего времени*/ $html .= template_get("contacts/show_contact", array('name' => $contact['username'], 'occupation' => $contact['user_occ'], 'email' => $contact['user_email'], 'skype' => $contact['user_skype'], 'officephone' => $point['phone'], 'extphone' => $contact['user_extphone'], 'mobilephones' => $mobilephones_html, 'status' => $status_html, 'point' => $point_html, 'editcontact' => $edit_contact_html, 'mychief' => $mychief_html, 'employees' => $employees_html, 'photo' => get_user_avatar($contact['user_avatar'], $contact['user_avatar_type'], $contact['user_avatar_width'], $contact['user_avatar_height']), 'posts_number' => $posts_number, 'previous' => "/manager.php?action=show_contact&contact={$previous_id}", 'next' => "/manager.php?action=show_contact&contact={$next_id}", 'current' => $current + 1 . " из " . $count_contacts, 'uchet_rabochego_vremeni' => $uchet_rabochego_vremeni)); return $html; }