Необходимо голосование гостей.

Автор larik000, 04 марта 2008, 04:37:14

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

larik000

Мне необходимо сделать возможным голосование гостей. Как это можно сделать. Такой функции изначально у гостей нет. Может уже есть решения или кто знает где в коде что поменять. Заранее спасибо, надеюсб на помощь.

KapaBG

#1
для таких дел лучче выделить гостям отдельный раздел. кажному разделу можно создать локальную политику разрешений, где можно выставить им дополнительные права, в том числе и голосование.

создай для тестирование себе новый раздел. назови ево "Выборы: Кандидаты в |модер|ы",
затем беги в админку - "Пользователи"/"Права доступа"
закладка "Настройки"
ставиш флажок на "Включить выставление отдельных прав доступа для каждого раздела"
закладка "Права доступа по разделам"
в новом раздели щолкаеш на "Локальный" и тама лезешь в "Гости"
выставляеш им "Добавление голосований в тему" и сохроняеш.

|модер в истерике| аж устал бить клавиш  crazy

larik000

Не получилось. Если заходить под гостем всё равно не можешь проголосовать!!!!! У него нет в правах пункта возможность голосовать!!!

KapaBG

#3
тада так

идешь на вкладку "Права доступа по группам"
щелкани на Гости и выбери ниже
"Установить права доступа как у этой группы:" - "Обычные пользователи"
жмешь на устоновить и потома уберай лишнее к |модераторской матери|

larik000

в том то и дело что всё это не прокатывает. Похоже в коде гдето прописано что гости не могут голосовать. Создавать опросы могут а голосовать нет, вот и парадокс. Вот мне и нужно узнать как это исправить

KapaBG

хм, дествительно. значит это дело завязано с наличием профиля. ладно покопаюсь вечером.

larik000


KapaBG

Sources/Poll.php
// Allow the user to vote.
function Vote()
{
global $topic, $txt, $db_prefix, $ID_MEMBER, $user_info;

// Make sure you can vote.
isAllowedTo('poll_vote');

// Even with poll_vote permission we would never be able to register you.
if ($user_info['is_guest'])
fatal_lang_error('cannot_poll_vote');

loadLanguage('Post');

// Check if they have already voted, or voting is locked.
$request = db_query("
SELECT IFNULL(lp.ID_CHOICE, -1) AS selected, p.votingLocked, p.ID_POLL, p.expireTime, p.maxVotes, p.changeVote
FROM ({$db_prefix}polls AS p, {$db_prefix}topics AS t)
LEFT JOIN {$db_prefix}log_polls AS lp ON (p.ID_POLL = lp.ID_POLL AND lp.ID_MEMBER = $ID_MEMBER)
WHERE p.ID_POLL = t.ID_POLL
AND t.ID_TOPIC = $topic
LIMIT 1", __FILE__, __LINE__);

тоисть при подсчете голосование нужон обязательно ID_MEMBER, которово у гостей нету. вобщем похоже такое дело совсем не покатит. ведь тогда нужно определять уникальность голосования более замороченным способом, ориентируясь на ип, хост, мыло (и проверять ево подлинность) что связано с дополнительным хранением этих дел и защиты от дураков.

короч думаю гости будут глодать кости :( оне могут тока инициировать опрос. возможно какой-нибудь отдельный софт прикрутить, где можно им баловаца голосаме. если такое дело организовано в других бордах, можн поднять этот вопрос и у девелоперов.

larik000

Спасибо за совет, я тоже пытался менять код. Ничего не вышло вчера задал этот же вопрос разработчикам

KapaBG

видел. думаю тебе опять предложут сначала варианты с админкой. привел бы сразу вот энтот код и попросил бы способ встроить уникальность гостей по ип. большего и не надо так думаю. вобщем речь идет наверн об дополнительной таблице в базе, типа мод.

larik000

В принципе мне так и предложили  :D

KVL

Цитата: larik000 от 05 марта 2008, 10:50:52
В принципе мне так и предложили  :D
Напиши ещё раз, чтобы поняли и код от Княже приведи им. :) Для меня это тоже актуально, может, доработают новую линейку. Я вот здесь про это писал.

Наверное, темы стоит объединить.