Files
site_aegisone/service/inc/header.php
T
2026-05-17 05:22:06 +03:00

82 lines
5.5 KiB
PHP

<?php
/**
* ============================================
* AegisOne Engineering Service — Шапка дашборда
* ============================================
*
* Выводит <head> (с запретом индексации), открывает <body>,
* сайдбар с навигацией по ролям и <main>.
* Если пользователь не авторизован — редирект на логин.
*/
if (empty($_SESSION['user_id'])) return;
$current_uri = $_SERVER['REQUEST_URI'];
$role = $_SESSION['user_role'];
$name = $_SESSION['user_name'];
function nav_link(string $href, string $label, string $tooltip = '', array $roles = []): string {
global $current_uri, $role;
if (!empty($roles) && !in_array($role, $roles, true)) return '';
$active = strpos($current_uri, $href) === 0 ? ' active' : '';
$tip = $tooltip !== '' ? ' data-tooltip="' . htmlspecialchars($tooltip) . '"' : '';
return '<a href="' . htmlspecialchars($href) . '" class="' . $active . '"' . $tip . '>' . htmlspecialchars($label) . '</a>';
}
$roleLabel = $role === 'owner' ? 'Владелец' : ($role === 'engineer' ? 'Инженер' : 'Техник');
?><!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex, nofollow">
<title>Service Portal — AegisOne Engineering</title>
<link rel="stylesheet" href="/service-style.php">
<link rel="icon" type="image/x-icon" href="/assets/img/favicon.ico">
</head>
<body>
<button class="sidebar-toggle" onclick="document.querySelector('.sidebar').classList.toggle('open')">☰</button>
<div class="layout">
<aside class="sidebar">
<div class="sidebar-header">
<div class="logo">Aegis<span>One</span></div>
<div style="font-size:10px;color:var(--text-muted);">Service Portal</div>
</div>
<nav class="sidebar-nav">
<div class="sidebar-section">Панель</div>
<?= nav_link('/service/dashboard.php', 'Дашборд', 'Главная панель', ['owner','engineer','technician']) ?>
<div class="sidebar-section">Управление</div>
<?= nav_link('/service/pages/owner/users.php', 'Сотрудники', 'Управление сотрудниками', ['owner']) ?>
<?= nav_link('/service/pages/owner/customers.php', 'Клиенты', 'Управление клиентами', ['owner','engineer']) ?>
<?= nav_link('/service/pages/owner/objects.php', 'Объекты', 'Управление объектами', ['owner','engineer']) ?>
<?= nav_link('/service/pages/owner/assignments.php', 'Назначения', 'Назначения на объекты', ['owner']) ?>
<?= nav_link('/service/pages/owner/sla.php', 'SLA контракты', 'Управление SLA', ['owner','engineer']) ?>
<?= nav_link('/service/pages/owner/ceo.php', 'CEO дашборд', 'Бизнес-метрики', ['owner']) ?>
<?= nav_link('/service/pages/owner/coefficients.php', 'Коэффициенты', 'Расчётные коэффициенты', ['owner']) ?>
<div class="sidebar-section">Работа</div>
<?= nav_link('/service/pages/engineer/tasks.php', 'Задачи', 'Мои задачи', ['engineer','technician']) ?>
<?= nav_link('/service/pages/engineer/reports.php', 'Отчёты', 'Отчёты по объектам', ['engineer','technician']) ?>
<?= nav_link('/service/pages/engineer/incidents.php', 'Инциденты', 'Журнал инцидентов', ['engineer','technician']) ?>
<?= nav_link('/service/pages/shared/questionnaire.php', 'Опросник', 'Обследование объекта', ['owner','engineer']) ?>
<?= nav_link('/service/pages/owner/questionnaire_config.php', 'Настройка опросника', 'Конфигурация вопросов', ['owner']) ?>
<?= nav_link('/service/pages/shared/passports.php', 'Паспорта объектов', 'Паспорта и расчёты', ['owner','engineer']) ?>
<?php if ($role === 'technician'): ?>
<?= nav_link('/service/pages/technician/checklist.php', 'Чек-лист', 'Чек-лист техника', ['technician']) ?>
<?php endif; ?>
<div class="sidebar-section">Блог</div>
<?= nav_link('/service/pages/owner/blog.php', 'Управление блогом', 'Создание и редактирование статей', ['owner']) ?>
<?= nav_link('/blog/', 'Публичный блог', 'Открытый блог на сайте', ['owner','engineer','technician']) ?>
<div class="sidebar-section">Контент</div>
<?= nav_link('/service/pages/owner/cases.php', 'Примеры из практики', 'Карусель на главной', ['owner']) ?>
<div class="sidebar-section">Документация</div>
<?= nav_link('/service/pages/shared/docs.php', 'Просмотр документации', 'Читать документы', ['owner','engineer']) ?>
<?= nav_link('/service/pages/owner/docs_section.php', 'Управление документами', 'Настройка доступа к документам', ['owner']) ?>
</nav>
<div class="sidebar-footer">
<div class="user-name"><?= htmlspecialchars($name) ?></div>
<div class="user-role"><?= $roleLabel ?></div>
<a href="/service/logout.php" style="display:inline-block;margin-top:6px;font-size:12px;">Выйти</a>
</div>
</aside>
<main class="main">