TYPO3不渲染某些部分

问题描述 投票:0回答:3

我使用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只是从页面的左栏中提取内容...或者我可以指定另一种类型的文本,并输出它。这工作,但实际的开始滑块仍然没有得到渲染。那么什么是startslider - 它是一个内容元素,其类型为“Start Slider”,它是使用扩展Mask创建的 - 我们有一堆自己的内容类型,在后端我可以添加额外的幻灯片,就是这样。所以对掩码内容类型的引用是有效的,因为我可以从列表中选择它。检查掩码内容类型 - 它包含幻灯片>标题>描述>图像>视频>链接,似乎工作正常。好的,我有一个代码示例如何使用它:

<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 ###引用不是直接引用mask元素 - 这必须发生在其他地方 - 发现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:

    "startslider": {
        "label": "Start Slider",
        "key": "startslider",
        "shortLabel": "",
        "description": "nur f\u00fcr die Startseite verwenden",
        "icon": "",
        "color": "#000000",
        "columns": [
            "tx_mask_slide"
        ],
        "labels": [
            "Slide"
        ]
    },

嗯但为什么这个文件没有被使用/渲染? (错误)

编辑:现在在更多关于TYPO3的阅读后,我的结果是这根本不起作用:

    STARTSLIDER < styles.content.getLeft

除了使用getLeft或getRight的部分以及### something ### doesent的事实证明标记没有从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 typo3-7.6.x typo3-extensions
3个回答
1
投票

由于您是TYPO3的新手,我建议您开始阅读本教程,这应该可以帮助您了解渲染的工作原理:https://docs.typo3.org/typo3cms/TemplatingTutorial/7.6/


1
投票

你混合了不同的用法和模板风格。

您的页面使用marker-templates构建,可以通过标记名称###markername###之前和之后的哈希来识别。

标记的替换在typoscript中定义,您可以通过多种方式构建HTML。使用styles.content.get*,您可以访问在不同列中的页面内找到的内容元素。这些内容元素的渲染是在typoscript中配置的,你可以在那里找到使用流体渲染内容的mask扩展。 viewhelpers可以识别流体模板(例如命名空间标签:<f:if ...>)和变量({data.field}

这些模板中的每一个都定义了它自己存储模板的位置,流体甚至使用多个文件夹来存储模板,布局,部分。 要查找页面呈现中断的位置,您必须检查每个配置(typoscript),然后了解它们如何一起工作(插入的位置是由另一个呈现产生的)。

tldr: 了解:typoscript,marker-templates,fluid-templates以及它们如何相互作用和互相使用。


0
投票

问题是某些扩展被破坏并且与已安装的TYPO3版本不兼容,因此存储在数据库中的一些配置部分并未真正应用于实际应用程序。例如,页面>包含部分中缺少css_styled_content,并且当我试图包含它而没有被包含时,它会抛出一些弃用错误。我重构了所有扩展,最后我能够包含css_styled_content,而不会出现任何错误。

所以在这个问题上真的不可能回答,仍然非常感谢每个人都试图指出我正确的方向。

© www.soinside.com 2019 - 2024. All rights reserved.