mirror of
https://github.com/claradex/nativegallery.git
synced 2024-11-15 03:31:10 +03:00
parent
cec6811cf8
commit
9233b459c5
4 changed files with 45 additions and 59 deletions
|
@ -36,7 +36,7 @@ use \App\Models\User;
|
||||||
<?php
|
<?php
|
||||||
$admins = DB::query('SELECT * FROM users WHERE admin=1');
|
$admins = DB::query('SELECT * FROM users WHERE admin=1');
|
||||||
foreach ($admins as $a) {
|
foreach ($admins as $a) {
|
||||||
echo '<li><b><a href="/author/'.$a['id'].'/"><img src="'.$a['photourl'].'" width="32" style="border-radius: 3px; margin-right: 5px;">'.htmlspecialchars($a['username']).'</a></b></li>';
|
echo '<li><b><a href="/author/'.$a['id'].'/"><img onerror="this.src = `/static/img/avatar.png`; this.onerror = null;" src="'.$a['photourl'].'" width="32" style="border-radius: 3px; margin-right: 5px;">'.htmlspecialchars($a['username']).'</a></b></li>';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -94,10 +94,7 @@ foreach ($photos as $pd) {
|
||||||
</td>
|
</td>
|
||||||
<td style="vertical-align:top; width:100%; padding-top:4px">
|
<td style="vertical-align:top; width:100%; padding-top:4px">
|
||||||
|
|
||||||
<div id="morerand">
|
|
||||||
<a id="newrand" style="display:none" href="#">Показать другие</a>
|
|
||||||
<span id="newrand-loader" style="color:#888">Загрузка...</span>
|
|
||||||
</div>
|
|
||||||
<h4><a href="/photo/" target="_blank">Случайные фотографии</a></h4>
|
<h4><a href="/photo/" target="_blank">Случайные фотографии</a></h4>
|
||||||
<div id="random-photos" class="ix-photos ix-photos-oneline">
|
<div id="random-photos" class="ix-photos ix-photos-oneline">
|
||||||
<?php
|
<?php
|
||||||
|
|
|
@ -22,7 +22,7 @@ $userprofile = new User(explode('/', $_SERVER['REQUEST_URI'])[2]);
|
||||||
<tr>
|
<tr>
|
||||||
<td class="main">
|
<td class="main">
|
||||||
<?php
|
<?php
|
||||||
if ($userprofile->i('id') === explode('/', $_SERVER['REQUEST_URI'])[2]) { ?>
|
if ((int)$userprofile->i('id') === (int)explode('/', $_SERVER['REQUEST_URI'])[2]) { ?>
|
||||||
<h1><?= htmlspecialchars($userprofile->i('username')) ?><?php if ($userprofile->i('admin') === 1) { echo '<img width="32" src="/static/img/star.png">'; } ?></h1>
|
<h1><?= htmlspecialchars($userprofile->i('username')) ?><?php if ($userprofile->i('admin') === 1) { echo '<img width="32" src="/static/img/star.png">'; } ?></h1>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
@ -96,7 +96,7 @@ $userprofile = new User(explode('/', $_SERVER['REQUEST_URI'])[2]);
|
||||||
<?php
|
<?php
|
||||||
if (json_decode($userprofile->i('content'), true)['aboutyoutube']['value'] != null) { ?>
|
if (json_decode($userprofile->i('content'), true)['aboutyoutube']['value'] != null) { ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="sm" style="padding:3px 10px 3px 0">Twitter/X:</td>
|
<td class="sm" style="padding:3px 10px 3px 0">YouTube:</td>
|
||||||
<td><?= htmlspecialchars(json_decode($userprofile->i('content'), true)['aboutyoutube']['value']) ?></td>
|
<td><?= htmlspecialchars(json_decode($userprofile->i('content'), true)['aboutyoutube']['value']) ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
@ -104,7 +104,7 @@ $userprofile = new User(explode('/', $_SERVER['REQUEST_URI'])[2]);
|
||||||
if (json_decode($userprofile->i('content'), true)['aboutemail']['value'] != null) { ?>
|
if (json_decode($userprofile->i('content'), true)['aboutemail']['value'] != null) { ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="sm" style="padding:3px 10px 3px 0">Почта:</td>
|
<td class="sm" style="padding:3px 10px 3px 0">Почта:</td>
|
||||||
<td><?= htmlspecialchars(json_decode($userprofile->i('content'), true)['aboutemail']['value']) ?></td>
|
<td><a href="emailto:<?=htmlspecialchars(json_decode($userprofile->i('content'), true)['aboutemail']['value'])?>"><?= htmlspecialchars(json_decode($userprofile->i('content'), true)['aboutemail']['value']) ?></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php
|
<?php
|
||||||
|
@ -206,7 +206,7 @@ $userprofile = new User(explode('/', $_SERVER['REQUEST_URI'])[2]);
|
||||||
<div style="margin-top:8px"><a class="dot" href="#" onclick="hideUserPhoto(); return false">закрыть</a></div>
|
<div style="margin-top:8px"><a class="dot" href="#" onclick="hideUserPhoto(); return false">закрыть</a></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a href="<?= $userprofile->i('photourl') ?>" onclick="showUserPhoto(); return false;"><img src="<?= $userprofile->i('photourl') ?>" alt="" id="userphoto_img" class="f" style="width:auto; max-width:100px"></a>
|
<a href="<?= $userprofile->i('photourl') ?>" onclick="showUserPhoto(); return false;"><img onerror="this.src = '/static/img/avatar.png'; this.onerror = null;" src="<?= $userprofile->i('photourl') ?>" alt="" id="userphoto_img" class="f" style="width:auto; max-width:100px"></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -1,64 +1,53 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="ru">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Template Creator</title>
|
<title>Таймер до 12 июля</title>
|
||||||
<link href="https://stackpath.bootstrapcdn.com/bootstrap/5.1.3/css/bootstrap.min.css" rel="stylesheet">
|
<style>
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Pepperscreen';
|
||||||
|
src: url('/static/PEPPERSCREEN.ttf') format('truetype');
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 100vh;
|
||||||
|
margin: 0;
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
font-family: 'Pepperscreen', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#timer {
|
||||||
|
font-size: 100px;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container mt-5">
|
<center><h1 style="color: #f40300; font-size: 65px;">сайт будет захвачен через</h1></center><br>
|
||||||
<h1 class="mb-4">Создание шаблона</h1>
|
<center><div id="timer">Загрузка...</div></center><br>
|
||||||
<div id="template-form">
|
<center><img width="750" src="/static/img/sttslogo.png"></center>
|
||||||
<div class="mb-3">
|
|
||||||
<label for="key-name" class="form-label">Ключ</label>
|
|
||||||
<input type="text" class="form-control" id="key-name">
|
|
||||||
</div>
|
|
||||||
<button id="add-key" class="btn btn-primary">Добавить ключ</button>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<h2 class="mt-4">Шаблоны</h2>
|
|
||||||
<ul id="template-list" class="list-group"></ul>
|
|
||||||
<button id="save-templates" class="btn btn-success mt-4">Сохранить шаблоны</button>
|
|
||||||
<pre id="json-output" class="mt-4"></pre>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
function updateTimer() {
|
||||||
const template = {};
|
const now = new Date();
|
||||||
|
const targetDate = new Date(now.getFullYear(), 6, 12, 12, 0, 0); // 12 июля 12:00 по локальному времени
|
||||||
$('#add-key').on('click', function () {
|
if (now > targetDate) {
|
||||||
const key = $('#key-name').val();
|
targetDate.setFullYear(now.getFullYear() + 1); // если уже прошло, тогда следующее 12 июля
|
||||||
|
|
||||||
if (key) {
|
|
||||||
template[key] = '';
|
|
||||||
addKeyToTemplateList(key);
|
|
||||||
$('#key-name').val('');
|
|
||||||
}
|
}
|
||||||
});
|
const remainingTime = targetDate - now;
|
||||||
|
|
||||||
$('#save-templates').on('click', function () {
|
const days = Math.floor(remainingTime / (1000 * 60 * 60 * 24));
|
||||||
const json = JSON.stringify(template, null, 2);
|
const hours = Math.floor((remainingTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||||
$('#json-output').text(json);
|
const minutes = Math.floor((remainingTime % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
saveTemplates(json);
|
const seconds = Math.floor((remainingTime % (1000 * 60)) / 1000);
|
||||||
});
|
|
||||||
|
|
||||||
function addKeyToTemplateList(key) {
|
document.getElementById('timer').textContent = `${days}:${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
|
||||||
const templateList = $('#template-list');
|
|
||||||
const listItem = `<li class="list-group-item">${key}</li>`;
|
|
||||||
templateList.append(listItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveTemplates(json) {
|
setInterval(updateTimer, 1000);
|
||||||
$.post('save_templates.php', { data: json }, function (response) {
|
updateTimer(); // Начальное обновление
|
||||||
alert('Шаблоны сохранены!');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue