О том, как я борюсь с друпалом )
Вот, сегодня несколько часов ломала голову, лазила по яндексу еще с вечера и потом утром. А всего-то - надо было сделать вариант просмотров одного материала: постранично и целиком.
Ничего, конечно, я не нашла - все подсказки либо мне уже слишком банальны, либо совсем не о том и уже слишком сложны. Нащупала сама ^_^ Модуль Views воистину глубок и в нем только ползать и ползать, разбираться и разбираться. Теперь, когда знаешь ответ, сама проблема кажется ерундой
Но вот запишу на память.
читать дальшеЗадача:
- страница драмы выводится панелью (модуль panels); кроме прочего там - плеер с треками и рядом - текст скрипта. Текст я разбила постранично в соответствии с треками (ну, типа, слушаешь 1-й трек, читаешь страницу, потом листаешь на следующую), страницы переключаются слайдером. Фишку эту я задумала сто лет тому назад. Но, понятно, кто-то может фишкой не проникнуться и хотеть просто прочитать текст - для этого я также хотела сделать ссылку на "полный вариант текста".
В чем была загвоздка у меня. Понятно, что и там, и там все должно выводиться через views. Но проблема в том, что views должен как-то узнать, к какой именно драме он цепляется (то есть должен быть номер ноды в адресе страницы). Ну, и как-то надо создать эту вторую страницу. Обычно же представления views или панели цепляются к уже существующим страницам. Или можно создать новую страницу views - с фиксированным адресом (как во всех примерах и учебных курсах по друпалу). Вот я сидела и печалилась в тоске и мысли о том, что сейчас придется ручками прописывать все цать страниц и их дубли.
Сделалось в итоге так:
- делаем представление во views типа "Страница"
- адрес страницы прописываем типа node/%/test , где вместо node может быть любой нужный нам путь, % - как раз подменяет собой номер ноды, а test - любое название, какое хотим дать итоговой табличке.
Теперь при попытке зайти на страницу типа "адрес-сайта/node/10/test" - получаем вместо "Страница не найдена" нужное нам представление для ноды 10. Но это же еще не все - нам надо куда-то вставить ссылку на это представление, и ссылка должна динамически меняться. Я делала так:
- делаем представление во views типа "Вложение" (это не обязательно, но я цепляла ссылку к слайдовому просмотру). Главное, что у представления должен быть контекстный фильтр, который привязывает его к определенной ноде
- в "показать" я сделала "Содержимое:NID" (номер ноды содержимого), и в поле "Перезаписать результат" указала сперва текст "Полный текст", а далее - ссылку вида node/[NID]/test.
Вуаля! Где надо появилась динамическая ссылка на нашу динамическую страницу. Ничего ручками прописывать не нужно, автоматически на каждой странице "драмы" появится своя ссылка которая ведет на страницу со своим представлением полной версии текста.
Вот так ^___^
Да, иногда поиски решения, кажется, занимают больше времени, чем я бы делала то же самое ручками. Но зато его можно будет применить потом к другим частям сайта. И вообще я очень была рада, когда все получилось )