Голосования - по умолчанию выводить результаты

Автор Nitro, 19 сентября 2012, 13:17:44

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

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

Nitro

Доброго дня всем.
Уважаемые форумчане, подскажите, пожалуйста, может кто-то решал задачу...
Надо, чтобы по умолчанию у всех пользователей в темах, где есть голосования (кстати, сразу точню что у меня их больше одного;)) они выводились в режиме viewresults.

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

Заранее благодарен за советы.

karavan

Не совсем понятно, в чем проблема. При создании или редактировании голосования есть настройка "Отображение результатов:", там ставите галочку напротив "Показать результаты всем" и пользователи будут видеть текущий результат, ещё не прголосовав.

Nitro

Цитата: karavan от 19 сентября 2012, 13:38:27
Не совсем понятно, в чем проблема. При создании или редактировании голосования есть настройка "Отображение результатов:", там ставите галочку напротив "Показать результаты всем" и пользователи будут видеть текущий результат, ещё не прголосовав.
Проблема в дефолтном отображении, заходя в тему. Про опцию знаю.
Опишу проще.
Сейчас я заходя в тему - вижу вопрос и варианты ответов, за которые я могу проголосовать.
Чтобы посмотреть результаты - мне надо нажать кнопку внизу и я тогда перейду к результатам.

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

Так понятно?)

Если нет - могу сделать скриншоты:)

maestrosite.ru

В Display.php, там где $context['poll']['show_results'] = и $context['allow_return_vote'] = после && добавьте восклицательные знаки. И, конечно, в языковых файлах надписи замените.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nitro

#4
 :coolsmiley:

С языковыми файлами все понятно.

Заменил, как Вы сказали, результат:


// You're allowed to view the results if:
// 1. you're just a super-nice-guy, or
// 2. anyone can see them (hide_results == 0), or
// 3. you can see them after you voted (hide_results == 1), or
// 4. you've waited long enough for the poll to expire. (whether hide_results is 1 or 2.)
$context['poll']['allow_poll_view'] = allowedTo('moderate_board') || $poll['hide_results'] == 0 || ($poll['hide_results'] == 1 && $context['poll']['has_voted']) || $context['poll']['is_expired'];
[b]$context['poll']['show_results'] = $context['poll']['allow_poll_view'] &&!(isset($_REQUEST['addvote']) || isset($_REQUEST['addVote'])) && !$poll['id_poll'] == $_REQUEST['poll'];[/b]
$context['poll']['show_view_results_button'] = $context['poll']['allow_vote'] && (!$context['poll']['allow_poll_view'] || !$context['poll']['show_results'] || !$context['poll']['has_voted']);


И ниже:
// You're allowed to return to voting options if:
// 1. you are (still) allowed to vote.
// 2. you are currently seeing the results.
$context['poll']['allow_return_vote'] = $context['poll']['allow_vote'] && !$context['poll']['show_results'];



Визуально все хорошо получилось, спасибо большое, но...
Проблемы две...
Одна -
8: Undefined index: poll
Файл: */smf/Sources/Display.php
Строка: 788 (выделил в коде тегом b =))

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

Ну и вторая которая на самом деле была и раньше, все думаю как пофиксить...
Кнопка 'poll_results' показывается даже когда я нахожусь на этой странице (раньше это была кнопка результатов, теперь наоборот, соответсна)
Ткнете носом где у меня не правильно условие ее показа прописано?

Заранее весьма признателен.

З.Ы. Маэстро, Вы не из Питера случайно?;)

maestrosite.ru

Тегом b вы выделили не настоящую строку. Вы уже пытались сделать отображение и забыли отменить ваши правки:
$context['poll']['show_results'] = $context['allow_poll_view'] && (isset($_REQUEST['viewresults']) || isset($_REQUEST['viewResults']));


ps нет, не из Питера.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nitro

#6
Цитата: maestrosite.ru от 20 сентября 2012, 11:12:38Тегом b вы выделили не настоящую строку. Вы уже пытались сделать отображение и забыли отменить ваши правки:
Код: [Выделить]
  $context['poll']['show_results'] = $context['allow_poll_view'] && (isset($_REQUEST['viewresults']) || isset($_REQUEST['viewResults']));

ps нет, не из Питера.

Почему не ту не понял, именно в этой строке он ругается же, ну да ладно.
Про какие правки Вы говорили? Если про замену viewresults на addvote то это по сути чисто моя прихоть и косметика, с этим нет проблемы.
Убрал тот самый 'poll' на который он ругается, как Вы указали я получаю ошибку:
8: Undefined index: allow_poll_view
Т.е. без него весь этот контекст не работает. Ну и отображаться стало опять как раньше - т.е. не так как хотелось.
Так я уже пробовал это решить, не получается.
По всей видимости дело в том, что, как я говорил у меня несколько опросов в теме. Реализовано модом Additional Polls.

Вопрос остается открытым:(

З.Ы. Жаль... Вчера пытались перевести на Яндекс с Киви - у них Яндекса вообще не оказалось, видимо что-то не поделили=\ Сегодня попробую доехать до банкомата Сберовского...Это уже дело принципа) А были бы в Питере, нашел бы способ отблагодарить получше.

З.З.Ы. Второй вопрос с кнопкой решил сам:) Все элементарно решилось добавлением &&!(isset($_REQUEST['addvote']) || isset($_REQUEST['addVote']))
Остается только вопрос с ошибкой :(

maestrosite.ru

Переименовали - это не критично (если тема оформления разрешена только одна). Вот это часть !$poll['id_poll'] == $_REQUEST['poll'] ошибку вызывает, но оказывается это санкционированное вмешательство. Конечно при таком раскладе условие придётся поменять $context['poll']['show_results'] = $context['poll']['allow_poll_view'] && (!(isset($_REQUEST['viewresults']) || isset($_REQUEST['viewResults'])) || ($poll['id_poll'] != $_REQUEST['poll']));
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Nitro

Цитата: maestrosite.ru от 20 сентября 2012, 15:08:15
Переименовали - это не критично (если тема оформления разрешена только одна). Вот это часть !$poll['id_poll'] == $_REQUEST['poll'] ошибку вызывает, но оказывается это санкционированное вмешательство. Конечно при таком раскладе условие придётся поменять $context['poll']['show_results'] = $context['poll']['allow_poll_view'] && (!(isset($_REQUEST['viewresults']) || isset($_REQUEST['viewResults'])) || ($poll['id_poll'] != $_REQUEST['poll']));

Вот теперь то что надо! Тема одна, своя;)
Спасибо большое!