Просмотр полной версии : Содержимое правой колонки в зависимости от раздела сайта
Alexey Kuzminich
21.08.2007, 15:33
Есть сайт, на котором правая колонка может иметь 3-4 варианта, в зависимости от раздела сайта. В одном разделе это одна фотография, один номер телефона, в другом - другая фотография и другой номер. Соответственно, напрашивается решение вынести правую колонку в отдельную область и подключать нужную в зависимости от раздела. Вопрос - а как это сделать?
В Битриксе я бы сделал так - вынес бы эти 3-4 области в разные файлы, в свойствах раздела указал бы нужную область, и подключал бы в шаблоне нужную. Но это не Битрикс :(
Пожалуйста, намекните, как здесь сделать такое. Причем чем подробнее, тем лучше ;) Есть ли тут свойства у страниц (разделов), куда выносить (во что оформлять) эти области? Не знаю, куда копать.
нужно в настройках шаблона SETUP использовать конструкцию
[PIDinRootline = 36]
...
[PIDinRootline = 35]
...
[PIDinRootline = 34]
...
[global]
Номера - id страниц. Вопрос в том, что туда записывать. Лично я вижу 2 варианта.
1. В шаблоне сайта определить область через TV под некий lib.left_block, куда посредством TypoScript вносить все что угодно - картинки, телефоны и т.п. Причем можно вынести телефоны и картинки в константы (например переменная телефона left_block_text1), а в SETUP прописать на них ссылку
lib.left_block = COA
lib.left_block {
10 = TEXT
10.value = {$left_block_text1}
}
2. Сдлеать 2 шаблонв - один для "главной" страницы раздела, где мапить область через TV типа Content Element, а во втором шаблоне потом с использованием условий (код выше) и конструкции
lib.myobject_stuff = RECORDS
lib.myobject_stuff.source = 1
lib.myobject_stuff.tables = tt_content
растиражировать их на все страницы раздела.. либо использовать content_slide.
Alexey Kuzminich
22.08.2007, 07:54
Сделал по первому варианту, благо с тем, как создать новый элемент в DS и замаппить его я разобрался. Сначала определил содержимое колонки по умолчанию, потом пошли conditions. Спасибо большое! Единственное, что к этому нет доступа "обычным" пользователям - получается все жестко зашито в шаблоне, и если они сделают новый раздел, то картинку-телефон поменять не смогут - будут использоваться те, что по-умолчания.
lib.rightColumn = COA
lib.rightColumn.10 = TEXT
lib.rightColumn.10 {
value (
<h3>Ihr Ansprechpartner</h3>
<div>Jürgen Bey</div>
<div><img src="/fileadmin/templates/images/JBEx.jpg" alt="JBEx" width="69" height="87"></div>
<br /><br />
+49.40.3980330
)
}
[PIDinRootline = 72]
lib.rightColumn.10 {
value (
<h3>Ihr Ansprechpartner</h3>
<div>Leif Bräuer</div>
<div><img src="/fileadmin/templates/images/LBR.jpg" alt="Leif" width="69" height="87"></div>
<br /><br />
+49.40.398033-33
)
}
[GLOBAL]
Ну условия можно выносить в константы. В сэтапе оставить только
lib.rightColumn.10.value = {$some_html}
И тогда объяснить человеку, есть конструкция с условиями. Добавили раздел - дописали сюда ветку с условием и кусок ХТМЛ:)
Не должен клиент копаться в TS, не должен. Лучше в свойствах страницы переопределить какое-либо текстовое поле (или новое создать с помощью спец. экстеншена) под RTE. И брать контент оттуда. Либо, что лучше, использовать kb_tv_cont_slide.
Alexey Kuzminich
31.08.2007, 11:30
Либо, что лучше, использовать kb_tv_cont_slide.
Во, то что надо! Получилось вообще круто - спасибо!
Правую колонку сделал отдельным FCE с необходимыми полями - фото, телефон и т.д. Затем завел отдельный SysFolder и насоздавал там элементов типа только что созданного FCE. А затем в свойствах корневых каталогов назначил правой колонке нужные записи. Вуаля!
Alexey Kuzminich
31.08.2007, 20:25
Во, то что надо! Получилось вообще круто - спасибо!
Только похоже что это расширение не работает под php5 :-( Кто-нибудь пробовал его с php5?
Alexey Kuzminich
01.09.2007, 04:43
Только похоже что это расширение не работает под php5
Блин, извиняюсь, все работает - напортачил c TS
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot