Просмотр полной версии : разный контент для разных типов страниц
вопрос.
у меня есть дерево сайта, многоязычное, т.е. каждая страница имеет 4 языка, и для каждой страницы есть разный контент.
можно ли зделать чтото на подобии языков в тайпо, но не языки :)
т.е. мне нужно чтобы каждая страница имела 4 языка + каждая локализованая страница имела разный контент в зависимости от типа.
возможно такуя структуру можно организовать другим путем?
спасибо.
разместите контент, скажем, в две колонки (или сколько надо). и показывайте нужную в зависимости, например от Get-параметров
разместите контент, скажем, в две колонки (или сколько надо). и показывайте нужную в зависимости, например от Get-параметров
Спасибо за ответ, но у меня проблема, т.е. TemplaVoila
Возможно ли это зделать на темплавоиле?
Можни ли поставить такой кондышин в TS на нее?
Pavel Antonov
22.10.2006, 01:01
можно сделать один DS и множество TO (дочерних).
В BE будут отображаться все поля для всех типов страниц, а в FE отображать нужный TO с помощью параметра childTemplate, который показывает только нуэные поля/столбцы TemplaVoila в зависимости от типа страницы.
Кривовато, но работать будет
можно сделать один DS и множество TO (дочерних).
В BE будут отображаться все поля для всех типов страниц, а в FE отображать нужный TO с помощью параметра childTemplate, который показывает только нуэные поля/столбцы TemplaVoila в зависимости от типа страницы.
Кривовато, но работать будет
Хм, идея заманчевая.
Но правильно ли я понял?
Зделать для каждого типа страницысвой ТО, зоны на которых бутут отвечать разным полям в DS, но віводить приблизительно тоже, но с разным контентом?
Потом менять в TypoScript в зависимости от параметра type childTemplate для страницы?
Но вот проблема, как менять этот childTemplate в TypoScript
И вторая проблема, мне нужно, чтобы был тип страницы по умолчанию, т.е. основной тип страницы и если выбран другой тип страници, но для этого типа нет контента выводился контент с основного типа.
спасибо
Первая часть задачки решается легко, примерно так:
page = PAGE
page.10 = USER
page.10.userFunc = tx_templavoila->main_page
page.10.childTemplate = tmpl_1
page.typeNum = 0
page1 < page
page1.typeNum = 1
page.10.childTemplate = tmpl_2
А вот со второй, то есть с контентом по умолчанию, немного сложнее...
Первая часть задачки решается легко, примерно так:
page = PAGE
page.10 = USER
page.10.userFunc = tx_templavoila->main_page
page.10.childTemplate = tmpl_1
page.typeNum = 0
page1 < page
page1.typeNum = 1
page.10.childTemplate = tmpl_2
А вот со второй, то есть с контентом по умолчанию, немного сложнее...
спасибо
Но я чувствую что мне не хватает теоретических знаний,
вопрос:
что мне дают строки:
page1 < page
page1.typeNum = 1
?
Второе, где задаются имена: tmpl_1,tmpl_2 ?
А с контентом по умолчанию я хочу решить проблему по другому немножко. Когда буду вставлять контент и если он должен быть контентом по умолчанию, то я буду вставлять ссилки на него на всех типах страниц.
Pavel Antonov
23.10.2006, 01:30
спасибо
Но я чувствую что мне не хватает теоретических знаний,
вопрос:
что мне дают строки:
page1 < page
page1.typeNum = 1 ?
Это как раз и есть вывод разных страниц в зависимости от типа (то о чем Вы спрашивали, но видимо сами не поняли). Другими словами от параметра &type=... в URL
Второе, где задаются имена: tmpl_1,tmpl_2 ?
При создании шаблона (TO) задается, что он яаляется дочерним и назначается его имя, по которому потом можно отбирать шаблоны задав имя в childTemplate.
2 Pavel Antonov
спасибо, буду пробовать
поправте меня пожалуйста если я ошибаюсь.
1) childTemplate фигурирует в классе плагина темплавоиля только тут
if ($this->conf['childTemplate']){
$renderType = $this->conf['childTemplate'];
} else { // Default:
$renderType = t3lib_div::GPvar('print') ? 'print' : '';
}
потом этот $renderType будет соответсвовать полю renderType в таблице tx_templavoila_tmplobj, а значения для єтого поля берутся из ТСA,
'rendertype' => Array (
'exclude' => 1,
'label' => 'LLL:EXT:templavoila/locallang_db.xml:tx_templavoila_tmplobj.rendertype ',
'config' => Array (
'type' => 'select',
'items' => Array (Array('LLL:EXT:templavoila/locallang_db.xml:tx_templavoila_tmplobj.rendertype .I.0', ''),
Array('LLL:EXT:templavoila/locallang_db.xml:tx_templavoila_tmplobj.rendertype .I.1', 'print'),
),
)
),
Значит мне нужно изменить TCA для templavoila чтобы использовать разные childTemplate правильно?
Значения этого поля берутся из таблицы tx_templavoila_tmplobj.
Ничего править не нужно, нужно создать запись с нужными полями.
Значения этого поля берутся из таблицы tx_templavoila_tmplobj.
Ничего править не нужно, нужно создать запись с нужными полями.
хм, а как же мне их создать если с бекенда такой настройки нет? просто поменять вручную в базе?
И еще, как быть с принт версией? там же явно написано, или брать с childTemplate или с GP[print]
а если я захочу и то и то?
Pavel Antonov
23.10.2006, 14:04
Значит мне нужно изменить TCA для templavoila чтобы использовать разные childTemplate правильно?
Да именно так. НО, ничего патчить и менять не надо в исходниках Typo3! Для этого есть TSConfig.
Посмотрите документацию по TCEFORM (http://typo3.org/documentation/document-library/references/doc_core_tsconfig/current/view/1/3/),
о том как добавить знаяения в поля-списки (addItems).
хм, а возможно зделать таким путем:
для каждого контентного рекорда добавить 2 поля, список доступных типов страниц и из списка выбрать нужный тип?
Мне вот интересно где то потом проверять что показывать а что нет?
Спасибо.
Pavel Antonov
16.12.2006, 15:30
Честно говоря не понял что и зачем....Смысла происходящего не понимаю.
Поля добавить можно через расширение, проверять можно в TS.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot