TYPO3包括CSS / JS,具体取决于页面UID

时间:2020-10-02 10:40:45

标签: typo3 typoscript typo3-10.x

我正在尝试根据页面添加一些外部资源(CSS / JS),以更好地利用资源。 这是我的实际情况:

page = PAGE
page.10 = FLUIDTEMPLATE
page {
    typeNum = 0
    //### GLOBAL CONFIG
    config {
        //some global config
    }
    //### CSS INCLUSION
    includeCSS {
        fontAwesome = fileadmin/assets/lib/fontawesome-5.14.0/css/all.css
        bootstrapCSS = fileadmin/assets/lib/bootstrap-4.5.2-dist/css/bootstrap.min.css
        mainCSS = fileadmin/assets/css/main.css 
    }
    //### HEADER JS INCLUSION
    includeJS {
        jquery = fileadmin/assets/lib/jquery-3.5.1.min.js
    }
    //### FOOTER JS INCLUSION
    includeJSFooter {
        bootstrapJS = fileadmin/assets/lib/bootstrap-4.5.2-dist/js/bootstrap.min.js
        siteMain = fileadmin/assets/js/main.js
    }
    //### TEMPLATING
    10 = FLUIDTEMPLATE
    10 {
        templateName = LayoutTemplate
        templateRootPaths.1 = fileadmin/Templates
        layoutRootPath  = fileadmin/Templates/Layouts
        variables{
            contentNormal < styles.content.get
            contentRight < styles.content.get
            contentRight.select.where = colPos = 2
        }
    }
}

我尝试了这两种解决方案:

此代码修改了先前的代码:

//### CSS INCLUSION
    includeCSS {
        fontAwesome = fileadmin/assets/lib/fontawesome-5.14.0/css/all.css
        bootstrapCSS = fileadmin/assets/lib/bootstrap-4.5.2-dist/css/bootstrap.min.css
        mainCSS = fileadmin/assets/css/main.css
        //###ADDED FOR NEW INCLUSION###
        [page ["uid"] == 1]
        additionalCSS = fileadmin/assets/css/additional.css
        [END]
        //#############################
    }

上一个页面对象声明之后的其他添加代码:

1。)

[page ["uid"] == 1]
page.10.includeCSS.additionalCSS = fileadmin/assets/css/additional.css
......
[END]

2。)

[page ["uid"] == 1]
page.10.includeCSS{
    additionalCSS = fileadmin/assets/css/additional.css
    .......
}
[END]

他们中的任何人都没有工作,我也不知道为什么。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

第一个不起作用,因为TypoScript中的条件仅在最高级别上起作用。

所以你不能做

page.includeCSS {
  main = ...
  [page["uid"] == 1]
    additional = ...
  [end]
}

您必须这样做:

page.includeCSS {
  main = ...
}
[page["uid"] == 1]
  page.includeCSS.additional = ...
[end]

在第二个示例中,当您应该使用page.10.includeCSS(不带page.includeCSS)时,您正在使用10

我也不确定条件是否适用于page["uid"]之间的空格。如果不起作用,请将其更改为[page["uid"] == 1]

答案 1 :(得分:0)

打字条件昂贵,页面ID可能会更改:

请查看EXT:news IncludeFileViewhelper,以获得更明智的方法-如果正在运行TYPO3 10,则可以使用资产收集器:https://usetypo3.com/asset-collector.html