Typo3:从另一个插件呈现内容元素
Typo3: Rendering content elements from another plugin
我创建了一个页面并在后端视图中向该页面添加了一个模板,我已将此设置添加到我的模板中:
# Default PAGE object:
config.contentObjectExceptionHandler = 0
page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
templateName = System-Template
templateRootPaths.10 = EXT:tjms/Resources/Private/Templates/Page/
variables {
contentNormal < styles.content.get
}
}
现在您可以看到此页面的模板在我的插件 "tjms" (tjms/Resources/Private/Templates/Page/
) 中 System-Template.html
我添加了以下代码:
<html
data-namespace-typo3-fluid="true"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
>
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '0'}" />
</html>
在管理后端的我的页面上,我在上面放了一个内容元素,更具体地说,我在页面上添加了一个动态内容元素 (https://extensions.typo3.org/extension/dce/)。我现在的问题是,当我打开页面时,我一直收到这个错误:
No Content Object definition found at TypoScript object path "lib.dynamicContent"
我认为可能是因为我的插件无法访问 DCE 插件的 lib.dynamicContent?有没有什么办法可以link呢?或者是将我的系统模板放入 DCE 插件的唯一选择?
感谢您的帮助!
对于手头最重要的错误,您可以采取 https://github.com/benjaminkott/bootstrap_package/blob/master/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript 并将其包含在您的 TypoScript 设置中 (@import ...
)。这是一个非常强大且众所周知的 TypoScript 片段,它允许过滤列和页面,并允许使用列内容继承(又名 "slide")和方便的内容元素包装('elementWrap')。我认为是TYPO3内容渲染的瑞士军刀
但是从那里我认为您对页面模板和内容元素有误解。也许我只是不明白你的动机是什么。
您已经为可变页面模板定义了一个变量 "contentNormal"。可能它不会给你你想要的东西(styles.content.get 包括所有内容并且没有过滤 1 列)。但是您可以在 Fluid {contentNormal -> f:format.raw()}
.
中使用它
您的内容元素应该与您的页面模板无关,而是完全不同的东西。如果仅当您将此内容元素放在页面上时才出现此错误,这意味着该内容元素会尝试呈现 lib.dynamicContent
,这只有在您正在执行一些非常特殊的操作(例如从另一个页面呈现列)时才有意义.
我创建了一个页面并在后端视图中向该页面添加了一个模板,我已将此设置添加到我的模板中:
# Default PAGE object:
config.contentObjectExceptionHandler = 0
page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
templateName = System-Template
templateRootPaths.10 = EXT:tjms/Resources/Private/Templates/Page/
variables {
contentNormal < styles.content.get
}
}
现在您可以看到此页面的模板在我的插件 "tjms" (tjms/Resources/Private/Templates/Page/
) 中 System-Template.html
我添加了以下代码:
<html
data-namespace-typo3-fluid="true"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
>
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '0'}" />
</html>
在管理后端的我的页面上,我在上面放了一个内容元素,更具体地说,我在页面上添加了一个动态内容元素 (https://extensions.typo3.org/extension/dce/)。我现在的问题是,当我打开页面时,我一直收到这个错误:
No Content Object definition found at TypoScript object path "lib.dynamicContent"
我认为可能是因为我的插件无法访问 DCE 插件的 lib.dynamicContent?有没有什么办法可以link呢?或者是将我的系统模板放入 DCE 插件的唯一选择?
感谢您的帮助!
对于手头最重要的错误,您可以采取 https://github.com/benjaminkott/bootstrap_package/blob/master/Configuration/TypoScript/ContentElement/Helper/DynamicContent.typoscript 并将其包含在您的 TypoScript 设置中 (@import ...
)。这是一个非常强大且众所周知的 TypoScript 片段,它允许过滤列和页面,并允许使用列内容继承(又名 "slide")和方便的内容元素包装('elementWrap')。我认为是TYPO3内容渲染的瑞士军刀
但是从那里我认为您对页面模板和内容元素有误解。也许我只是不明白你的动机是什么。
您已经为可变页面模板定义了一个变量 "contentNormal"。可能它不会给你你想要的东西(styles.content.get 包括所有内容并且没有过滤 1 列)。但是您可以在 Fluid {contentNormal -> f:format.raw()}
.
您的内容元素应该与您的页面模板无关,而是完全不同的东西。如果仅当您将此内容元素放在页面上时才出现此错误,这意味着该内容元素会尝试呈现 lib.dynamicContent
,这只有在您正在执行一些非常特殊的操作(例如从另一个页面呈现列)时才有意义.