Главная » 2011 » Май » 31 » Фикс \"бага\" голосований!
03:31
Фикс \"бага\" голосований!
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 находим код кнопок

 

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

[hide-button]

 
[/hide-button]
Категория: Баг-фиксы | Просмотров: 357 | Добавил: ALL-DLE | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: