[html]<!DOCTYPE html> body { header { header h1 { .newspaper { article { article h2 { article p { .decorative-line { footer { <div class="newspaper"> <div class="decorative-line">✦✧✦</div> <article> <div class="decorative-line">✦✧✦</div> <article> <footer> [/html] |
ug
Сообщений 1 страница 4 из 4
Поделиться12025-09-07 21:42:43
Поделиться22025-09-07 22:23:24
[html]<!DOCTYPE html> .profile-container { .profile-header { .profile-info { .profile-info img { .profile-name { .profile-buttons button { .profile-buttons button:hover { .stats { .posts { .posts img { <div class="profile-container"> <div class="stats"> <div class="posts"> </body> [/html] | ИМЯ ФАМИЛИЯ, ВОЗРАСТ родился, сошел с ума и умер |
Поделиться32025-09-08 13:05:35
[html]<!-- вставь в нужный шаблон MyBB или на страницу -->
<div id="dice-widget">
<label>Кубиков: <input id="dice-count" type="number" value="1" min="1" max="9"></label>
<label>Граней: <input id="dice-sides" type="number" value="6" min="2" max="1000"></label>
<button id="dice-roll-btn">Кинуть кубики</button>
<div id="dice-result" aria-live="polite"></div>
</div>
<script>
document.getElementById('dice-roll-btn').addEventListener('click', async function () {
const count = Number(document.getElementById('dice-count').value) || 1;
const sides = Number(document.getElementById('dice-sides').value) || 6;
// Получаем my_post_key из страницы (MyBB генерирует его в шаблоне: {$mybb->my_post_key})
// Убедись, что в шаблоне передаёшь его в JS, например:
// <script>const MYBB_POST_KEY = "{$mybb->my_post_key}";</script>
if (typeof MYBB_POST_KEY === 'undefined') {
alert('Ошибка: отсутствует my_post_key. Добавь его в шаблон.');
return;
}
const btn = this;
btn.disabled = true;
const resDiv = document.getElementById('dice-result');
resDiv.textContent = 'Идёт бросок...';
try {
const resp = await fetch('/dice.php', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
count: count,
sides: sides,
my_post_key: MYBB_POST_KEY
})
});
const data = await resp.json();
if (!data.ok) {
resDiv.textContent = 'Ошибка: ' + (data.error || 'неизвестно');
} else {
// Отображаем результат — источник правды: saved_id и серверная запись
resDiv.textContent = 'Выпало: ' + data.result.join(', ') + ' (ID: ' + data.saved_id + ')';
}
} catch (e) {
resDiv.textContent = 'Сетевая ошибка';
} finally {
btn.disabled = false;
}
});
</script>
[/html]