Как получить значение flexform для контроллера, который используется для внутреннего модуля? - PullRequest
0 голосов
/ 30 марта 2020

Я застрял в одном месте. я разрабатываю расширение в typo3. Я использовал flexform для администратора. Теперь я пытаюсь получить это значение flexform в контроллере для внутреннего модуля, но я получаю «Null» каждый раз. То же значение, которое я пытаюсь использовать для модуля внешнего интерфейса, в то время, когда я могу получить значение.

Ниже приведен мой код flexform:

<T3DataStructure>
    <meta>
        <langDisable>1</langDisable>
    </meta>
    <sheets>
        <sCategorybox>
            <ROOT>
                <TCEforms>
                    <sheetTitle>XY</sheetTitle>
                </TCEforms>
                <type>array</type>
                <el>
                    <settings.cat1>
                        <TCEforms>
                         <exclude>1</exclude>
                         <label>XYZ</label>
                         <config>
                          <type>select</type>
                            <renderType>selectMultipleSideBySide</renderType>
                            <size>5</size>

                            <foreign_table>tx_myext</foreign_table>
                            <foreign_table_where> AND tx_myext.hidden = 0 AND tx_myext.deleted = 0 ORDER BY name ASC</foreign_table_where>
                         </config>
                        </TCEforms>
                    </settings.cat1>
                </el>
            </ROOT>
        </sCategorybox>
    </sheets>

</T3DataStructure>

В действии контроллера я попытался сделать следующее $this->settings['cat1'];

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

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

1 Ответ

0 голосов
/ 30 марта 2020

Это похоже на FlexForm для плагина.

Действие Extbase внутри этого контекста плагина во внешнем интерфейсе заполнит параметры из столбца tt_content.pi_flexform (если они, как вы, назывались * 1003). *).

В бэкэнде вы не находитесь внутри контекста плагина. Таким образом, вам нужно выбрать столбец pi_flexform и самостоятельно прочитать структуру XML.

\TYPO3\CMS\Core\Service\FlexFormService имеет некоторые функции, которые могут помочь вам в разборе XML.

...