Доступ к дереву категорий в элементах содержимого FLUID с ошибкой - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть сайт 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>
...