Content Slide для контента с конкретной страницы
Я уже рассказывал об эффекте Content Slide, когда определенный контент наследуется со страницы родителя, например, сайдбар, футер главной страницы на ее подстраницы. Но иногда бывают небольшие исключения из правил или можно сказать нюансы. С одним из них я сегодня столкнулся и, признаться, очень долго искал причину того, что установленный и правильно настроенный экстеншен KB TV Content Slide не давал абсолютно никаких результатов. И вот почему…
Некоторые разработчики при создании нового сайта на TYPO3 делаю заглавную страницу ссылкой на первую подстраницу дерева сайта. Это позволяет достаточно легко добавлять «Главную» страницу в любое меню сайта стандартными методами Typoscript (см. картинку слева).
Вообще, нужно сказать, ситуация с этим неоднозначная. Я когда-то читал, что это может создавать некоторый нехороший эффект с точки зрения seo, поскольку фактически главная страница сайта является редиректом. Не знаю насколько это правильно / достоверно, но все же стараюсь избегать подобных кривотолков и корневую страницу дерева сайта в TYPO3 делаю главной. Тем не менее, иногда приходится работать уже с готовыми проектами (кстати, базовый пакет по умолчанию тоже делает корневую в виде редиректа).
Собственно, после этого понятно из-за чего возникала проблема с неработающим экстеншеном KB TV Content Slide. Делал все по привычке и не обратил внимание, что в качестве главной у нас не корневая страница, поэтому наследовать и нечего. Для решения этой задачи имеется специальная настройка. Итак, в процессе установки модуля KB TV Content Slide делаем все то же самое, что я рассказывал в прошлый раз, за исключением шага номер 5, когда вместо стандартного кода структуры Data Structure шаблона TemplaVoila для подстраницы:
10 = RECORDS 10.source.current=1 10.tables = tt_content |
Используем:
10= RECORDS 10.source.postUserFunc = tx_kbtvcontslide_pi1->main 10.source.postUserFunc.field = field_content 10.source.postUserFunc.table = tt_content 10.source.postUserFunc.overridePage = 123 10.source.postUserFunc.collect = 1 10.tables = tt_content |
Здесь параметр overridePage = 123 указывает ID страницы с которой берется тот или иной контента для наследования. Опция collect = 1 говорит плагину, что наследования должно происходить на в зависимости от уровня вложенности страниц.
Сохраняем Data Structure шаблона и проверяем как все работает. Ошибок возникнуть не должно. Вообще советую почитывать документацию по экстеншенам — как правило, там есть ответы на все нужные вопросы по установке и использованию модулей.