0
votes

I am using TYPO3 version 7.6.32 and I have the problem that certain parts of the website are not getting rendered. Instead the output looks like this :

###SIDEBAR## or ###TOP### or ###STARTSLIDER###

some parts which get rendered with the same system are working correctly like :

###LOGO### and a few others

I have duplicated our production environnent and setting up the local environment for some changes but I can't get it to work.

In the case of STARTSLIDER I found this in the main.t3s

    STARTSLIDER < styles.content.getLeft

Can someone please explain how this rendering system works and how I can start to go further in debugging or something? Its my first time using TYPO3 and I'm having a hard time over here. Any help would be much appreciated.

If you need further information please just drop a comment.

EDIT: ok after some reading it seems like styles.content.getLeft just fetches the content from the left column from the page... or i can assign another type like text and output it like that. that works, but the actual Start Slider is still not getting rendered. ok so what is the startslider - its an content element going by the type "Start Slider" which got created with the extension Mask - we have a bunch of our own content types, in the backend i can just add additional slides and thats it. so the reference to the mask content type works because i can choose it from the list. checking the mask content type - it contains Slide > Headline > Description > Image > Video > Link, seems to work just fine. ok here i have an code example how to use it:

<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>

so the ###STARTSLIDER### reference is not directly referencing the mask element - this has to happen somewhere else - found startslider.html were the actual slider gets built. nothing to special just some html with the slider elements. ok i added a random html tag to the top, cleared all cached and checked for that tag - its missing - so this file is actually never used. hm ok so what is ###STARTSLIDER###... i further guess thats the reference into main.t3s where this happens:

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
    ...

any ideas?

EDIT: so the only thing i can imagine is that in the mask.json config file for the mask extension the "key": "startslider" is the reference to the actual startslider.html - is this correct?

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"
        ]
    },

mh but why is this file not getting used/rendered? (wrong)

EDIT: now after more reading about TYPO3 my outcome is that this is simply not working:

    STARTSLIDER < styles.content.getLeft

everything on the site works except the parts where getLeft or getRight is used and the fact that ###something### doesent render proofs that the marker does not get anything back from styles.content.getX - so i was reading that this is an kinda old approach of rendering elements and the functionality got removed even in css_styled_content in TYPO3 version ^9 - BUT it should work with TYPO3 version 7.6.32 with activated css_styled_content where the functionality is definetly in

typo3src/typo3/sysext/css_styled_content/static/setup.txt

and the content i need also gets rendered by colPos=1 in the backend.

mh i dont know what to do now. how could i debug that further?

3

3 Answers

1
votes

since you are new to TYPO3 I suggest that you start reading this tutorial, this should help you understand how the rendering works: https://docs.typo3.org/typo3cms/TemplatingTutorial/7.6/

1
votes

You mix up different usages and styles of templating.

Your page is build with marker-templates, which can be recognized by the hashes before and after the marker names ###markername###.

The replacements for the marker are defined in typoscript and there you can build HTML in multiple ways. With styles.content.get* you access the content elements you can find inside a page in different columns. The rendering of these content elments is configured in typoscript and there you may find the mask extension which uses fluid to render the content.
Fluid templates can be recognizable by the viewhelpers (e.g. namespaced tags: <f:if ...>) and variables ({data.field})

Each of these templatings has defined it's own place where the templates are stored, fluid even uses multiple folders for templates, layouts, partials.
To find where your page rendering is broken you have to inspect each configuration (typoscript) and then understand how they work together (where is inserted which result from another rendering).

tldr:
learn about: typoscript, marker-templates, fluid-templates and how they interact and use each other.

0
votes

the problem was that some extensions were broken and not compatible with the installed TYPO3 version so a few parts of the configuration stored in the database was not really applied to the actual application. for example css_styled_content was missing in the page>includes section and was throwing a few deprecation errors when i tried to include it while not getting included. i refactored all extensions and finally i was able to include css_styled_content without any errors popping in.

so it was not really possible to answer on this question, still thanks alot to everyone trying to point me in the right direction.