Inner poll для Drupal 7. Прикрепляйте опросы к любому документу ;)

Прислано: Irbis

сб, 21/01/2012 - 14:53

День добрый.

Портировал Inner poll для Drupal 7, для моего любимого www.drupal.ru. Прикрепляйте опросы к любому документу ;).

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

Ищу тех кто поможет разместить модуль на drupal.org.

Особенности модуля

  1. Все действия пользователей сохраняются без перезагрузки страницы (хмм, возможно, пора уже перестать считать AJAX фишкой);
  2. автор опроса может разрешить (или не разрешить) пользователям отменять свои голоса голоса;
  3. автор опроса может открывать/закрывать опрос, а так же устанавливать дату автоматического закрытия опроса;
  4. автор опроса может разрешить/запретить множественный выбор;
  5. автор опроса, если он не является модератором, может править вопрос опроса только до тех пор, пока в опросе нет ни одного голоса;
  6. автор опроса, если он не является модератором, может править ответ на вопрос только до тех пор, пока за этот ответ нет ни одного голоса;
  7. опрос может содержать до 999 вариантов ответа;
  8. пользователи не могут просматривать результаты опроса до тех пор пока не проголосуют, для неопределившихся с решением есть кнопка "Воздержаться", после нажатия которой будут показаны результаты, но при этом пользователь потеряет возможность голосовать в этом опросе;
  9. администратор сайта может раздавать права на голосование, создание опросов, редактирование опросов, редактирование опросов даже в случае если в них уже есть голоса;

Пояснение к пунктам 5 и 6. Они нужны для того, чтобы авторы не вносили кардинальных изменений в опрос тогда, когда другие юзеры уже отдали в них свои голоса. Например, был опрос "Любите ли вы клубнику", на который получены ответы "Да" — 95%, "Нет" — 5%, а затем ушлый автор сменил вопрос на "Смотрите ли вы порнографию".

Примечания

  1. Не стал прикручивать кэш, так как в кэш можно класть всю страницу сторонними средствами при необходимости (обработка AJAX живёт на своих URL).
  2. Не реализован файл тестов, если кто напишет, буду благодарен.
  3. Отсутствует шаблон вывода контента так как количество выводимых данных мало и многое можно темизировать с помощью *.css.

Загрузка

Ссылка: Inner poll для Drupal 7.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано RxB в сб, 21/01/2012 - 14:59.

Главный косяк версии для шестёрки пофикшен?
Когда анонимы могут голосовать, когда им голосовать нельзя?


Опубликовано Irbis в сб, 21/01/2012 - 15:44.

"RxB" написал(а):

Главный косяк версии для шестёрки пофикшен?
Когда анонимы могут голосовать, когда им голосовать нельзя?

У меня на D7 всё работает корректно, если у Вас на D7 удастся воспроизвести такую ситуацию, то просто отпишите мне сюда и я поправлю.


Опубликовано Айдар в сб, 21/01/2012 - 17:14.

Спасибо! В закладки.


Опубликовано RxB в сб, 21/01/2012 - 18:23.

Ага, судя по коду бага есть.
Функция inner_poll_vote_js(), туда треба добавить проверку user_access('vote on inner polls') для анонима или, что наверно будет более правильным, переписать hook_menu() вот так:

  $items['inner_poll/vote_js'] = array(
    'title' => 'Inner poll vote js',
    'page callback' => 'inner_poll_vote_js',
    'access arguments' => array('vote on inner polls'),
    'type' => MENU_CALLBACK,
  );

Иначе даже при закрытой возможности анонимного голосования - голосование анонимом посылом специальных запросов возможно.


Опубликовано Irbis в сб, 21/01/2012 - 20:06.

"RxB" написал(а):

Ага, судя по коду бага есть.

Упс, проглядел. Поправил, обновил архивы. Спасибо.


Опубликовано mavr в вс, 22/01/2012 - 14:44.

Поставил для пробы! Вылезла куча ошибок:
1. После включения постоянно выдает (кеш чистил, тему менял)

2. Когда создал опрос, и пробую проголосовать:

Пишет "Вы воздержались", хотя я голосовал.


Опубликовано Irbis в вс, 22/01/2012 - 19:34.

"mavr" написал(а):

Поставил для пробы! Вылезла куча ошибок

Извиняюсь, не тот билд разместил после добавления проверки: user_access('vote on inner polls') для анонима, выходные блин :(.

Перезалил, потестил, проверил - всё работает. Прошу попробовать :).


Опубликовано ingumsky@drupal.org в вс, 22/01/2012 - 20:40.

Спасибо, надо будет попробовать.


Опубликовано mavr в вс, 22/01/2012 - 21:37.

Значит мне не повезло)))
Теперь все как должно!
Еще пожелание:
Заменить фиксированную ширину, та что у настройках "Ширина блока с опросом" на 100%, чтоб было красиво на разных темах с разной шириной блока выводить! Ну и ширину полос гистограммы тоже вычислять у процентах! Как у стандартного модуля "Poll"
Еще как по мне то текст К материалу прикреплен опрос на тему «Чи подобаєтся вам це опитування?»: нужно чтоб выглядел как К материалу прикреплен опрос на тему: «Чи подобаєтся вам це опитування?»


Опубликовано andypost@drupal.org в вс, 22/01/2012 - 22:13.

Думаю, что стоит завести проект, так как у меня в загашниках есть версия под 5ку :)
Заодно может кто-нить начнет пользоваться модулем да и багрепорты с патчами проще принимать.

PS: inner poll sandbox


Опубликовано Irbis в вс, 22/01/2012 - 22:24.

"mavr" написал(а):

Еще пожелание

Спасибо за пожелания, постараемся в будущем сделать :).

"andypost@drupal.org" написал(а):

стоит завести проект

Андрей, спасибо за помощь ;).


Опубликовано andypost@drupal.org в вс, 22/01/2012 - 23:07.

Немного почистил phpdoc коменты и конвертнул окончания строк из винды

Взять нужную ветку можно из git


Опубликовано GarikHG в вт, 14/02/2012 - 21:51.

Оценка материалов Друзья помогите пожалуйста срочно


Опубликовано UksusoFF в вт, 21/02/2012 - 21:11.

andypost@drupal.org, вы не подскажите как сделать мульти выбор, но ограничить его 3 значениями, и в то же время сделать обязательными выбор трех значений?

И как бы еще повесить голосование в блок?


Новое на сайте