25.05.11

Content Slide для контента с конкретной страницы

хак 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 шаблона и проверяем как все работает. Ошибок возникнуть не должно. Вообще советую почитывать документацию по экстеншенам — как правило, там есть ответы на все нужные вопросы по установке и использованию модулей.

Понравился пост? Подпишись на TYPO3 блог typo3 blog RSSRSS, RSS typo3 blogEmail или typo3 twittertwitter!

Поделись статьей с друзьями:

TemplaVoila Экстеншены

комментария 2 к статье “Content Slide для контента с конкретной страницы”

  1. Виктор   02.03.12

    Спасибо за пост! Подскажите, а как спрятать поле футер в админке на других страницах? Т.е. данные наследуются с одной страницы, но поле для заполнения футера все равно присутствует в амдинке на всех страницах, подозреваю что это можно как-то реализовать с помощью tsconfig, но решения не нашел. Спасибо.

  2. Tod   02.03.12

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

Оставить комментарий к статье Content Slide для контента с конкретной страницы

Полезные блоги

  • для блоггеров и вебмастеров