query("SELECT id, title, category, body, vote_num, start, end, grouplevel FROM " . PREFIX . "_vote WHERE approve"); while ($row = $db->get_row()) { $vote_info[$row['id']] = $row; } set_vars("vote", $vote_info); $db->free(); } // ===== ВЫБОР ОПРОСА ===== if (!$vote_id OR empty($vote_info[$vote_id]['id'])) { $find_vote = array(); foreach ($vote_info as $votes) { if ($votes['start'] AND $_TIME < $votes['start']) continue; if ($votes['end'] AND $_TIME > $votes['end']) continue; $votes['grouplevel'] = explode(',', $votes['grouplevel']); if ($votes['grouplevel'][0] != "all" AND !in_array($member_id['user_group'], $votes['grouplevel'])) continue; $find_vote[] = $votes; } if (!count($find_vote)) { $tpl->result['vote'] = ""; return; } $rand_keys = array_rand($find_vote); $rid = $find_vote[$rand_keys]['id']; } else { $rid = $vote_id; } // ===== РЕЗУЛЬТАТЫ ===== if ($vote_action == "results" OR $flag) { $db->query("SELECT answer, count(*) as count FROM " . PREFIX . "_vote_result WHERE vote_id='$rid' GROUP BY answer"); $flag = 1; $pn = 0; $answer = array(); while ($row = $db->get_row()) { $answer[$row['answer']]['count'] = $row['count']; } $db->free(); } // ===== AJAX (ВАЖНО!) ===== $ajax_script = << function doVote(event){ var vote_check = document.querySelector('#dle-vote input[name=vote_check]:checked'); if (!vote_check) return; ShowLoading(''); fetch(dle_root + "engine/ajax/vote.php?vote_id={$rid}&vote_action=" + event + "&vote_check=" + vote_check.value + "&vote_skin=" + dle_skin + "&user_hash=" + dle_login_hash) .then(res => res.text()) .then(data => { HideLoading(''); document.getElementById('vote-layer').innerHTML = data; }); } HTML; // ===== ВЫВОД ===== switch ($flag) { // ===== ГОЛОСОВАНИЕ ===== case 0: $title = dle_get_lang_text(stripslashes($vote_info[$rid]['title'])); $body = stripslashes($vote_info[$rid]['body']); $body = str_replace("
", "
", $body); $body = explode("
", $body); for ($i = 0; $i < sizeof($body); $i++) { $text = dle_get_lang_text(trim($body[$i])); if (!$text) continue; $sel = ($i == 0) ? 'checked="checked"' : ""; $entry .= "
"; } $entry = "
$entry
"; $tpl->load_template('vote.tpl'); $tpl->copy_template = $ajax_script . "
" . $tpl->copy_template . "
"; $tpl->set('
', $entry); $tpl->set('95', $rid); $tpl->set('Когда закончится война?', $title); $tpl->set('', ''); $tpl->set('', ''); $tpl->set_block("'\\[voteresult\\].*?\\[/voteresult\\]'si", ""); $tpl->compile('vote'); $tpl->clear(); break; // ===== РЕЗУЛЬТАТЫ ===== case 1: $result = $db->super_query("SELECT * FROM " . PREFIX . "_vote WHERE id='$rid'"); $title = dle_get_lang_text(stripslashes($result['title'])); $body = stripslashes($result['body']); $body = str_replace("
", "
", $body); $body = explode("
", $body); $max = $result['vote_num']; for ($i = 0; $i < sizeof($body); $i++) { ++$pn; if ($pn > 5) $pn = 1; $text = dle_get_lang_text(trim($body[$i])); if (!$text) continue; $num = $answer[$i]['count'] ?? 0; $proc = ($max != 0) ? round((100 * $num) / $max, 2) : 0; $entry .= "
{$text} - {$num} ({$proc}%)
{$proc}%
"; } $entry = "
$entry
"; $tpl->load_template('vote.tpl'); $tpl->set('
', $entry); $tpl->set('95', $rid); $tpl->set('Когда закончится война?', $title); $tpl->set('{votes}', $max); $tpl->set('', ''); $tpl->set_block("'\\[votelist\\].*?\\[/votelist\\]'si", ""); $tpl->compile('vote'); $tpl->clear(); break; } if (!$rid) $tpl->result['vote'] = ""; ?>
Последние новости
16:44
Затяжная война на Ближнем Востоке: аналитики предупреждают о катастрофе для мировой экономики
72
16:25
В Иерусалиме приостановили службы в Храме Гроба Господня
194
16:06
Врач объяснила, почему полезно пить теплую воду
226
15:47
Весеннее равноденствие: что нельзя делать в этот день
250
15:28
Курс валют: аналитик уточнил, будет ли 50 грн за доллар
218
15:09
НДС для ФОП, военный сбор, налог на посылки: Минфин обнародовал большой "налоговый законопроект"
271
14:50
Фицо пригрозил принять меры против Украины из-за нефтепровода "Дружба"
295
14:31
Стоимость топлива: эксперт рассказал, какие ценники будут на АЗС
285
14:12
Отказ стран ЕС от российской нефти "просто безумен", - Орбан
317
13:53
Война в Иране может вызвать стремительный рост цен на продукты питания, - Reuters
288
13:34
Цены на АЗС: как выросла стоимость топлива 20 марта
535
13:15
Курс валют: обменники и банки обновили стоимость доллара и евро
429
13:04
На 98-м году жизни умер патриарх Филарет
398
12:56
Глобальное потепление: уровень моря уже выше, чем прогнозировалось ранее
295
12:37
Саммит ЕС показал бессилие европейских лидеров на фоне войн в Украине и в Иране, - Politico
359
12:18
Инструкторы ВСУ были поражены тем, как США сбивают "Шахеды" на Ближнем Востоке, – The Times
992
11:59
В Украине может возникнуть дефицит автогаза: поставщики не уверены, что смогут обеспечить спрос
479
11:40
Дела о присвоении средств: полиция проводит масштабные обыски в больницах по всей стране
468
11:21
Урсула фон дер Ляйен заверила, что Украина получит 90 млрд евро кредита от ЕС
387
11:02
Украина усиливает контроль на границе с помощью мобильных сканеров с ИИ
334
10:43
Война с Ираном, которую затеял Трамп, рискует обернуться крахом, - The Economist
646
10:24
Топливный кешбэк: как получить деньги и когда они поступят
427
10:05
В Украине могут возникнуть перебои с рядом продуктов и лекарств из-за войны в Иране, - эксперты
756
09:46
В ЕС обсуждают, стоит ли продлевать специальный режим защиты для украинских беженцев
1.1т
09:27
Курс валют в конце марта: сколько будет стоить доллар
453
09:08
Пентагон сообщил о перебросе американских морских пехотинцев и десантных кораблей на Ближний Восток
529
08:57
Рейтинг одобрения Трампа обновил исторический минимум, - Newsweek
534
08:34
Фицо пожаловался на Зеленского и заблокированную нефть
477
08:13
Киевлянка попала в розыск ТЦК, хотя не была на учете
521
Больше новостей