Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
22.06.2012, 14:58 | #1 |
Senior Member
|
Наследование в шаблонах
Наверное я опять где-то что-то недочитал...
Вот такая структура многосайтовой установки (на картинке). Общие константы и настройки, а также включения шаблонов расширений, присущие всем сайтам установки - вынес на страницу "Начальный шаблон". Подстраницами этого Начального шаблона идут сайты, в шаблонах которых выставлен чекбокс "Корень сайта" и сняты отметки с "Очищать константы" и "Очищать настройки". По идее всё из основного "Начального" шаблона должно наследоваться шаблонами, расположенными уровнями ниже. Однако. Что-то наследуется, а что-то - нет. Включения шаблонов расширений - наследуются. То есть static info tables и CSS styled - включены в Начальный шаблон и нет надобности включать их в подшаблоны. Такое впечатление, что константы наследуются, только определенные самостоятельно. Константы, переопределенные через редактор констант - не наследуются. Ну хотябы определенные для freecap параметры отображения картинки в Начальном шаблоне - не применялись на сайте, пока я их явно не повторил в TS константах соответствующего шаблона. Настройки наследуются, только если они относятся к page., config. или lib. Настройки, относящиеся к плагинам - не наследуются. У меня например не удалось заставить наследовать записи в поле setup TS шаблона, относящиеся к плагинам sr fe user register и sk pagecomments. Поэтому возникло желание разобраться, как же всё таки происходит наследование в дереве TS шаблонов? ЗЫ: Storing TypoScript in the file system читал и полностью согласен, но логику данного поведения всё же хочется понять. ЗЫ-ЗЫ: ещё раз проанализировав шаблоны, появилась мысль, что не наследуется всё, что начинается с plugin. (как в константах, так и в настройках)... Последний раз редактировалось Alex Podusov; 22.06.2012 в 15:48 |
24.06.2012, 00:15 | #2 |
Senior Member
|
Не знаю зачем снимали галки очистки настроек и констант, но в описании многосайтовости значится, что иx нужно ставить... Может где-то в ядре прописано что-то. Вообще, для общиx настроек нужно создать отдельный шаблон и подключать его к каждому из сайтов (включения). Так гарантированно все будет работать. Ну а константы для отдельныx сайтов поставить не проблема...
|
24.06.2012, 13:38 | #3 |
Senior Member
|
Нужно в том случае, если не должны наследоваться никакие настройки и константы с шаблонов уровнями выше. А про "должны" насколько я помню сказано только про галку "корень сайта". Ведь один сайт может начаться где-нибудь внутри ветки страниц другого сайта, для это же и есть галки Корень сайта в шаблоне и Прервать дерево страниц в настройках страницы? А настройки и константы могут передаваться от шаблона к шаблонам подстраниц. Но, похоже, только кроме тех, что начинаются с plugin. Теперь вот хочу разобраться, почему ))
|
24.06.2012, 16:33 | #4 |
Senior Member
|
Может вы уровнем ниже подключаете шаблон из экстеншена, а там
plugin.xx > plugin.xx = USER ... Получается все что выше сбрасывается и подключается некий дефолтный набор. |
25.06.2012, 01:05 | #5 |
Senior Member
|
Понятно, что написано, "как должно работать", но по факту с многодоменными системами случаются чудеса. Это относится к ссылкам между доменами, настройке языков, хранилищ записей, ЧПУ...
По опыту, лучше сбрасывать все настройки от доменов выше. Если есть время, то можно и разобраться, почему это так, а если нет, то лучше нащупать то, что работает. Сам делаю общие настройки для сайта, плюс настройки для расширений, где нужно, дописываю константы, подключаю нужные расширения к определенным сайтам через вложенные шаблоны, ну и специфические константы переопределяю (папки-хранилища, директории и т. п.). Это все... Причем все настройки TS можно хранить или в файлах, или в таблицах, уж как кому удобно, ну и подключать в нужной точке... |
25.06.2012, 13:53 | #6 |
Senior Member
|
Я кажется понял, почему. В шаблоне, что лежит у меня вне сайтов - были прописаны константы расширений и внесены настройки расширений, однако не были сделаны включения от этих расширений. Видимо именно поэтому всё это и терялось, не передаваясь в шаблоны уровнем ниже. Как я понимаю, терялось ещё на обработке самого этого верхнего шаблона.
|
25.06.2012, 14:46 | #7 |
Senior Member
|
Ну да, тогда все ясно... Вообще таким образом сделан Интродакшн пакет...
|
29.06.2012, 15:22 | #8 |
Senior Member
|
А вот в продолжение темы, ещё вопрос возник:
если мне не нужны константы и настройки из шаблона уровнем выше - то я просто отмечаю чекбоксы "очищать" и то и другое. А как можно удалить из списка статических шаблонов какой либо шаблон из включенных в шаблоне уровнем выше? То есть, допустим у меня на странице были включены css styled content, static info tables, perfect lightbox на вложенной странице у меня находятся новости, и я создаю дополнительный шаблон с подключением статических шаблонов новостей. А ещё уровнем вложенности ниже находится страница с календарем новостей, но так как этот календарь конфликтует с перфектом (о чем правда нигде не сказано, однако выявлено опытным путем) - здесь надо убрать перфект из включений. Вот и как это можно сделать? )) |
29.06.2012, 15:52 | #9 |
Senior Member
|
Посмотреть, что вообще определяет этот шаблон уровнем выше (это же обычные файлы для констант и настроек TS), и указать в шаблоне вложенной страницы явно очистить этот шаблон...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
шаблоны: Нет выбора (наследование) | KentAVr | Общие вопросы | 5 | 20.03.2011 00:42 |
Многоязычность в 2 шаблонах | hangmoon | Общие вопросы | 2 | 30.10.2008 12:15 |
Наследование шаблонов TS Setup | filippoff | Общие вопросы | 0 | 18.01.2007 20:05 |
наследование \"чужих\" переменных в формах | Семён Выскубов | Общие вопросы | 1 | 12.11.2005 13:39 |