Мультиязычный опрос 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