Мультиязычный опрос xPoller2
Всем привет, хочу показать вам мою первую переделку чужого компонента. Исходный компонент называется xPoller, разработчиком является Илья Уткин. Большое спасибо ему за компонент, разбирал устройство компонентов Modx и до сих пор разбираю на этом компоненте. Еще выражаю благодарность Василию Наумкину за курс по разработке компонентов на Modx Revo.
Что я переделал?
1. Сделал возможность голосования всеми пользователям, не только авторизованным.
2. Теперь если не указывать параметр &id, то выводится последний добавленный опрос. Простой вызов: [[!xPoller2]]
3. Поддержка мультиязычности. Для этого использовал лексиконы. Добавлена 3-я вкладка «Лексиконы», в которой можно редактировать все эти лексиконы. (Подсмотрено в компоненте UserProfile2) Для каждого вопроса и варианта ответов создаются соответствующие лексиконы в новом топике «translations», который редактируется в этой новой вкладке. При удалении вопроса удаляются и лексиконы этого вопроса.
Добавлена еще одна настройка xpoller2_culturekeys_list, в которой через запятую я указывал culturekeys языков.
Ссылка на компонент
Что я переделал?
1. Сделал возможность голосования всеми пользователям, не только авторизованным.
2. Теперь если не указывать параметр &id, то выводится последний добавленный опрос. Простой вызов: [[!xPoller2]]
3. Поддержка мультиязычности. Для этого использовал лексиконы. Добавлена 3-я вкладка «Лексиконы», в которой можно редактировать все эти лексиконы. (Подсмотрено в компоненте UserProfile2) Для каждого вопроса и варианта ответов создаются соответствующие лексиконы в новом топике «translations», который редактируется в этой новой вкладке. При удалении вопроса удаляются и лексиконы этого вопроса.
Добавлена еще одна настройка xpoller2_culturekeys_list, в которой через запятую я указывал culturekeys языков.
Ссылка на компонент
Комментарии: 68
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Это как если кто-то выпустит форк miniShop2 под названием miniShop3 — я бы офигел.
Надеюсь он увидит этот пост и откоментит.
2. Дело в том, что там записывается IP в базу. Это сделано из соображений безопасности, чтобы защититься от накруток. Я тестирования я использую браузер «Тор», он меняет IP.
Тут временное решение: https://modx.pro/help/6356/
к примеру, есть страница некоего заведения — на ней опрос, как вам в этом заведении понравилось.
на другой странице — точно такой же про другое заведение.
понятно, что можно создать бесконечное множество опросов и вручную их крепить к заведениям, но… )
1. Как его устанавливать? Ставил отсюда: modstore.pro/packages/other/xpoller2
Но что оттуда, что с гитхаба по ссылке выше github.com/rjkz/xPoller2 файл оформления main.css пустой. Самому дописывать? Если да, то вопрос отпадает, но что тогда с последующими обновлениями?
2. Вопрос с множественным выбором. Был бы лично очень признателен за реализацию.
На днях обновлю. Сделал опросы с множественным вариантом ответов и чтобы аякс отправлялся в файл а не в сниппет.
Не проверял в сафари только.
Вообще к капче отношусь очень скептически. С одной стороны при должном подходе она не поможет, с другой стороны она очень раздражает. На хабре проскакивали интересные идеи, которые можно было бы использовать вместо надоедливой капчи. При желании это дело можно откопать.
в браузере ссылка имеет следующий вид: ?a=8&action=questions&test=1
В общем в файле core/components/xpoller2/controllersquestions.class.php переименовал XpollerQuestionsManagerController в Xpoller2QuestionsManagerController в двух местах и вроде всё заработало.
Заранее спасибо.
Если кто найдет время и покапает как исправить, буду рад если поделитесь решением.
на:
Или более простое, убрать дробление на сотые процентов, просто убрать двойку, т.е. заменить на:
подскажите, как можно вывести результаты всех опросов «xPoller2» через pdoResource, например
1. Копируете снипет xPoller2 и переименовываете.
2. Находим строчку 112:
3. Коментируем оба условия и вписываем сложение голосов.
Очень хороший компонент, но никак не могу отключить привязку к IP, так как необходимо привязать к своему методу проверки. allowGuest=1 не помогает.
http://picplus.ru/img/1806/11/34d0d93d.png
Fatal error: Class 'Xpoller2QuestionsManagerController' not found in .../core/model/modx/modmanagercontroller.class.php on line 943
Возникает после создания тестирования и попытки открыть пункт с вопросами.
MODX Revolution 2.6.3-pl