Другой способ сделать это, грязный, но без редактирования шаблона расширения:
lib.additionalStyles = HMENU
lib.additionalStyles {
special = rootline
special.range = 0|-1
includeNotInMenu = 1
1 = TMENU
1.NO {
doNotShowLink = 1
before.cObject = FILES
before.cObject {
references {
table = pages
uid.data = field:uid
fieldName = media
}
renderObj = TEXT
renderObj {
if.value = css
if.equals.data = file:current:extension
dataWrap = <link rel="stylesheet" type="text/css" href="/{file:current:publicUrl}" media="all">
}
}
}
}
Здесь используется HMENU, потому что объект FILES не может обеспечить такое же наследование, как включение с помощью метода шаблона. Но если вам не нужно наследование, вы можете сделать это:
lib.additionalStyles = FILES
lib.additionalStyles {
references {
# To use media from current page only
table = pages
uid.data = field:uid
fieldName = media
# To add some inheritance if media for current page wasn't set
data = levelmedia: level[, slide]
# depending on level value you can take media from root page,
# from current page, from any level upper in tree, or first
# existing media item starting from current page to root.
# So you can't collect media from all parent pages, only
# from current or one of the parents.
}
renderObj = TEXT
renderObj {
if.value = css
if.equals.data = file:current:extension
dataWrap = <link rel="stylesheet" type="text/css" href="/{file:current:publicUrl}" media="all">
}
}
Затем импортируйте объект в headerData:
page.headerData.10 < lib.additionalStyles
или (если вы включаете JS)
page.footerData.10 < lib.additionalJS
Теперь вы можете просто создать отношения к нужным файлам на вкладке «Ресурсы» в настройках страницы. Не уверен, что все версии Typo3 разрешают css и js для отношений, но 6.2-8.7 делают)
25.06.2017
includeCSS
должен быть в нижнем регистре i. Я обновил ответ 01.07.2016