TYPO3 不渲染某些部分
TYPO3 not rendering certain parts
我使用的是 TYPO3 版本 7.6.32,但我遇到网站的某些部分无法呈现的问题。相反,输出如下所示:
###SIDEBAR## or ###TOP### or ###STARTSLIDER###
某些使用同一系统渲染的部分可以正常工作,例如:
###LOGO### and a few others
我已经复制了我们的生产环境并设置了本地环境以进行一些更改,但我无法让它工作。
对于 STARTSLIDER,我在 main.t3s 中找到了它
STARTSLIDER < styles.content.getLeft
谁能解释一下这个渲染系统是如何工作的,以及我如何才能开始进一步调试或做些什么?这是我第一次使用 TYPO3,我在这里遇到了困难。任何帮助将不胜感激。
如果您需要更多信息,请发表评论。
编辑:
好的,经过一些阅读后,似乎 styles.content.getLeft 只是从页面的左栏中获取内容......或者我可以分配另一种类型,如文本并像那样输出它。可行,但实际的 Start Slider 仍未呈现。好吧,什么是 startslider - 它是一个内容元素,类型为 "Start Slider",使用扩展 Mask 创建 - 我们有一堆我们自己的内容类型,在后端我可以添加额外的幻灯片,仅此而已.所以对掩码内容类型的引用是有效的,因为我可以从列表中选择它。检查掩码内容类型 - 它包含幻灯片 > 标题 > 描述 > 图像 > 视频 > Link,似乎工作正常。好的,我有一个代码示例如何使用它:
<f:if condition="{data.tx_mask_slide}">
<ul>
<f:for each="{data.tx_mask_slide}" as="data_item">
<li><f:if condition="{data_item.tx_mask_title}">
{data_item.tx_mask_title}<br />
</f:if>
<f:if condition="{data_item.tx_mask_description}">
{data_item.tx_mask_description}<br />
</f:if>
<f:if condition="{data_item.tx_mask_image}">
<f:for each="{data_item.tx_mask_image}" as="file">
<f:image image="{file}" alt="{file.alternative}" title="{file.title}" width="200" /><br />
{file.description} / {file.identifier}<br />
</f:for>
</f:if>
<f:if condition="{data_item.tx_mask_videolink}">
{data_item.tx_mask_videolink}<br />
</f:if>
<f:if condition="{data_item.tx_mask_link}">
<f:link.page pageUid="{data_item.tx_mask_link}">{data.tx_mask_link}</f:link.page><br />
</f:if>
</li>
</f:for>
</ul>
</f:if>
所以 ###STARTSLIDER### 引用没有直接引用掩码元素 - 这必须发生在其他地方 - 发现 startslider.html 是实际的滑块被构建。没什么特别的,只是一些 html 带有滑块元素。好的,我在顶部添加了一个随机的 html 标签,清除了所有缓存并检查了该标签——它丢失了——所以这个文件实际上从未被使用过。嗯,好的,那么什么是###STARTSLIDER###...我进一步猜测这就是发生这种情况的 main.t3s 的引用:
page.10.marks {
JUMPLINKS = TEXT
JUMPLINKS.value = Direkt zum Inhalt
JUMPLINKS.typolink {
parameter.field = uid
ATagParams = class="jumplinks focusable" role="navigation"
section = main-content
}
TOP < styles.content.getLeft
STARTSLIDER < styles.content.getLeft
LANG < lib.lang
MENU < lib.menu
...
有什么想法吗?
编辑:
所以我唯一能想到的是,在掩码扩展的 mask.json 配置文件中 "key": "startslider" 是对实际 startslider.html 的引用 - 这是否正确?
mask.json 启动滑块:
"startslider": {
"label": "Start Slider",
"key": "startslider",
"shortLabel": "",
"description": "nur f\u00fcr die Startseite verwenden",
"icon": "",
"color": "#000000",
"columns": [
"tx_mask_slide"
],
"labels": [
"Slide"
]
},
mh 但是为什么这个文件没有得到 used/rendered? (错误)
编辑:
现在,在阅读了更多有关 TYPO3 的内容后,我的结果是这根本行不通:
STARTSLIDER < styles.content.getLeft
除了使用 getLeft 或 getRight 的部分以及 ###something### 确实呈现标记没有从 styles.content.getX 返回任何东西的证据之外,网站上的所有内容都有效 - 所以我读到这是一种渲染元素的旧方法,即使在 TYPO3 版本 ^9 的 css_styled_content 中,功能也被删除了 - 但它应该与 TYPO3 版本 7.6.32 一起使用,激活 css_styled_content 其中功能绝对在
typo3src/typo3/sysext/css_styled_content/static/setup.txt
我需要的内容也由后端的 colPos=1 渲染。
嗯,我现在不知道该怎么办。我该如何进一步调试?
由于您是 TYPO3 的新手,我建议您开始阅读本教程,这应该有助于您了解渲染的工作原理:https://docs.typo3.org/typo3cms/TemplatingTutorial/7.6/
您混淆了不同的模板用法和样式。
您的页面是使用标记模板构建的,可以通过标记名称前后的哈希值识别###markername###
。
标记的替换是在打字稿中定义的,您可以在那里以多种方式构建 HTML。使用 styles.content.get*
,您可以访问可以在页面内不同列中找到的内容元素。这些内容元素的呈现是在 typoscript 中配置的,您可以在那里找到使用流体呈现内容的 mask
扩展。
流体模板可以被视图助手(例如命名空间标签:<f:if ...>
)和变量({data.field}
)
识别
这些模板中的每一个都定义了它自己的模板存储位置,fluid 甚至使用多个文件夹来存放模板、布局、部分。
要找到页面渲染损坏的位置,您必须检查每个配置(打字错误),然后了解它们如何协同工作(插入的位置是另一个渲染的结果)。
tldr:
了解:typoscript、marker-templates、fluid-templates 以及它们如何相互作用和相互使用.
问题是一些扩展被破坏并且与安装的 TYPO3 版本不兼容,所以存储在数据库中的配置的一些部分没有真正应用于实际应用程序。例如 css_styled_content 在 page>includes 部分中丢失,并且当我试图包含它但没有被包含时抛出一些弃用错误。我重构了所有扩展,最后我能够包含 css_styled_content 而不会出现任何错误。
所以真的无法回答这个问题,仍然非常感谢大家为我指出正确的方向。
我使用的是 TYPO3 版本 7.6.32,但我遇到网站的某些部分无法呈现的问题。相反,输出如下所示:
###SIDEBAR## or ###TOP### or ###STARTSLIDER###
某些使用同一系统渲染的部分可以正常工作,例如:
###LOGO### and a few others
我已经复制了我们的生产环境并设置了本地环境以进行一些更改,但我无法让它工作。
对于 STARTSLIDER,我在 main.t3s 中找到了它
STARTSLIDER < styles.content.getLeft
谁能解释一下这个渲染系统是如何工作的,以及我如何才能开始进一步调试或做些什么?这是我第一次使用 TYPO3,我在这里遇到了困难。任何帮助将不胜感激。
如果您需要更多信息,请发表评论。
编辑: 好的,经过一些阅读后,似乎 styles.content.getLeft 只是从页面的左栏中获取内容......或者我可以分配另一种类型,如文本并像那样输出它。可行,但实际的 Start Slider 仍未呈现。好吧,什么是 startslider - 它是一个内容元素,类型为 "Start Slider",使用扩展 Mask 创建 - 我们有一堆我们自己的内容类型,在后端我可以添加额外的幻灯片,仅此而已.所以对掩码内容类型的引用是有效的,因为我可以从列表中选择它。检查掩码内容类型 - 它包含幻灯片 > 标题 > 描述 > 图像 > 视频 > Link,似乎工作正常。好的,我有一个代码示例如何使用它:
<f:if condition="{data.tx_mask_slide}">
<ul>
<f:for each="{data.tx_mask_slide}" as="data_item">
<li><f:if condition="{data_item.tx_mask_title}">
{data_item.tx_mask_title}<br />
</f:if>
<f:if condition="{data_item.tx_mask_description}">
{data_item.tx_mask_description}<br />
</f:if>
<f:if condition="{data_item.tx_mask_image}">
<f:for each="{data_item.tx_mask_image}" as="file">
<f:image image="{file}" alt="{file.alternative}" title="{file.title}" width="200" /><br />
{file.description} / {file.identifier}<br />
</f:for>
</f:if>
<f:if condition="{data_item.tx_mask_videolink}">
{data_item.tx_mask_videolink}<br />
</f:if>
<f:if condition="{data_item.tx_mask_link}">
<f:link.page pageUid="{data_item.tx_mask_link}">{data.tx_mask_link}</f:link.page><br />
</f:if>
</li>
</f:for>
</ul>
</f:if>
所以 ###STARTSLIDER### 引用没有直接引用掩码元素 - 这必须发生在其他地方 - 发现 startslider.html 是实际的滑块被构建。没什么特别的,只是一些 html 带有滑块元素。好的,我在顶部添加了一个随机的 html 标签,清除了所有缓存并检查了该标签——它丢失了——所以这个文件实际上从未被使用过。嗯,好的,那么什么是###STARTSLIDER###...我进一步猜测这就是发生这种情况的 main.t3s 的引用:
page.10.marks {
JUMPLINKS = TEXT
JUMPLINKS.value = Direkt zum Inhalt
JUMPLINKS.typolink {
parameter.field = uid
ATagParams = class="jumplinks focusable" role="navigation"
section = main-content
}
TOP < styles.content.getLeft
STARTSLIDER < styles.content.getLeft
LANG < lib.lang
MENU < lib.menu
...
有什么想法吗?
编辑: 所以我唯一能想到的是,在掩码扩展的 mask.json 配置文件中 "key": "startslider" 是对实际 startslider.html 的引用 - 这是否正确?
mask.json 启动滑块:
"startslider": {
"label": "Start Slider",
"key": "startslider",
"shortLabel": "",
"description": "nur f\u00fcr die Startseite verwenden",
"icon": "",
"color": "#000000",
"columns": [
"tx_mask_slide"
],
"labels": [
"Slide"
]
},
mh 但是为什么这个文件没有得到 used/rendered? (错误)
编辑: 现在,在阅读了更多有关 TYPO3 的内容后,我的结果是这根本行不通:
STARTSLIDER < styles.content.getLeft
除了使用 getLeft 或 getRight 的部分以及 ###something### 确实呈现标记没有从 styles.content.getX 返回任何东西的证据之外,网站上的所有内容都有效 - 所以我读到这是一种渲染元素的旧方法,即使在 TYPO3 版本 ^9 的 css_styled_content 中,功能也被删除了 - 但它应该与 TYPO3 版本 7.6.32 一起使用,激活 css_styled_content 其中功能绝对在
typo3src/typo3/sysext/css_styled_content/static/setup.txt
我需要的内容也由后端的 colPos=1 渲染。
嗯,我现在不知道该怎么办。我该如何进一步调试?
由于您是 TYPO3 的新手,我建议您开始阅读本教程,这应该有助于您了解渲染的工作原理:https://docs.typo3.org/typo3cms/TemplatingTutorial/7.6/
您混淆了不同的模板用法和样式。
您的页面是使用标记模板构建的,可以通过标记名称前后的哈希值识别###markername###
。
标记的替换是在打字稿中定义的,您可以在那里以多种方式构建 HTML。使用 styles.content.get*
,您可以访问可以在页面内不同列中找到的内容元素。这些内容元素的呈现是在 typoscript 中配置的,您可以在那里找到使用流体呈现内容的 mask
扩展。
流体模板可以被视图助手(例如命名空间标签:<f:if ...>
)和变量({data.field}
)
这些模板中的每一个都定义了它自己的模板存储位置,fluid 甚至使用多个文件夹来存放模板、布局、部分。
要找到页面渲染损坏的位置,您必须检查每个配置(打字错误),然后了解它们如何协同工作(插入的位置是另一个渲染的结果)。
tldr:
了解:typoscript、marker-templates、fluid-templates 以及它们如何相互作用和相互使用.
问题是一些扩展被破坏并且与安装的 TYPO3 版本不兼容,所以存储在数据库中的配置的一些部分没有真正应用于实际应用程序。例如 css_styled_content 在 page>includes 部分中丢失,并且当我试图包含它但没有被包含时抛出一些弃用错误。我重构了所有扩展,最后我能够包含 css_styled_content 而不会出现任何错误。
所以真的无法回答这个问题,仍然非常感谢大家为我指出正确的方向。