Initial commit
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* AegisOne Engineering — <noscript> счётчиков аналитики
|
||||
*
|
||||
* Должен подключаться сразу после <body>.
|
||||
* Содержит только <noscript> — валидный HTML только в <body>.
|
||||
*
|
||||
* Подключать: <?php if (file_exists(__DIR__ . '/analytics-body.php')) require __DIR__ . '/analytics-body.php'; ?>
|
||||
*/
|
||||
|
||||
$ymId = defined('YANDEX_METRIKA_ID') ? YANDEX_METRIKA_ID : '';
|
||||
$gaId = defined('GOOGLE_ANALYTICS_ID') ? GOOGLE_ANALYTICS_ID : '';
|
||||
?>
|
||||
|
||||
<?php if ($ymId !== ''): ?>
|
||||
<noscript><div><img src="https://mc.yandex.ru/watch/<?= $ymId ?>" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($gaId !== ''): ?>
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=<?= $gaId ?>" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/**
|
||||
* ============================================
|
||||
* AegisOne Engineering — Счётчики аналитики
|
||||
* ============================================
|
||||
*
|
||||
* Подключается в <head> всех страниц: выводит JS-счётчики.
|
||||
* Подключается в inc/analytics-body.php после <body>: выводит <noscript>.
|
||||
*
|
||||
* Яндекс.Метрика: YANDEX_METRIKA_ID (только цифры)
|
||||
* Google Analytics: GOOGLE_ANALYTICS_ID (G-XXXXXXXXXX)
|
||||
*/
|
||||
|
||||
$ymId = defined('YANDEX_METRIKA_ID') ? YANDEX_METRIKA_ID : '';
|
||||
$gaId = defined('GOOGLE_ANALYTICS_ID') ? GOOGLE_ANALYTICS_ID : '';
|
||||
?>
|
||||
|
||||
<?php if ($ymId !== ''): ?>
|
||||
<!-- Yandex.Metrika counter -->
|
||||
<script type="text/javascript">
|
||||
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
||||
m[i].l=1*new Date();
|
||||
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
|
||||
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
|
||||
})(window, document,'script','https://mc.yandex.ru/metrika/tag.js?id=<?= $ymId ?>', 'ym');
|
||||
ym(<?= $ymId ?>, 'init', {ssr:true, webvisor:true, trackHash:true, clickmap:true, ecommerce:"dataLayer", accurateTrackBounce:true, trackLinks:true});
|
||||
</script>
|
||||
<!-- /Yandex.Metrika counter -->
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($gaId !== ''): ?>
|
||||
<!-- Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=<?= $gaId ?>"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', '<?= $gaId ?>');
|
||||
</script>
|
||||
<!-- /Google Analytics -->
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/**
|
||||
* AegisOne Engineering — Общий блок контактной формы + карта
|
||||
*
|
||||
* Подключается на всех публичных страницах перед футером.
|
||||
* Переменные (опционально):
|
||||
* $contactTitle — заголовок секции (по умолч. «Свяжитесь с нами»)
|
||||
*/
|
||||
$serviceTitles = [
|
||||
'main' => 'Консультация',
|
||||
'audit' => 'Аудит безопасности',
|
||||
'sla' => 'Сервисное обслуживание (SLA)',
|
||||
'incident' => 'Реагирование на инциденты',
|
||||
'supervision' => 'Технический надзор',
|
||||
'documentation' => 'Документация',
|
||||
'risk' => 'Риск-инжиниринг',
|
||||
'blog' => 'Блог',
|
||||
];
|
||||
$serviceTitle = $serviceTitles[$pageKey] ?? '';
|
||||
?>
|
||||
<section class="contacts" id="contacts">
|
||||
<div class="container">
|
||||
<h2 class="section-title"><?= $contactTitle ?? 'Свяжитесь с нами' ?></h2>
|
||||
<div class="contacts__row">
|
||||
<div class="contacts__form" id="form-block">
|
||||
<?php if (defined('LEAD_MAGNET_ENABLED') && LEAD_MAGNET_ENABLED): ?>
|
||||
<div class="lead-magnet"><?= LEAD_MAGNET_TEXT ?></div>
|
||||
<?php endif; ?>
|
||||
<form id="contact-form">
|
||||
<input type="hidden" name="csrf_token" value="<?= $_SESSION['csrf_token'] ?>">
|
||||
<input type="hidden" name="service" value="<?= $serviceTitle ?? '' ?>">
|
||||
<div class="form-group">
|
||||
<label for="name">Имя *</label>
|
||||
<input type="text" id="name" name="name" maxlength="25" required>
|
||||
<span class="error-msg"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="phone">Телефон *</label>
|
||||
<input type="tel" id="phone" name="phone" required>
|
||||
<span class="error-msg"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="message">Сообщение</label>
|
||||
<textarea id="message" name="message" maxlength="500" placeholder="Не обязательно"></textarea>
|
||||
<span class="char-count">Осталось: 500</span>
|
||||
<span class="error-msg"></span>
|
||||
</div>
|
||||
<div class="form-group form-group--checkbox">
|
||||
<input type="checkbox" id="agree" name="agree" required>
|
||||
<label for="agree">Ознакомлен и согласен с <a href="/politica.php">политикой обработки персональных данных</a> *</label>
|
||||
<span class="error-msg"></span>
|
||||
</div>
|
||||
<button type="submit" class="btn">Отправить</button>
|
||||
</form>
|
||||
<div id="form-response" class="form-response"></div>
|
||||
</div>
|
||||
<div class="contacts__map">
|
||||
<iframe id="yandex-map" data-lon="<?=YANDEX_MAP_LON?>" data-lat="<?=YANDEX_MAP_LAT?>" data-address="<?=htmlspecialchars(YANDEX_MAP_ADDRESS)?>" width="100%" height="400" allowfullscreen title="Местоположение <?=htmlspecialchars(SITE_NAME)?>"></iframe>
|
||||
<p class="map-address"><strong>Адрес <?=SITE_NAME?>:</strong> <?= YANDEX_MAP_ADDRESS ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
/**
|
||||
* AegisOne Engineering — Общий шаблон футера для публичных страниц
|
||||
*
|
||||
* Подключается в конце страницы, после всего контента.
|
||||
* Выводит: sticky-панель → footer → скрипты → </body></html>
|
||||
*
|
||||
* Дополнительно (опционально):
|
||||
* $btnText — текст кнопки в sticky-панели (по умолчанию «Оставить заявку»)
|
||||
*/
|
||||
?>
|
||||
<div class="sticky-panel" id="sticky-panel">
|
||||
<div class="sticky-panel__inner">
|
||||
<a href="tel:+<?= PHONE_MAIN_LINK ?>">
|
||||
<svg class="sticky-icon" viewBox="0 0 24 24"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></svg>
|
||||
<span><?= PHONE_MAIN ?></span>
|
||||
</a>
|
||||
<a href="<?= WHATSAPP_LINK ?>" target="_blank" aria-label="WhatsApp">
|
||||
<svg class="sticky-icon" viewBox="0 0 32 32"><path d="M16 0C7.16 0 0 7.16 0 16c0 2.8.72 5.44 2.08 7.76L0 32l8.4-2.08C10.24 31.2 13.04 32 16 32c8.84 0 16-7.16 16-16S24.84 0 16 0zm0 29.2c-2.36 0-4.64-.64-6.6-1.84l-.48-.28-5 1.28 1.32-4.84-.32-.52C3.56 20.8 2.8 18.48 2.8 16 2.8 8.72 8.72 2.8 16 2.8S29.2 8.72 29.2 16 23.28 29.2 16 29.2zm7.24-8.44c-.36-.2-2.12-1.04-2.44-1.16-.32-.12-.56-.2-.8.2-.24.4-.92 1.16-1.12 1.4-.2.24-.4.28-.76.08-.36-.2-1.52-.56-2.88-1.76-1.08-.96-1.8-2.16-2-2.52-.2-.36-.04-.56.16-.76.16-.16.36-.44.56-.64.2-.2.24-.36.4-.6.16-.24.08-.44-.04-.64-.12-.2-.8-1.96-1.12-2.68-.28-.72-.56-.6-.8-.6-.2 0-.44-.04-.68-.04s-.6.08-.92.44c-.32.36-1.2 1.16-1.2 2.84s1.24 3.28 1.4 3.52c.16.24 2.44 3.76 5.92 5.28 2.92 1.28 2.92.84 3.44.8.52-.04 2.12-.88 2.4-1.72.28-.84.28-1.56.2-1.72-.08-.16-.32-.24-.68-.4z"/></svg>
|
||||
</a>
|
||||
<a href="<?= TELEGRAM_LINK ?>" target="_blank" aria-label="Telegram">
|
||||
<svg class="sticky-icon" viewBox="0 0 32 32"><path d="M16 0C7.16 0 0 7.16 0 16s7.16 16 16 16 16-7.16 16-16S24.84 0 16 0zm7.84 11.04l-2.88 13.56c-.2 1-.84 1.24-1.68.76l-4.64-3.44-2.24 2.16c-.24.24-.44.44-.92.44l.32-4.76 8.64-7.8c.36-.32-.08-.48-.56-.16l-10.68 6.72-4.6-1.44c-1-.32-1-1 .2-1.48l18-6.96c.84-.32 1.56.2 1.28 1.44z"/></svg>
|
||||
</a>
|
||||
<?php if (defined('MAX_LINK') && MAX_LINK): ?>
|
||||
<a href="<?= MAX_LINK ?>" target="_blank" aria-label="Макс">
|
||||
<img src="/assets/img/Max_logo.svg" alt="Макс" class="sticky-icon">
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<a href="#contacts" class="btn"><?= $btnText ?? 'Оставить заявку' ?></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="container footer__inner">
|
||||
<div class="footer__col">
|
||||
<h4>Контакты</h4>
|
||||
<a href="tel:+<?= PHONE_MAIN_LINK ?>"><?= PHONE_MAIN ?></a>
|
||||
<a href="tel:+<?= PHONE_SECOND_LINK ?>"><?= PHONE_SECOND ?></a>
|
||||
<a href="mailto:<?= SITE_MAIL ?>"><?= SITE_MAIL ?></a>
|
||||
<p style="margin-top:10px; font-size:0.85rem; opacity:0.7;"><?= YANDEX_MAP_ADDRESS ?></p>
|
||||
</div>
|
||||
<div class="footer__col">
|
||||
<h4>Услуги</h4>
|
||||
<a href="/audit/">Аудит безопасности</a>
|
||||
<a href="/sla/">Сервисное обслуживание (SLA)</a>
|
||||
<a href="/incident/">Реагирование на инциденты</a>
|
||||
<a href="/supervision/">Технический надзор</a>
|
||||
<a href="/documentation/">Документация и соответствие нормативам</a>
|
||||
<a href="/risk/">Риск-инжиниринг</a>
|
||||
</div>
|
||||
<div class="footer__col">
|
||||
<h4>Мы в соцсетях</h4>
|
||||
<div class="footer__social">
|
||||
<a href="<?= TELEGRAM_LINK ?>" target="_blank" aria-label="Telegram">
|
||||
<svg viewBox="0 0 32 32"><path d="M16 0C7.16 0 0 7.16 0 16s7.16 16 16 16 16-7.16 16-16S24.84 0 16 0zm7.84 11.04l-2.88 13.56c-.2 1-.84 1.24-1.68.76l-4.64-3.44-2.24 2.16c-.24.24-.44.44-.92.44l.32-4.76 8.64-7.8c.36-.32-.08-.48-.56-.16l-10.68 6.72-4.6-1.44c-1-.32-1-1 .2-1.48l18-6.96c.84-.32 1.56.2 1.28 1.44z" fill="#fff"/></svg>
|
||||
</a>
|
||||
<a href="<?= WHATSAPP_LINK ?>" target="_blank" aria-label="WhatsApp">
|
||||
<svg viewBox="0 0 32 32"><path d="M16 0C7.16 0 0 7.16 0 16c0 2.8.72 5.44 2.08 7.76L0 32l8.4-2.08C10.24 31.2 13.04 32 16 32c8.84 0 16-7.16 16-16S24.84 0 16 0zm0 29.2c-2.36 0-4.64-.64-6.6-1.84l-.48-.28-5 1.28 1.32-4.84-.32-.52C3.56 20.8 2.8 18.48 2.8 16 2.8 8.72 8.72 2.8 16 2.8S29.2 8.72 29.2 16 23.28 29.2 16 29.2zm7.24-8.44c-.36-.2-2.12-1.04-2.44-1.16-.32-.12-.56-.2-.8.2-.24.4-.92 1.16-1.12 1.4-.2.24-.4.28-.76.08-.36-.2-1.52-.56-2.88-1.76-1.08-.96-1.8-2.16-2-2.52-.2-.36-.04-.56.16-.76.16-.16.36-.44.56-.64.2-.2.24-.36.4-.6.16-.24.08-.44-.04-.64-.12-.2-.8-1.96-1.12-2.68-.28-.72-.56-.6-.8-.6-.2 0-.44-.04-.68-.04s-.6.08-.92.44c-.32.36-1.2 1.16-1.2 2.84s1.24 3.28 1.4 3.52c.16.24 2.44 3.76 5.92 5.28 2.92 1.28 2.92.84 3.44.8.52-.04 2.12-.88 2.4-1.72.28-.84.28-1.56.2-1.72-.08-.16-.32-.24-.68-.4z" fill="#fff"/></svg>
|
||||
</a>
|
||||
<?php if (defined('MAX_LINK') && MAX_LINK): ?>
|
||||
<a href="<?= MAX_LINK ?>" target="_blank" aria-label="Макс">
|
||||
<img src="/assets/img/Max_logo.svg" alt="Макс" class="footer-social-icon">
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<p style="margin-top:12px; font-size:0.85rem;"><strong>Работаем по всей России</strong></p>
|
||||
</div>
|
||||
<div class="footer__bottom">
|
||||
<a href="/politica.php" style="color:var(--accent); display:inline-block; margin-bottom:8px;">Политика конфиденциальности</a><br>
|
||||
© <?= date('Y') ?> <?= SITE_LEGAL_NAME ?>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/assets/js/main.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if (empty($_SESSION['csrf_token'])) {
|
||||
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ajax'])) {
|
||||
header('Content-Type: application/json');
|
||||
$response = ['success' => false, 'message' => ''];
|
||||
|
||||
$csrf_token = $_POST['csrf_token'] ?? '';
|
||||
if (!hash_equals($_SESSION['csrf_token'], $csrf_token)) {
|
||||
$response['message'] = 'Ошибка безопасности. Обновите страницу и попробуйте снова.';
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
}
|
||||
|
||||
$ip = $_SERVER['REMOTE_ADDR'];
|
||||
$rateKey = 'rate_' . md5($ip);
|
||||
$now = time();
|
||||
$rateData = $_SESSION[$rateKey] ?? ['count' => 0, 'first' => $now];
|
||||
if ($now - $rateData['first'] > 60) {
|
||||
$rateData = ['count' => 0, 'first' => $now];
|
||||
}
|
||||
$rateData['count']++;
|
||||
$_SESSION[$rateKey] = $rateData;
|
||||
if ($rateData['count'] > 3) {
|
||||
$response['message'] = 'Слишком много запросов. Попробуйте через минуту.';
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
}
|
||||
|
||||
$name = trim($_POST['name'] ?? '');
|
||||
$phone = trim($_POST['phone'] ?? '');
|
||||
$message = trim($_POST['message'] ?? '');
|
||||
$agree = isset($_POST['agree']);
|
||||
|
||||
if (!preg_match('/^[a-zA-Zа-яА-Я\s]{1,25}$/u', $name)) {
|
||||
$response['message'] = 'Имя должно содержать только буквы и пробелы, до 25 символов.';
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
}
|
||||
if (!preg_match('/^8\s\(\d{3}\)\s\d{3}-\d{2}-\d{2}$/', $phone)) {
|
||||
$response['message'] = 'Введите корректный номер телефона.';
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
}
|
||||
if ($message !== '' && !preg_match('/^.{1,500}$/u', $message)) {
|
||||
$response['message'] = 'Сообщение не должно превышать 500 символов.';
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
}
|
||||
if (!$agree) {
|
||||
$response['message'] = 'Необходимо согласиться с обработкой данных.';
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
}
|
||||
|
||||
$dateTime = date('d.m.Y H:i:s');
|
||||
$serviceTitle = trim($_POST['service'] ?? '');
|
||||
$subject = SITE_MAIL_SUBJECT_PREFIX;
|
||||
if ($serviceTitle !== '') {
|
||||
$subject .= ' (' . $serviceTitle . ')';
|
||||
}
|
||||
$subject .= ' — ' . $dateTime;
|
||||
|
||||
$body = "Услуга: " . ($serviceTitle !== '' ? $serviceTitle : 'Главная страница') . "\n";
|
||||
$body .= "Имя: " . strip_tags($name) . "\n";
|
||||
$body .= "Телефон: " . strip_tags($phone) . "\n";
|
||||
$body .= "Сообщение: " . strip_tags($message) . "\n";
|
||||
$body .= "Согласие на обработку данных: Да\n";
|
||||
$body .= "Страница: " . ($_SERVER['HTTP_REFERER'] ?? 'неизвестно') . "\n";
|
||||
|
||||
$headers = "From: " . SITE_MAIL_FROM . "\r\n";
|
||||
$headers .= "Reply-To: " . SITE_MAIL_FROM . "\r\n";
|
||||
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
|
||||
|
||||
$mailSent = mail(SITE_MAIL_TO, $subject, $body, $headers);
|
||||
|
||||
if ($mailSent) {
|
||||
$response['success'] = true;
|
||||
$response['message'] = 'Спасибо! Ваша заявка отправлена. Мы свяжемся с вами в ближайшее время.';
|
||||
} else {
|
||||
$response['message'] = 'Ошибка при отправке. Пожалуйста, попробуйте ещё раз.';
|
||||
}
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
}
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
/**
|
||||
* AegisOne Engineering — Общий шаблон <head> и <header> для публичных страниц
|
||||
*
|
||||
* Подключается после установки переменных:
|
||||
* $pageKey — ключ из массива $SEO
|
||||
* $canonical — канонический URL (с ведущим слешем, напр. /audit/)
|
||||
*
|
||||
* Дополнительно (опционально):
|
||||
* $robots — значение <meta name="robots"> (по умолчанию не выводится)
|
||||
*
|
||||
* Стек:
|
||||
* config.php → seo.php → form-handler.php → header.php → контент → footer.php
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title><?= $SEO[$pageKey]['title'] ?></title>
|
||||
<meta name="description" content="<?= $SEO[$pageKey]['description'] ?>">
|
||||
<meta name="keywords" content="<?= $SEO[$pageKey]['keywords'] ?>">
|
||||
<link rel="canonical" href="https://<?= $_SERVER['HTTP_HOST'] ?><?= $canonical ?? '/' ?>">
|
||||
<?php if (!empty($robots)): ?>
|
||||
<meta name="robots" content="<?= $robots ?>">
|
||||
<?php endif; ?>
|
||||
<link rel="icon" type="image/x-icon" href="/assets/img/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicon-32x32.png">
|
||||
<link rel="apple-touch-icon" href="/assets/img/apple-touch-icon.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<meta name="msapplication-TileImage" content="/assets/img/android-chrome-192x192.png">
|
||||
<link rel="stylesheet" href="/style.php">
|
||||
<script>
|
||||
(function(){
|
||||
var t=localStorage.getItem('theme')||'system';
|
||||
var d=t==='system'?(window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light'):t;
|
||||
document.documentElement.setAttribute('data-theme',d);
|
||||
})();
|
||||
</script>
|
||||
<?php if (file_exists(__DIR__ . '/analytics.php')) require __DIR__ . '/analytics.php'; ?>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "<?= SITE_LEGAL_NAME ?>",
|
||||
"description": "Инженерные решения для безопасности бизнеса",
|
||||
"url": "https://<?= SITE_DOMAIN ?>",
|
||||
"logo": "https://<?= SITE_DOMAIN ?>/logo.php",
|
||||
"telephone": "<?= PHONE_MAIN ?>",
|
||||
"email": "<?= SITE_MAIL ?>",
|
||||
"contactPoint": {
|
||||
"@type": "ContactPoint",
|
||||
"telephone": "<?= PHONE_MAIN ?>",
|
||||
"contactType": "sales",
|
||||
"availableLanguage": ["Russian"]
|
||||
},
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"addressLocality": "Краснодар",
|
||||
"addressRegion": "Краснодарский край",
|
||||
"postalCode": "350072",
|
||||
"streetAddress": "ул. Московская, д. 81/1, пом. 25"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<?php if (file_exists(__DIR__ . '/analytics-body.php')) require __DIR__ . '/analytics-body.php'; ?>
|
||||
<div class="cookie-banner" id="cookie-banner">
|
||||
<div class="container cookie-banner__inner">
|
||||
<p>Мы используем cookie-файлы. Продолжая использовать сайт, вы соглашаетесь с <a href="/politica.php">политикой обработки персональных данных</a>.</p>
|
||||
<button class="btn" id="cookie-accept">Принять</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<header class="header">
|
||||
<div class="container header__inner">
|
||||
<div class="header__logo">
|
||||
<a href="/"><img src="/logo.php" alt="<?= SITE_NAME ?>"></a>
|
||||
</div>
|
||||
<nav class="header__nav">
|
||||
<ul class="header__menu">
|
||||
<?php if ($pageKey === 'main'): ?>
|
||||
<li><a href="#problems">Проблемы</a></li>
|
||||
<li><a href="#services">Услуги</a></li>
|
||||
<li><a href="#about">О нас</a></li>
|
||||
<li><a href="#cases">Кейсы</a></li>
|
||||
<li><a href="#faq">Вопросы</a></li>
|
||||
<li><a href="#contacts">Контакты</a></li>
|
||||
<?php else: ?>
|
||||
<li><a href="/#services">Услуги</a></li>
|
||||
<li><a href="/#about">О нас</a></li>
|
||||
<li><a href="/#cases">Кейсы</a></li>
|
||||
<li><a href="/blog/">Блог</a></li>
|
||||
<li><a href="#faq">Вопросы</a></li>
|
||||
<li><a href="#contacts">Контакты</a></li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</nav>
|
||||
<div class="header__phone">
|
||||
<a href="tel:+<?= PHONE_MAIN_LINK ?>"><?= PHONE_MAIN ?></a>
|
||||
</div>
|
||||
<div class="theme-switcher" id="theme-switcher" title="Сменить тему оформления">
|
||||
<button class="theme-switcher__btn" id="theme-btn" aria-label="Переключить тему">
|
||||
<span class="theme-switcher__icon" id="theme-icon"></span>
|
||||
</button>
|
||||
<div class="theme-switcher__tooltip" id="theme-tooltip"></div>
|
||||
</div>
|
||||
<button class="burger" id="burger">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
Reference in New Issue
Block a user