Простая викторинка

Главные вкладки

Аватар пользователя WillWe WillWe 30 марта 2019 в 18:53

Чот не могу придумать, как реализовать:
Есть материалы (картинка + заголовок).
Как бы сделать что-то в виде теста: выводится 1 картинка и 4 заголовка (рандомных, один из которых этой картинке соответствует). И если юзер щелкнул правильный заголовок, то там пишем типа ок! Если нет, то нет.
Я думал через вьюс, что-то там мудрил мудрил, пытался...выводил 4 заголовка, а в шапке, например картинку, а дальше всё застопорилось! Думал сделать представление внутри представления (но как тогда между ними связь организовать....) короче нихрена не придумал!
Мож у кого есть идеи, как эту штуку сделать?
Нарыл большой модуль quiz - типа для организации викторин... Но это всё же не то что мне нужно...

Комментарии

Аватар пользователя WillWe WillWe 31 марта 2019 в 8:18

Интересные модули.
Век как говорится живи...
Но вот не совсем они подходят... то есть смысл такой: есть 1000 карточек - картинка/слово.
Для закрепления материала берем любые случайные из них 4 слова и одну случайную из этих 4-х картинку.
И потом уже проверяем на соответствие...
Но вот проблема... 4 карточки выбрать с помощью вьюс легко. А как потом из этой выборки вьюс сделать еще одну.. с одной случайной картинкой....
Можно расположить поле с картинкой в шапке вьюса, но блин, оно тогда будет не случайным, а соответствовать первому слову из четырёх...

Аватар пользователя sas@drupal.org sas@drupal.org 31 марта 2019 в 9:16

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

Аватар пользователя WillWe WillWe 31 марта 2019 в 11:20

С фильтрами всё не так просто...
Нужно ведь чтобы на одной странице отображались и картинки и заголовки к ним (можно один из заголовков) - в рандомном порядке. А как сделать это в рамках одного вьюса? Если вьюсов 2, то тогда случайная выборка будет разная для каждого из них.

Аватар пользователя WillWe WillWe 31 марта 2019 в 11:00

Я квиз мельком глянул только. Но что меня в нём не устроило - нужно делать материалы-вопросы, сопоставлять их. Он не может взять из 1000 уже готовых материалов картинку (4 шт) и ниже отобразить заголовки к этим картинкам, чтобы пользователь их сопоставлял.
Ему нужно задавать каждый "вопрос", комплектуя его 4 (или сколько там хочется) картинками с заголовками. И они будут постоянно в таком виде, их можно перемешать только внутри самого вопроса, а что там в 4-х то перемешивать?
А нужно чтобы выводились рандомно 4 шт из всего количества. А добавлять новые с помощью материала вида заголовок/картинка - и чтоб он сразу "включался" в этот квиз.

Аватар пользователя WillWe WillWe 4 апреля 2019 в 17:26

Я всё-таки переформулирую вопрос, а то чот меня аж бесит, что я не могу придумать путь решения. И я не верю, что это невозможно сделать без свистоплясок:
Есть 1000 материалов вида заголовок/картинка.
Есть view которая выводит случайно 4 заголовка из них.
Задача: Вывести на этой же странице 1 случайную картинку из этих 4х материалов, заголовки которых выведены выше.

Аватар пользователя ivnish ivnish 4 апреля 2019 в 17:56

Ну дак добавьте еще одно поле "изображение" или как оно у вас там. Views будет брать его как раз из тех же нод откуда и заголовок

Аватар пользователя WillWe WillWe 4 апреля 2019 в 18:00

Так их же будет тоже 4!!! При том расположены они будут в соответствии с заголовками! А мне нужно одно случайное! Ну или пусть будут 4, но расположены тогда случайно, а не каждая под своим заголовком

Аватар пользователя ivnish ivnish 4 апреля 2019 в 18:20

Я сейчас с ходу не смогу ответить. Создайте шаблон для вашего представления именно где выводятся поля. И "поиграйтесь" с этими полями.

В крайнем случае, можно в препроцессе получать ссылку на рандомное изображение и передавать её в шаблон.

Аватар пользователя WillWe WillWe 4 апреля 2019 в 18:14

Вроде как есть ощущение, что это можно сделать с помощью контекстных фильтров и связей второй вьюхи. Но что там в них указывать то!? Я то ли не до конца этот инструмент понимаю, то ли что. Я всегда использовал контекстные фильтры вместе с аргументом из пути (%). А вот в гугле пишут, что в качестве контекста можно каким-то образом указывать просто страницу, на которой типа находишься, безо всяких %.
Так может быть можно создать вьюху, в качестве контекста которой передать (как?) объекты изначальной вьюхи (там где 4 заголовка)? Я пробовал методом тыка - ничего не получается! То есть когда типа находишься на странице представления с 4мя заголовками, они передаются контекстом второму представлению, которое выбирает случайно одно из них и отображает эту картинку.... С помощью связи по полю картинка (?)
Как то блин в теории вроде что-то сходится, но на практике это не работает, или я неправильно указыва настройки вьюс....