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] | |
|
Всего комментариев: 0 | |