Untitled
Anonymous
plain_text
02/07/2026 10:04 AM
6.5 KB
10
Indexable
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}GameSearch - Поиск игр для детей{% endblock %}</title>
{% load static %}
<link rel="stylesheet" href="{% static 'css/boys_theme.css' %}" id="theme-stylesheet">
</head>
<body>
<!-- Шапка -->
<header>
<div class="header-container">
<div class="logo-section">
<a href="{% url 'home' %}" class="logo-link">
<span class="logo">🎮</span>
<h1 class="site-title">GameSearch</h1>
</a>
</div>
<div class="header-actions">
{% if user.is_authenticated %}
<div class="user-menu">
<button class="user-menu-toggle">
<span class="user-icon">👤</span>
<span class="user-name">{{ user.username }}</span>
<span class="dropdown-arrow">▼</span>
</button>
<div class="user-dropdown">
<a href="{% url 'profile' %}" class="dropdown-item">
<span class="dropdown-icon">👤</span>
Профиль
</a>
<a href="{% url 'favorites' %}" class="dropdown-item">
<span class="dropdown-icon">⭐</span>
Избранное
</a>
<a href="{% url 'logout' %}" class="dropdown-item">
<span class="dropdown-icon">🚪</span>
Выход
</a>
</div>
</div>
{% else %}
<a href="{% url 'login' %}" class="btn btn-secondary">Вход</a>
<a href="{% url 'register' %}" class="btn btn-primary">Регистрация</a>
{% endif %}
<div class="theme-switcher">
<label for="theme-toggle">Тема:</label>
<input type="checkbox" id="theme-toggle">
</div>
</div>
</div>
</header>
<!-- Сообщения -->
{% if messages %}
<div class="messages-container">
{% for message in messages %}
<div class="message message-{{ message.tags }}">
{{ message }}
</div>
{% endfor %}
</div>
{% endif %}
<!-- Основной контент -->
<main>
{% block content %}
{% endblock %}
</main>
<!-- Подвал -->
<footer>
<div class="footer-container">
<div class="copyright">
GameSearch © {% now "Y" %} All rights reserved.
</div>
</div>
</footer>
<!-- JavaScript для переключения темы -->
<script>
const themeToggle = document.getElementById('theme-toggle');
const themeStylesheet = document.getElementById('theme-stylesheet');
// Загрузка сохраненной темы
const savedTheme = localStorage.getItem('theme') || 'boys';
if (savedTheme === 'girls') {
themeToggle.checked = true;
themeStylesheet.href = "{% static 'css/girls_theme.css' %}";
}
// Обработчик переключения темы
themeToggle.addEventListener('change', function () {
if (this.checked) {
themeStylesheet.href = "{% static 'css/girls_theme.css' %}";
localStorage.setItem('theme', 'girls');
} else {
themeStylesheet.href = "{% static 'css/boys_theme.css' %}";
localStorage.setItem('theme', 'boys');
}
});
// Выпадающее меню пользователя
const userMenuToggle = document.querySelector('.user-menu-toggle');
const userDropdown = document.querySelector('.user-dropdown');
if (userMenuToggle) {
userMenuToggle.addEventListener('click', function (e) {
e.stopPropagation();
userDropdown.classList.toggle('show');
});
// Закрытие при клике вне меню
document.addEventListener('click', function () {
userDropdown.classList.remove('show');
});
// Предотвращение закрытия при клике на само меню
userDropdown.addEventListener('click', function (e) {
e.stopPropagation();
});
}
</script>
{% block extra_js %}
{% endblock %}
</body>
</html>Editor is loading...
Leave a Comment