TYPO3 не рендерит определенные части - PullRequest
0 голосов
/ 16 апреля 2019

Я использую 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 просто выбирает содержимое излевый столбец со страницы ... или я могу назначить другой тип, такой как текст, и вывести его таким образом.это работает, но фактический слайдер запуска все еще не отображается.Итак, что такое Startlider - это элемент контента, идущий по типу «Start Slider», который был создан с расширением Mask - у нас есть куча наших собственных типов контента, в бэкэнде я могу просто добавить дополнительные слайды, и это все.поэтому ссылка на тип содержимого маски работает, потому что я могу выбрать его из списка.проверка типа содержимого маски - она ​​содержит Slide> Headline> Description> Image> Video> 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 ### не имеет прямой ссылки на элемент маски - это должно происходить где-то еще - найдено Startlider.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 для расширения маски «ключ»: «стартовый ползунок» - это ссылка на фактический файл startlider.html - это правильно?

mask.jsonstartlider:

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

mh, но почему этот файл не используется / отображается?(неверно)

РЕДАКТИРОВАТЬ : теперь после прочтения о TYPO3 мой результат заключается в том, что это просто не работает:

    STARTSLIDER < styles.content.getLeft

все на сайте работает, кроме частейгде используется getLeft или getRight и тот факт, что ### что-то ### doesent предоставляет доказательства того, что маркер не получает ничего от styles.content.getX - поэтому я читал, что это довольно старый подход к рендерингу элементов иэта функциональность была удалена даже в css_styled_content в TYPO3 версии ^ 9 - НО она должна работать с TYPO3 версии 7.6.32 с активированным css_styled_content, где функциональность определенно находится в

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

, а содержимое, которое мне нужно, также отображаетсяcolPos = 1 в бэкэнде.

м-ч, я не знаю, что теперь делать.как я могу отладить это дальше?

Ответы [ 3 ]

1 голос
/ 16 апреля 2019

Вы используете разные стили и шаблоны.

Ваша страница построена с использованием шаблонов маркеров, которые могут распознаваться по хэшам до и после имен маркеров ###markername###.

Замены для маркера определены в typoscript, и там вы можете построить HTML несколькими способами.С styles.content.get* вы получаете доступ к элементам контента, которые вы можете найти на странице в разных столбцах.Рендеринг этих элементов содержимого сконфигурирован в typoscript, и там вы можете найти расширение mask, которое использует жидкость для визуализации содержимого.
Шаблоны Fluid могут быть распознаны помощниками вида (например, тегами пространства имен: <f:if ...>) и переменными({data.field})

Каждый из этих шаблонов определил свое собственное место, где хранятся шаблоны, Fluid даже использует несколько папок для шаблонов, макетов, партиалов.
Чтобы найти, где рендеринг вашей страницы нарушен, вынеобходимо проверить каждую конфигурацию (typoscript), а затем понять, как они работают вместе (куда вставляется результат другого рендеринга).

tldr :
узнать о: typoscript, маркер-шаблоны , флюид-шаблоны и как они взаимодействуют и используют друг друга.

1 голос
/ 16 апреля 2019

, поскольку вы новичок в TYPO3, я предлагаю вам начать читать этот учебник, это должно помочь вам понять, как работает рендеринг: https://docs.typo3.org/typo3cms/TemplatingTutorial/7.6/

0 голосов
/ 17 апреля 2019

проблема заключалась в том, что некоторые расширения были сломаны и несовместимы с установленной версией TYPO3, поэтому некоторые части конфигурации, хранящиеся в базе данных, не были реально применены к реальному приложению. например, css_styled_content отсутствовал в разделе page> includes и выдавал несколько ошибок устаревания, когда я пытался включить его, но не включался. я реорганизовал все расширения и, наконец, смог включить css_styled_content без каких-либо ошибок.

так что не было возможности ответить на этот вопрос, тем не менее, большое спасибо всем, кто пытался указать мне правильное направление.

...