Files
2026-10-31 13:29:45 +03:00

151 lines
7.1 KiB
PHP

<!DOCTYPE html>
<html lang="<?= Yii::$language ?>">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<?php require __DIR__ . '/components/theme-style.php'; ?>
<?php require __DIR__ . '/components/theme-client.php'; ?>
<script>window.ZoomzillaAnalyticsConfig={endpoint:<?= json_encode($apiHost) ?>};<?= require __DIR__.'/components/analytics-client.php' ?></script>
<title><?= $page_title ?? $default_title ?></title>
<link rel="icon" type="image/x-icon" href="<?= $favicon->baseUrl ?>/favicon.ico">
<link rel="icon" type="image/svg+xml" href="<?= $favicon->baseUrl ?>/favicon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="<?= $favicon->baseUrl ?>/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="<?= $favicon->baseUrl ?>/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="<?= $favicon->baseUrl ?>/apple-touch-icon.png">
<link rel="manifest" href="<?= $favicon->baseUrl ?>/site.webmanifest">
<link rel="preload" href="<?= $fontsUrl ?>/Inter-Regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="<?= $fontsUrl ?>/Inter-Medium.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="<?= $fontsUrl ?>/Inter-SemiBold.woff2" as="font" type="font/woff2" crossorigin>
<meta name="description" content="Онлайн-сервис для автоматического улучшения качества фотографий и изображений с помощью искусственного интеллекта.">
<?php
// Сет целиком копируется из Index в корень домена: /1, /2 и т. д.
// Не вводим промежуточный images/demo: оператор заменяет одну папку сета.
$baseDemoDir = __DIR__ . "/{$indpic}";
$fSrcMob = $baseDemoDir . "/01_mob_1-source.avif";
$fSrcOrig = $baseDemoDir . "/01_desk_1-source.avif";
$vSrcMob = file_exists($fSrcMob) ? filemtime($fSrcMob) : '1';
$vSrcOrig = file_exists($fSrcOrig) ? filemtime($fSrcOrig) : '1';
$fResMob = $baseDemoDir . "/01_mob_2-result.avif";
$fResOrig = $baseDemoDir . "/01_desk_2-result.avif";
$vResMob = file_exists($fResMob) ? filemtime($fResMob) : '1';
$vResOrig = file_exists($fResOrig) ? filemtime($fResOrig) : '1';
$urlSrcMob = "{$assetsUriPrefix}/{$indpic}/01_mob_1-source.avif?v={$vSrcMob}";
$urlSrcOrig = "{$assetsUriPrefix}/{$indpic}/01_desk_1-source.avif?v={$vSrcOrig}";
$urlResMob = "{$assetsUriPrefix}/{$indpic}/01_mob_2-result.avif?v={$vResMob}";
$urlResOrig = "{$assetsUriPrefix}/{$indpic}/01_desk_2-result.avif?v={$vResOrig}";
?>
<link rel="preload" as="image" href="<?= $urlSrcMob ?>" media="(max-width: 767.98px)" type="image/avif" fetchpriority="high">
<link rel="preload" as="image" href="<?= $urlResMob ?>" media="(max-width: 767.98px)" type="image/avif" fetchpriority="high">
<link rel="preload" as="image" href="<?= $urlSrcOrig ?>" media="(min-width: 768px)" type="image/avif" fetchpriority="high">
<link rel="preload" as="image" href="<?= $urlResOrig ?>" media="(min-width: 768px)" type="image/avif" fetchpriority="high">
<style><?= file_get_contents(__DIR__ . '/style.min.css'); ?></style>
<style><?= file_get_contents(__DIR__ . '/popup-theme.css'); ?></style>
<style><?= require __DIR__ . '/components/upload-picker-style.php'; ?></style>
<?php require_once __DIR__ . '/components/browser-upload.php'; ?>
</head>
<body class="<?= $themeInitial === 'dark' ? 'theme-dark' : '' ?>">
<script>window.ZoomzillaTheme.refresh();</script>
<div class="wrapper">
<header class="header">
<nav class="navbar navbar-dark py-1 py-md-3 px-0">
<div class="container">
<span class="navbar-brand" href="<?= $apiHost ?: '/' ?>" >
<img src="<?= prelandAssetUrl('docs/logo.svg') ?>" width="182" height="47" alt="Логотип <?= htmlspecialchars(prelandSiteDomain($_SERVER), ENT_QUOTES, 'UTF-8') ?>">
<img src="<?= prelandAssetUrl('docs/logo-alt.svg') ?>" width="182" height="47" alt="Логотип <?= htmlspecialchars(prelandSiteDomain($_SERVER), ENT_QUOTES, 'UTF-8') ?>">
</span>
<div class="d-flex align-items-center">
<?php $themeLabels = ['group' => Yii::t('app', 'Тема оформления'), 'light' => Yii::t('app', 'Светлая тема'), 'dark' => Yii::t('app', 'Тёмная тема')]; require __DIR__ . '/components/theme-switch.php'; ?>
</div>
</div>
</nav>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<div class="container">
<div class="dashboard-nav nav flex-column nav-pills header-navbar" role="tablist" aria-orientation="vertical">
</div>
</div>
</div>
</header>
<main class="site">
<div class="py-4 main-section index-mobile-fit">
<div class="container">
<div class="row">
<div class="col-md-7 order-md-1">
<?php renderComponent('examples', ['assetsUriPrefix' => $assetsUriPrefix, 'indpic' => $indpic]); ?>
<?php renderComponent('process', ['assetsUriPrefix' => $assetsUriPrefix, 'show' => false]); ?>
</div>
<div class="col-md-5">
<?php renderComponent('form', ['assetsUriPrefix' => $assetsUriPrefix]); ?>
<?php renderComponent('preview', ['assetsUriPrefix' => $assetsUriPrefix, 'show' => false]); ?>
</div>
</div>
</div>
</div>
</main>
<footer class="footer">
<div class="container">
<div class="row py-5 footer-main">
<div class="col-md-4 mb-4 mb-md-0">
<div class="footer-logo">
<img src="<?= prelandAssetUrl('docs/logo.svg') ?>" width="182" height="47" alt="Логотип <?= htmlspecialchars(prelandSiteDomain($_SERVER), ENT_QUOTES, 'UTF-8') ?>">
<img src="<?= prelandAssetUrl('docs/logo-alt.svg') ?>" width="182" height="47" alt="Логотип <?= htmlspecialchars(prelandSiteDomain($_SERVER), ENT_QUOTES, 'UTF-8') ?>">
</div>
</div>
</div>
<div class="row footer-bottom py-3">
<div class="col-6">
<p class="m-0"><?= date('Y') ?>© <?= htmlspecialchars(prelandSiteDomain($_SERVER), ENT_QUOTES, 'UTF-8') ?></p>
</div>
<?php if (Yii::t('app', 'system.hide.footer') == 'false') { ?>
<div class="col-6">
<p class="m-0 text-md-right"><?= Yii::t('app', 'Сайт не является публичной офертой') ?></p>
</div>
<?php } ?>
</div>
</div>
</footer> <!-- .footer -->
</div> <!-- .wrapper -->
<script>
document.addEventListener('DOMContentLoaded', () => {
const toggler = document.querySelector('.navbar-toggler');
const collapse = document.getElementById('navbarSupportedContent');
if (toggler && collapse) {
toggler.addEventListener('click', (e) => {
e.preventDefault();
const isShown = collapse.classList.contains('show');
if (isShown) {
collapse.classList.remove('show');
toggler.classList.add('collapsed');
toggler.setAttribute('aria-expanded', 'false');
} else {
collapse.classList.add('show');
toggler.classList.remove('collapsed');
toggler.setAttribute('aria-expanded', 'true');
}
});
}
});
</script>
</body>
</html>