Радиокнопка Typo3 Flexform с элементами ProcFunc - PullRequest
0 голосов
/ 02 марта 2020

У меня есть расширение в typo3. Я хочу сделать выбор радиокнопок с помощью itemsProcFun c:

<radField>
   <label>Radiobuttons</label>
   <config>
    <type>radio</type>
    <itemsProcFunc>CM\Parser\UserFunc\FlexFormUserFunc->getNames</itemsProcFunc>
   </config>
</radField>

К сожалению, я получаю следующее сообщение об ошибке:

Item itemsProcFunc of field radField of TCA table tt_content is no array as exepcted

Я пробовал также с выбором box:

<dynField>
 <TCEforms>
 <label>dynamic content</label>
 <config>
  <type>select</type>
  <renderType>selectSingle</renderType>
  <itemsProcFunc>CM\Parser\UserFunc\FlexFormUserFunc->getNames</itemsProcFunc>
 </config>
 </TCEforms>
 </dynField>

С полем выбора это работает, но я получаю первую запись [недопустимое значение], которую не могу удалить из выпадающего списка. Однако, если я вместо этого использую

  <renderType>selectCheckBox</renderType> 

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

Файл php за ним выглядит так:

   class FlexFormUserFunc {
     function getNames($config) {
      $fileList = array();
      $i=0;
      $pathParts = "";
      foreach(glob(__DIR__ . "/formatClasses/*.php") as $fileName) {
       $pathParts = pathinfo($fileName);
       $fileList[$i] = array( 0 => $pathParts['filename'], 1 => $pathParts['basename'] );
       $i++;
     }

  $config['items'] = array_merge($config['items'],$fileList);
  return $config;
  }
 }

Спасибо за любую помощь.

1 Ответ

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

Я нашел рабочее решение этой проблемы. Возможная гибкая форма выглядит следующим образом (я забыл тег items-array):

    <radField>
    <TCEforms>
    <label>Radiobuttons</label>
    <config>
    <type>radio</type>
    <itemsProcFunc>CM\Parser\UserFunc\FlexFormUserFunc->getNames</itemsProcFunc>
    <items type="array">
    </items>
    </config>
    </TCEforms>
    </radField>
...