radrigo 182 Опубликовано: 8 февраля 2016 Рассказать Опубликовано: 8 февраля 2016 Здравствуйте. Есть новость с голосованием, голосовать могут только зарегистрированные пользователи. Есть какая либо возможность показать пользователям полный отчёт по голосованию в новости? Кто за что проголосовал? Чтоб избежать разговоров о накрутке? В бд идёт статистика по голосованию, можно ли как нибудь её показать? Заранее признателен за ответ. Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 8 февраля 2016 Рассказать Опубликовано: 8 февраля 2016 Автор Нашел небольшой модуль чтоб было видно кто проголосовал. 1. В файле poll.php найти: $log = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_poll_log WHERE news_id = '{$row['id']}' AND member ='{$log_id}'" ); ниже вставить: $votes = $db->query ( "SELECT u.name FROM ". PREFIX ."_users u INNER JOIN ". PREFIX ."_poll_log p ON (u.user_id = p.member) WHERE p.news_id = '{$row['id']}'" ); $all_votes = 0; while($prow = $db->get_row()){ $all_votes++; if ($config['allow_alt_url'] == "yes") { $full_link = "/user/" . stripslashes( $prow['name'] ); } else { $full_link = "/index.php?subaction=userinfo&user=" . stripslashes( $prow['name'] ); } $link = "<a ".$hint." href=\"".$full_link."\" target=\"_blank\"><strong>" . stripslashes( $prow['name'] ) . "</strong></a>"; $all_users .= " ".$link.","; } $all_users = substr_replace( $all_users, '.', -1, 1 ); $db->free(); 2. В этом же файле чуть ниже найти: $tplpoll->set( '{votes}', $poll['votes'] ); ниже вставить: $tplpoll->set( '{all_votes}', $all_votes ); $tplpoll->set( '{all_users}', $all_users ); В файле шаблона poll.tpl используйте следующие переменные:{all_votes} - количество проголосовавших человек,{all_users} - список ников проголосовавших. Всё работает, вот что получилось Скажите, безопасно ли использовать подобный модуль? И можно ли как-то вывести за кого проголосовал, может при наведении на ник, или хотя бы количество отданных голосов? Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 8 февраля 2016 Рассказать Опубликовано: 8 февраля 2016 <?php if (!defined('DATALIFEENGINE')) { die(); } $result = $db->query( "SELECT name, answer FROM " . PREFIX . "_vote_result WHERE vote_id = {$vote_id}" ); while ($row = mysqli_fetch_assoc($result)) { echo '<b>' . $row['name'] . '</b>' . ' проголосовал за вариант '. '<b>' . $row['answer'] . '</b>'; } ?> Вот и весь модуль подключить инклюдом с передачей параметра vote_id (айди голосования) {include file="engine/modules/vote.stat.php?vote_id=1"} и выйдет результат Вася Пупкин проголосовал за вариант 3 Или сделалть вывод только имен через запятую а вариант за что проголосовал в тайтл какого нибудь тега, что бы всплывало Ну и кэширование прикрутить, если не лень)) Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 8 февраля 2016 Рассказать Опубликовано: 8 февраля 2016 (изменено) Автор 17 минуту назад, alex32 сказал: <?php if (!defined('DATALIFEENGINE')) { die(); } $result = $db->query( "SELECT name, answer FROM " . PREFIX . "_vote_result WHERE vote_id = {$vote_id}" ); while ($row = mysqli_fetch_assoc($result)) { echo '<b>' . $row['name'] . '</b>' . ' проголосовал за вариант '. '<b>' . $row['answer'] . '</b>'; } ?> Вот и весь модуль подключить инклюдом с передачей параметра vote_id (айди голосования) {include file="engine/modules/vote.stat.php?vote_id=1"} и выйдет результат Вася Пупкин проголосовал за вариант 3 Или сделалть вывод только имен через запятую а вариант за что проголосовал в тайтл какого нибудь тега, что бы всплывало Ну и кэширование прикрутить, если не лень)) Спасибо большое, но данное для меня поверхностно, можете подробнее описать куда и где надо внести изменения? По поводу вывода за кого проголосовал можно через тег title="проголосовал за: вариант 5, вариант 8" Да и повторю, голосование в новостях, а не общее. Изменено 8 февраля 2016 пользователем radrigo Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 8 февраля 2016 Рассказать Опубликовано: 8 февраля 2016 Автор Я понимаю что нужно внести изменения в код который добавлен в poll.php Примерно так, выделил жирным Помогите правильно реализовать. Цитата $votes = $db->query ( "SELECT u.name FROM ". PREFIX ."_users u INNER JOIN ". PREFIX ."_poll_log p ON (u.user_id = p.member) WHERE p.news_id = '{$row['id']}'" ); $all_votes = 0; while($prow = $db->get_row()){ $all_votes++; if ($config['allow_alt_url'] == "yes") { $full_link = "/user/" . stripslashes( $prow['name'] ); } else { $full_link = "/index.php?subaction=userinfo&user=" . stripslashes( $prow['name'] ); } $link = "<a title="проголосовал за: {здесь код который выводит за кого проголосовал}" ".$hint." href=\"".$full_link."\" target=\"_blank\"><strong>" . stripslashes( $prow['name'] ) . "</strong></a>"; $all_users .= " ".$link.","; } $all_users = substr_replace( $all_users, '.', -1, 1 ); $db->free(); Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 8 февраля 2016 Рассказать Опубликовано: 8 февраля 2016 о, не отразил, что голосовалка в новости. Нет, это не прокатит. о я в таблицах post и poll и связанными с ними поковырялся, так и не понял, куда там что записывается Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 8 февраля 2016 Рассказать Опубликовано: 8 февраля 2016 (изменено) Автор Решил сделать чтоб окно с инфой пользователя всплывало Сделал так $votes = $db->query ( "SELECT u.name FROM ". PREFIX ."_users u INNER JOIN ". PREFIX ."_poll_log p ON (u.user_id = p.member) WHERE p.news_id = '{$row['id']}'" ); $all_votes = 0; while($prow = $db->get_row()){ $all_votes++; if ($config['allow_alt_url'] == "yes") { $full_link = "/user/" . stripslashes( $prow['name'] ); } else { $full_link = "/index.php?subaction=userinfo&user=" . stripslashes( $prow['name'] ); } $link = "<a ".$hint." onclick=\"ShowProfile('" . stripslashes( $prow['name'] ) . "', '".$full_link."', '1'); return false;\" href=\"".$full_link."\"><strong>" . stripslashes( $prow['name'] ) . "</strong></a>"; $all_users .= " ".$link.","; } $all_users = substr_replace( $all_users, '.', -1, 1 ); $db->free(); Однако при просмотре пользователей с русскоязычными никами пишет "Пользователь с таким именем не найден." Изменено 8 февраля 2016 пользователем radrigo Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 9 февраля 2016 Рассказать Опубликовано: 9 февраля 2016 скиньте ссылку посмотреть Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 9 февраля 2016 Рассказать Опубликовано: 9 февраля 2016 Автор http://www.gusev-online.ru/news/obshestvo/5877-vybiraem-samuyu-krasivuyu-paru.html Но здесь без всплывающей инфы о пользователях, не вижу смысла вносить изменения пока глючит. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 10 февраля 2016 Рассказать Опубликовано: 10 февраля 2016 ТАк а где список то) Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 10 февраля 2016 Рассказать Опубликовано: 10 февраля 2016 Автор 7 часов назад, alex32 сказал: ТАк а где список то) Список виден только посетителям. Цитата Ссылка на сообщение Поделиться на других сайтах
alex32 942 Опубликовано: 10 февраля 2016 Рассказать Опубликовано: 10 февраля 2016 Подозреваю, что дело в кодировке. Глянуть бы когда всплывающее окно установлено и работает Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 182 Опубликовано: 10 февраля 2016 Рассказать Опубликовано: 10 февраля 2016 Автор Да ладно, не охота уже замачиваться, это голосование до конца доведу и больше не буду устраивать голосования на сайте, очень уж не хватает функционала, проще в соц.сетях замутить голосование. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.