Помощь результаты голосования

Тема в разделе "DLE", создана пользователем SPoX, 7 ноя 2015.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. SPoX

    SPoX

    Регистр.:
    19 апр 2014
    Сообщения:
    180
    Симпатии:
    24
    здравствуйте ребята как дела?
    у меня к вам вопрось как сделать так чтобы когда пользователь проголосует в опросе то после показало сразу результаты

    то есть если сделает рефреш или же перейдет на другом странице показало уже сразу результаты

    я где то выдел такой хак но искал не нашёл

    помогите пожалуйста
    у меня 10.5 версия
     
  2. primehostnet

    primehostnet

    Регистр.:
    28 июн 2015
    Сообщения:
    160
    Симпатии:
    27
    нужно сохранять куку у юзверя о том что он проголосил, а при загрузке проверять есть ли такая кука у юзверя, если есть, то сразу результы выводить
     
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.210
    Симпатии:
    2.239
    Это реально сделать, но потребуется дополнительный запрос в базу данных, причём, не кэшируемый... Оно Вам надо?
     
  4. SPoX

    SPoX

    Регистр.:
    19 апр 2014
    Сообщения:
    180
    Симпатии:
    24
    нашёл рабочий хак от сандера который работает на 10.5 версию

    Открыть файл engine/modules/vote.php
    Найти и удалить строку:
    Код:
    if( $vote_action == "vote" ) {
    Найти строку:
    Код:
    else $is_voted = true;
    Заменить на:
    Код:
        else{
            $is_voted = true;
            $flag = 1;
        }
    Найти строку:
    Код:
    } else $is_voted = true;
    И после нее удалить строку:
    Код:
    $flag = 1;
    Найти строку:
    Код:
    if( $is_voted == false ) {
    Заменить на:
    Код:
    if( $is_voted == false AND $vote_action == "vote" ) {

    Теперь найти код:
    Код:
    $db->query( "UPDATE " . PREFIX . "_vote SET vote_num=vote_num+1 WHERE id='$rid'" );
    }
    }
    И удаляем одну из закрывающих скобок }

    хак добавит +3 запроса на вывод каждой страницы.

    1. Запрос на определение голосовал человек или нет
    2. Получение статистики ответов на вопросы
    3. Получение текстов ответов

    да знаю но реально было нужно этот хак
    теперь есть возможность кэшировать все это?

    у меня проблема в опросах в новостях

    у меня poll.tpl так
    Код:
    <br />
    <h2 class="heading">{question}</h2>
    {list}
    [voted]<div align="center">количество проголосовавших: {votes}</div>[/voted]
    <br>
    [not-voted]
    <button class="fbutton" type="submit" onclick="doPoll('vote', '{news-id}'); return false;"><span>голосовать</span></button>
    [/not-voted]
    <br />
    <br />
    проблема в том что после голосования кнопка голосовать не исчезает если не сделать рефреш
    остается и когда жмешь ничего не происходит
    хочу сделать как в vote.tpl чтобы после голосования кнопка голосовать исчезало автоматический без рефреша
     
    Последнее редактирование модератором: 8 ноя 2015
  5. MSW

    MSW

    Регистр.:
    27 авг 2007
    Сообщения:
    491
    Симпатии:
    408
  6. vlzrave

    vlzrave Писатель

    Регистр.:
    19 сен 2011
    Сообщения:
    4
    Симпатии:
    0
    Не помню как делалось, но вот файл, замени его и всё будет работать. От 10.3 - 10.6
     

    Вложения:

    • vote.rar
      Размер файла:
      2,4 КБ
      Просмотров:
      1