Exemplo n.º 1
0
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");
}
Exemplo n.º 2
0
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;
            }
        }
    }
}
Exemplo n.º 3
0
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");
}
Exemplo n.º 4
0
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");
}
Exemplo n.º 5
0
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;
}
Exemplo n.º 6
0
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}");
        }
    }
}
Exemplo n.º 7
0
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;
}
Exemplo n.º 8
0
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;
}
Exemplo n.º 9
0
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);
        }
    }
}
Exemplo n.º 10
0
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;
}
Exemplo n.º 11
0
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;
}
Exemplo n.º 12
0
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;
}
Exemplo n.º 13
0
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}");
        }
        //}
    }
}
Exemplo n.º 14
0
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>&nbsp;&nbsp;";
                    $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;
}
Exemplo n.º 15
0
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;
}
Exemplo n.º 16
0
$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."%'")."&nbsp;&nbsp;&nbsp;<a href='".uri_make(array('action'=>'list_positions', 'keyword'=>$phrase))."'>просмотреть</a><br/>";
	}
}

//Выполняем действия
//start_actions();

//Подключаем подвал
$html.=template_get('footer');

//Хтмл - в браузер
echo $html;

//Цепляет файл
function pickup(){
	//Получаем список подцепляемых файлов и директорию
Exemplo n.º 17
0
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' => "Ошибка"));
    }
}
Exemplo n.º 18
0
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;
}