• SanDev.pro
  •  › 
  • Datalife Engine
  •  › 
  • Отображение результатов голосования для проголосовавших
Отображение результатов голосования для проголосовавших для DLE

Отображение результатов голосования для проголосовавших

Отображение результатов голосования для проголосовавших

Последнее время часто стали встречаться вопросы насчет опросника на сайте. Т.е. нужно, чтобы для проголосовавших сразу показывало результаты, а не форму голосования. Что ж, решение есть и оно довольно таки простое, делал на DLE10.
Открыть файл 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. Получение текстов ответов.

С уважением,
Олег Александрович a.k.a. Sander
Комментарии: (6)
  1. foto
    Посетитель 18 сентября 2013 07:12 #
    Так как мы убрали это из кода

    if( $vote_action == "vote" ) {


    Нужно еще убрать закрывающую скобку примерно на 117 строке.

    Вот код в котором нужно убрать последнюю скобку:
    	if( $is_voted == false AND $vote_action == "vote" ) {
    		
    		if( ! $is_logged ) $nick = "guest";
    		
    		$db->query( "INSERT INTO " . PREFIX . "_vote_result (ip, name, vote_id, answer) VALUES ('$_IP', '$nick', '$rid', '$vote_check')" );
    		
    		$db->query( "UPDATE " . PREFIX . "_vote SET vote_num=vote_num+1 WHERE id='$rid'" );
    
    	}
    }


    А так всё работает, Саша молодец, это должно быть в стандартный сборках DLE.
    0
    1. foto
      Администратор 18 сентября 2013 17:03 #
      Точно, спасибо.
      Забыл про нее.

      PS. Кто такой Саша? о_О
      +1
  2. foto
    Посетитель 19 сентября 2013 03:08 #
    Цитата: Sander
    Точно, спасибо.
    Забыл про нее.

    PS. Кто такой Саша? о_О


    А точно, ты Олежа, просто привык по нику так называть )
    0
  3. foto
    Посетитель 17 ноября 2013 12:24 #
    а на 10 версии, почему то не работает, как исправить?
    0
  4. foto
    Посетитель 17 ноября 2013 12:29 #
    спасибо, разобрался)
    0
  5. foto
    Посетитель 20 декабря 2017 12:39 #
    Может актуализировать хак для 12 линейки?
    0
Добавить комментарий
  • Логин
  • E-mail (не обязательно)
Повторите рисунок:
antibot
© Sander-Development. 2009-2018.
При копировании, ссылка на источник обязательна.