У меня есть сайт TYPO3 на основе 9.5.11. Также я создал элемент содержимого жидкости (FCE) и разместил его на одной странице. Внутри этого FCE мне нужно показать одну ветвь категорий (размещенную на той же странице, что и FCE с PID = 60) с кодом:
<flux:field.tree label="Kategorie" name="categories" table="sys_category" parentField="parent" expandAll="true" size="10" showHeader="true" maxItems="10" foreignLabel="title" nonSelectableLevels="0" maxLevels="10" condition="AND pid IN (60) ORDER BY title ASC"/>
Для пользователей BE с доступом администратора это работает как чудо. Но для редакторов, которые имеют ограниченный доступ в BE (флажок «admin» не активен), у меня странная проблема, и я не могу сохранить FCE. С ошибкой: «Поля, отмеченные восклицательным знаком, еще не заполнены правильно. Пожалуйста, заполните их правильно». Для целей тестирования я создал новую группу BE и установил все флажки для «вкладки Список доступа», но безуспешно.
Обновление 1: TYPO3 9.5.11 Да, я знаю о Templavoila и FCE , Но теперь я использовал элементы контента FLUX и Flux. Это полная версия этого потока файла:
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
xmlns:flux="http://typo3.org/ns/FluidTYPO3/Flux/ViewHelpers"
xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers">
<f:layout name="Content"/>
<f:section name="Configuration">
<flux:form id="events_list_gt" label="Events List" description="Events List">
<flux:form.section name="content.items" label="Block">
<flux:form.object name="extended" label="Add new event">
<flux:field.file name="image" allowed="jpg,png,svg" label="Image" uploadFolder="/fileadmin/user_upload" minItems="1" maxItems="1" size="1" />
<flux:field.input name="date-start" label="Date of start" size="10" eval="date" />
<flux:field.input name="date-end" label="Date of end" size="10" eval="date" />
<flux:field.select name="type" label="Type" multiple="1"
items="{
0:{0:'',1:''},
1:{0:'Anlass',1:'Anlass'},
2:{0:'Messen',1:'Messen'},
3:{0:'Aus- Weiterbildung',1:'Aus- Weiterbildung'},
4:{0:'Veranstaltung',1:'Veranstaltung'}
}"
/>
<flux:field.input name="title" label="Title" />
<flux:field.text name="description" label="Description" rows="3" cols="30"/>
<flux:field.input name="location" label="Veranstaltungsort" />
<flux:field.tree label="Kategorie" name="categories" table="sys_category" parentField="parent" expandAll="true" size="10" showHeader="true" maxItems="10" foreignLabel="title" nonSelectableLevels="0" maxLevels="10" condition="AND pid IN (60) ORDER BY title ASC"/>
<flux:field.input name="link" label="Linkblock">
<flux:wizard.link activeTab="External URL"/>
</flux:field.input>
</flux:form.object>
</flux:form.section>
</flux:form>
</f:section>
<f:section name="Preview">
<table width="100%" >
<f:for each="{content.items}" as="item" key="id">
<tr>
<td width="15%"styles="border-bottom:1px solid #ccc"><v:media.image src="{item.extended.image}" alt="{item.extended.title}" width="100" /></td><td width="85%"styles="border-bottom:1px solid #ccc">{f:format.date(date: '{item.extended.date-start}', format:'d.m.Y')}-{f:format.date(date: '{item.extended.date-end}', format:'d.m.Y')}-{item.extended.title}</td>
</tr>
</f:for>
</table>
</f:section>
<f:section name="Main">
<div class="events_list_wrap">
<div id="placeHolder"></div>
<div id="events_list">
<f:for each="{content.items}" as="item" key="id">
<div class="events_list_item row" <f:comment>data-Kategorie="{v:format.replace(substring: ',', content: item.extended.categories, replacement: ', ')}" </f:comment>data-Kategorie="<f:cObject typoscriptObjectPath="lib.categories" data="{recordUid: item.extended.categories}" />" data-Veranstaltungs-Typ="{item.extended.type}" data-Datum="{f:format.date(date: '{item.extended.date-start}', format:'Y-m')}" >
<div class="image_wrap"><a target="_blank" href="http://{item.extended.link}"> <v:media.image src="{item.extended.image}" alt="{item.extended.title}" maxW="172" /></a> </div>
<div class="date_wrap"><a target="_blank" href="http://{item.extended.link}"> {f:format.date(date: '{item.extended.date-start}', format:'d.m.Y')} - {f:format.date(date: '{item.extended.date-end}', format:'d.m.Y')}</a></div>
<div class="title_wrap"><a target="_blank" href="http://{item.extended.link}">{item.extended.title}</a></div>
<div class="description_wrap"><a target="_blank" href="http://{item.extended.link}">{item.extended.description}</a></div>
<f:comment><div class="categories_wrap"><a target="_blank" href="http://{item.extended.link}"><f:cObject typoscriptObjectPath="lib.categories" data="{recordUid: item.extended.categories}" /></a></div></f:comment>
<div class="location_wrap"><a target="_blank" href="http://{item.extended.link}">{item.extended.location}</a></div>
</div>
</f:for>
</div>
</div>
</f:section>
</div>