Модуль "Голосования"

Гости не могут голосовать.

 
Sometime CMS Community
Посетитель
no avatar
Сообщений: 8
Еще давно заметил, что после создания нового голосования, только один гость может проголосовать. Т.е. если на новый опрос еще ни один гость голосовал, то всем гостям доступна возможность проголосовать, но если кто-то из гостей уже проголосовал, то после этого всем гостям показываются только результаты голосования. Сегодня я решил все-таки исправить это. Вся проблема заключалась в том, что для зарегистрированного пользователя в переменной inUser->ip присваивался айпи пользователя, но вот для гостей такая переменная вообще не существовала. Получается что у проголосовавшего гостя id=0 и ip равен пустой строке, и у всех остальных гостей id=0 и ip равен пустой строке. А так как скрипт проверяет, голосовал пользователь или нет, по id и ip, то получается что скрипт не видит разницы между проголосовавшим гостем и всеми остальными гостями… в общем решается это так:
В файле ’user.class.php’, находящемся в ’core/classes’, нужно после ’if (!$user_id){’ в функции ’update’добавить строчку:
Код PHP:
  1. $this->ip = $_SERVER['REMOTE_ADDR'];
Т.е. из такого:
Код PHP:
  1.  
  2. public function update() {
  3.  
  4. $inCore = cmsCore::getInstance();
  5.  
  6. $user_id = isset($_SESSION['user']['id']) ? $_SESSION['user']['id'] : 0;
  7.  
  8. if (!$user_id)
  9. {
  10. $this->id = 0;
  11. $this->is_admin = 0;
  12. $this->group_id = self::getGuestGroupId();
  13. return true;
  14. }
Сделать такое:
Код PHP:
  1.  
  2. public function update() {
  3.  
  4. $inCore = cmsCore::getInstance();
  5.  
  6. $user_id = isset($_SESSION['user']['id']) ? $_SESSION['user']['id'] : 0;
  7.  
  8. if (!$user_id)
  9. {
  10. $this->id = 0;
  11. $this->ip = $_SERVER['REMOTE_ADDR']; //<---------
  12. $this->is_admin = 0;
  13. $this->group_id = self::getGuestGroupId();
  14. return true;
  15. }
Использую версию 1.6.2. И если разработчики еще не исправили это во всеми ожидаемой 1.7, то хотелось бы что бы они обратили внимание на этот пост.
Посетитель
no avatar
Сообщений: 23
nikvan, спасибо - очень нужная возможность.
Вопрос к Вам - раз уж вы разобрали данный модуль - по полочкам - не могли бы вы ответить - есть ли вообще реальная возможность сделать еще архивы голосований - чтобы их можно было просматривать? Например по ссылке в модуле - Все голосования или Архив голосований-опросов.
Реклама
cms
Sometime CMS Community
Посетитель
no avatar
Сообщений: 8
Maxim:
Вопрос к Вам - раз уж вы разобрали данный модуль - по полочкам - не могли бы вы ответить - есть ли вообще реальная возможность сделать еще архивы голосований - чтобы их можно было просматривать? Например по ссылке в модуле - Все голосования или Архив голосований-опросов.
Не сказал бы что я разобрал модуль по полочкам joke
Насчет архива, если нужно только просматривать «название опроса» и количество голосов за каждый из вариантов ответа (естественно с текстом ответа), то думаю это не так уж и сложно сделать. Выглядеть это будет примерно так: из таблицы голосований переносим нужно в другую таблицу (архив голосований) и удалить всё что относится к этому голосованию из таблицы cms_polls_log, что бы не занимало зря место. Но в таком случае мы не сможем посмотреть, кто голосовал, потому что эти данные в другой таблице. Но я такого делать не буду, так как тут нужно дописывать возможность просмотра архива голосований, а я не совсем разобрался с движком.
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1551
зато теперь будет легко сделать результаты голосования далёкими от реальности hoho
Ну типа продвигаю сайты, по немногу и не напрягаясь. smile
Посетитель
small user social cms
Сообщений: 22
Еще как вариант возможного развития модуля - сделать возможность "своего мнения", т.е. пользователь вбивает в поле свой вариант ответа на опрос, с возможностью ведения лога этих ответов и выбора в админке показывать пользователям или нет... Как-то так :)
Sometime CMS Community
Посетитель
no avatar
Сообщений: 8
Anonimus:

зато теперь будет легко сделать результаты голосования далёкими от реальности hoho

Кажется, вы не совсем поняли, что изменится после этого исправления.
Представим, что есть сайт, на который каждый день заходят 100 человек. Из них человек 20 это зарегистрированные пользователи, а остальные идут с поисковиков, соц. Закладок, возможно, кто-то добавил сайт в закладки и заходит время от времени, но по каким-то причинам не регистрируется и прочее. И вот админ сайта решил создать новый опрос, например под названием «Сильно ли вас затронул мировой кризис?». В полнее возможно, что проголосовать захотят 20-30 человек из тех 80 незарегистрированных и человек 10-15 – из 20 зарегистрированных. И вот что получится, если не исправить баг с голосованиями: из ста зашедших проголосует 10-15 человек, хотя может кто-то настолько сильно захочет проголосовать, что зарегистрируется на сайте, но это будет максимум 5 человек, итого опрошенных 15-20 человек. А если исправить – то: 30-45 человек из ста зашедших. Я думаю что раньше (до исправления) были «результаты голосования далёкими от реальности», а не после добавления той строчки.

Если же вам кажется что какой-то неизвестный гость будет каждую минуту менять сокс, что бы накрутить голосование, то можете просто в настройках модуля установить параметр Доступ на Пользователи.

P.S. прошу не придираться к цифрам, касающихся посещаемости и количества проголосовавших, поскольку они тут не главное. Главное что после исправления количество проголосовавших гостей станет больше нуля.
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1224
Судя по багтрекеру. Администраторы исправили баг.
Посетитель
small user social cms
Сообщений: 62
ROOT спасибо тебе за информацию.
А то меня гости уже достали, что не могут проголосовать, а я думал, что какая то у меня на сайте неисправность.
А темы голосований у меня на сайте как и большинства безобоидные и непринципиальные и накручивать голоса кто то из гостей, например удаляя куки никто я думаю не станет.
А если принципиальное голосование, типа конкурс какой-нибудь действительно можно скрыть его от гостей и вопрос исчерпан.
Sometime CMS Community
Посетитель
no avatar
Сообщений: 8
alexz31:
А если принципиальное голосование, типа конкурс какой-нибудь действительно можно скрыть его от гостей и вопрос исчерпан.
Полностью согласен с тобой.
Кстати просто удалить куки не достаточно, нужно еще и IP поменять hoho
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1549
Поднимаю снова тему... Как узнать какие пользователи голововали и их варианты ответов? И где бы их вывести в админке?
Люблю эту CMS!
Я немного художествую тут: http://virelart.ru :)
Пока по большей части выкладываюсь тут vk.com/virelart. p.s.: пасибки можно в карму :3
Посетитель
small user social cms
Медаль
Сообщений: 296
Azura:
Как узнать какие пользователи голововали и их варианты ответов? И где бы их вывести в админке?
А также сделать страничку с фронтенда для добавления голосований определенным группам пользователей без доступа в админку?
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.