Форум о социальных сетях Поиск по форуму Инвестиции SMM обучение SMM курсы
Форум о социальных сетях Поиск по форуму Инвестиции SMM обучение SMM курсы
  • Страница 1 из 1
  • 1
Фикс "бага" голосований!
#1
Вторник, 25.01.2011, 15:28
Console
Проверенный
Сообщения: 182
Репутация: -17
1. опрос на сайте. предлагает проголосовать второй раз, голосует, но голос не учитывается. нужно прийти к какому-то логичному решению - либо учитывать все попытки проголосовать, либо выдавать "вы уже голосовали"

2. голосование в новости. имхо еще хуже - после голосования показывает результаты НО все еще висят две кнопки голосовать и результаты. здесь имхо лучше просто убрать эти две кнопки.

Правим обычные голосования

Открываем /engine/modules/vote.php

находим

/////////////////////////////////////////////////////////////////////////////
// Проверяем проголосовал ли текущий пользователь
/////////////////////////////////////////////////////////////////////////////
$_IP = $db->safesql($_SERVER['REMOTE_ADDR']);

if (isset($member_id['name'])) $nick = $member_id['name'];
else
$nick = '';

if ($is_logged)
$row = $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND name='$nick'");
else
$row = $db->super_query("SELECT count(*) as count FROM ".PREFIX."_vote_result WHERE vote_id='$rid' AND ip='$_IP'");

if ($row['count'] == 0) $is_voted = false;
else
$is_voted = true;

вырезаем и вставляем этот код над

if ($vote_action == "vote")

также над ним добавляем

if ($is_voted )
{
$flag = 1;
}

Единственный минус данного фикса, это - добавление дополнительного запроса!

Правим голосования в новостях

1. Открываем /engine/modules/poll.php, находим

ajax.sendAJAX(varsString);

ниже добавляем

document.getElementById('buttons').style.display = 'none';

находим

$tpl->compile('poll');

выше добавляем

if ( !$log['count'] == 0 )
{
$tpl->set ( '[hide-button]', '' );
$tpl->set ( '[/hide-button]', '' );
}
else
{
$tpl->set_block ( "'\[hide-button\](.*)\[/hide-button\]'si", "" );
}

2. В шаблоне poll.tpl находим код кнопок

<input type="button" onclick="doPoll('vote'); return false;" class="bbcodes_poll" value="Голосовать" /> <input type="button" onclick="doPoll('results'); return false;" class="bbcodes_poll" value="Результаты" />

и экранируем их

[hide-button]<div id="buttons">
<input type="button" onclick="doPoll('vote'); return false;" class="bbcodes_poll" value="Голосовать" /> <input type="button" onclick="doPoll('results'); return false;" class="bbcodes_poll" value="Результаты" />
</div>[/hide-button]

  • Страница 1 из 1
  • 1
Поиск:
Форум
Социальные сети
Хостинг от uCoz