/
Timur0603
/
rust
Обзор
Документация
Войти
/
Timur0603
/
rust
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
templates/base.html
154 строки
5 KB
Timur0603
1
26 май 2026, 18:28
26 май 2026, 18:28
df45663
Код
Авторство
О чём код?
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <title> {{title}} </title> <link rel="stylesheet" type="text/css" href="/static/css/style.css"/> <style> /* Стили для панели пользователя */ .user-panel { display: inline-flex; align-items: center; gap: 0.8rem; background: rgba(0,0,0,0.6); padding: 0.3rem 1rem; border-radius: 60px; border: 1px solid #ff8c42; margin-left: 0.5rem; } .user-name { color: #ffaa55; font-weight: bold; } .user-panel .auth-btn { background: #ff8c42; border: none; color: #0a0c10; padding: 4px 12px; border-radius: 40px; cursor: pointer; } .auth-link { background: rgba(0,0,0,0.6); border: 1px solid #ff8c42; color: #ffbb77; padding: 0.4rem 1.2rem; border-radius: 40px; text-decoration: none; transition: 0.2s; font-family: inherit; font-size: inherit; display: inline-block; } .auth-link:hover { background: #ff8c42; color: #0a0c10; } </style> </head> <body> <div class="container"> <!-- Шапка --> <div class="header"> <div class="logo-area"> <h1>RUST</h1> <p>Независимый портал сообщества Rust</p> </div> <div class="top-bar"> <div class='nav-buttons'> <button class="site-btn" data-url="/">Главная</button> <button class="site-btn" data-url="https://rust.facepunch.com/news/">📰 Новости</button> <button class="site-btn" data-url="/cameras">📺 Камеры</button> <button class="site-btn" data-url="/craft/">⚙️ Крафт-калькулятор</button> <!-- Кнопка/ссылка "Войти" будет заменена на user-panel после входа --> <span id="authContainer"></span> </div> </div> </div> {% block content %} {% endblock %} <footer> <div class="footer-links"> <a href="#">Карта сайта</a> <a href="#">Политика конфиденциальности</a> <a href="https://steamcommunity.com/app/252490" target="_blank">Сообщество</a> </div> <div class="copyright"> © 2026 RUST — независимый портал сообщества Rust. Не связан с Facepunch Studios. </div> </footer> </div> <script> // ========== АВТОРИЗАЦИЯ ЧЕРЕЗ localStorage ========== let currentUser = null; function loadUsers() { const users = localStorage.getItem('rust_users'); return users ? JSON.parse(users) : {}; } function saveUsers(users) { localStorage.setItem('rust_users', JSON.stringify(users)); } function checkStoredUser() { const stored = localStorage.getItem('rust_current_user'); const users = loadUsers(); if (stored && users[stored]) { currentUser = stored; } else { currentUser = null; } updateAuthUI(); } function updateAuthUI() { const container = document.getElementById('authContainer'); if (!container) return; if (currentUser) { container.innerHTML = ` <div class="user-panel"> <span class="user-name">👤 ${currentUser}</span> <button id="logoutBtn" class="auth-btn">Выйти</button> </div> `; document.getElementById('logoutBtn')?.addEventListener('click', () => { localStorage.removeItem('rust_current_user'); currentUser = null; updateAuthUI(); // Небольшое уведомление const msg = document.createElement('div'); msg.textContent = 'Вы вышли из аккаунта'; msg.style.cssText = 'position:fixed; bottom:20px; left:50%; transform:translateX(-50%); background:#ff8c42; color:#000; padding:8px 20px; border-radius:40px; z-index:1000;'; document.body.appendChild(msg); setTimeout(() => msg.remove(), 2000); }); } else { container.innerHTML = `<a href="/login" class="auth-link">🔐 Войти</a>`; } } // Инициализация при загрузке document.addEventListener('DOMContentLoaded', () => { checkStoredUser(); // Обработчики кнопок навигации document.querySelectorAll('.site-btn').forEach(btn => { btn.addEventListener('click', () => { const url = btn.getAttribute('data-url'); if (url) window.location.href = url; }); }); }); </script> {% block extra_js %} {%- endblock -%} </body> </html>