Рендеринг TYPO3 Partials не работает должным образом

Проблема в следующем. Я сделал расширение, где у меня есть представление списка и подробное представление. Представление списка работает отлично. Проблема возникает, когда я перехожу к подробному виду и пытаюсь визуализировать Partial через Show.html.
Проблема будет подробно объяснена после структуры.

Это структура:

↳ частный

     ↳ Partials

         ↳ Detail

             ↳ квартира

     ↳ шаблоны

         ↳ ImmobilieImport

             ↳ list.html

             ↳ Show.html

Так что в Show.html у меня есть это:

<f:render partial="Detail/Apartment" arguments="{_all}" />

И в Apartment.html у меня есть переменная для чтения:

{immobilieImport.street}

Когда я вызываю представление списка и нажимаю на объект, он перенаправляет меня в представление подробностей, как и предполагалось. Я получаю правильные значения обратно, и все работает отлично. НО, когда я возвращаюсь к другому объекту и щелкаю по нему, чтобы открыть детальный вид, он не отображает ни частичный, ни Show.html.

У меня в конфиге no_cache = 0 плюс я тоже отключил кеш на свойствах страницы.

Когда я использую <f:debug>{immobilieImport}</f:debug> я получаю все правильные значения обратно, но он не отображает HTML на веб-интерфейсе.

TYPO3 версия 7.6.23

Есть идеи, что происходит? Если вам нужна дополнительная информация, не стесняйтесь спрашивать.

С наилучшими пожеланиями

1

Решение

Я нашел решение своей проблемы, и я объясню его подробно, поэтому, если у кого-то еще есть такая же проблема, он может найти ответ.

Проблема может быть очень распространенной, если кто-то использует настройки FlexForm.

В моем списке просмотра у меня есть <f:if> заявление, где я оцениваю, если дата создания составляет менее 30 дней. Я сделал это гибким, позволив пользователю определять время самостоятельно. Чтобы позволить пользователю сделать это, вам нужно добавить параметр в FlexForm. Итак, на моем FlexForm у меня было это:

<settings.timeToGetOld>
<TCEforms>
<label>Number of days that stays as "New"</label>
<displayCond>FIELD:switchableControllerActions:=:ImmobilieImport->list;ImmobilieImport->show</displayCond>
<config>
<type>input</type>
<size>6</size>
<max>6</max>
<eval>int</eval>
<default>30</default>
</config>
</TCEforms>
</settings.timeToGetOld>

Изобретение относится к области switchableControllerActions: =: ImmobilieImport-> список; ImmobilieImport-> показать

На самом деле это ТОЛЬКО представление списка, и оно написано так, потому что это «Комбинации действий контроллера».

На моем контроллере и списке действий:

$this->view->assign('settings', $this->settings);

а потом на моей жидкости:

f:if condition="{f:format.date(date: '{immobilieImport.creationDate}', format: 'Y-m-d')} > {f:format.date(date: 'now-{settings.timeToGetOld} days', format: 'Y-m-d')}"><span class="new_object">New</span>

Проблема возникла, когда я попытался использовать эту оценку в подробном представлении. Поскольку я не указал никакого поля настройки для подробного вида, Fluid Engine не смог обработать оценку, поэтому он из-за ошибки ничего не отображал. Учитывая тот факт, что он читает документ «Сверху вниз», когда Fluid Engine столкнулся с проблемой, он остановился.

После того, как я выяснил, в чем проблема, я добавил еще один параметр в свою FlexForm:

<settings.timeToGetOldDetailView>
<TCEforms>
<label>Number of days that stays as "New"</label>
<displayCond>FIELD:switchableControllerActions:=:ImmobilieImport->show</displayCond>
<config>
<type>input</type>
<size>6</size>
<max>6</max>
<eval>int</eval>
<default>30</default>
</config>
</TCEforms>
</settings.timeToGetOldDetailView>

Теперь я изменил displayCond только в подробном представлении (Показать), и я изменил свою жидкость (Show.html) на {settings.timeToGetOldDetailView} тоже:

f:if condition="{f:format.date(date: '{immobilieImport.creationDate}', format: 'Y-m-d')} > {f:format.date(date: 'now-{settings.timeToGetOldDetailView} days', format: 'Y-m-d')}"><span class="new_object">New</span>

Я также добавил это на моем контроллере:

$this->view->assign('settings', $this->settings);

Теперь все работает отлично.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]