Проблема в следующем. Я сделал расширение, где у меня есть представление списка и подробное представление. Представление списка работает отлично. Проблема возникает, когда я перехожу к подробному виду и пытаюсь визуализировать 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
Есть идеи, что происходит? Если вам нужна дополнительная информация, не стесняйтесь спрашивать.
С наилучшими пожеланиями
Я нашел решение своей проблемы, и я объясню его подробно, поэтому, если у кого-то еще есть такая же проблема, он может найти ответ.
Проблема может быть очень распространенной, если кто-то использует настройки 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);
Теперь все работает отлично.
Других решений пока нет …