Я пишу расширение, настроенное через FlexForms. Один элемент FlexForm имеет тип «select», с maxitems> 1. Я использую itemsProcFunc для вызова метода внешнего класса, изменяющего массив «items».itemsProcFunc и выбранные элементы в TYPO3 6.2
Это прекрасно работает до сих пор, но когда я пытаюсь сохранить параметры плагина в BE, записи в разделе «Selected:» исчезают. Однако выбранные значения сохраняются правильно. См. Ниже мою конфигурацию flexform.
<settings.flexuserList>
<TCEforms>
<label>Sektionen</label>
<config>
<type>select</type>
<itemsProcFunc>tx_hevpersons_sections->dogetSectionInfo1</itemsProcFunc>
<maxitems>10000</maxitems>
<size>10</size>
</config>
</TCEforms>
</settings.flexuserList>
public function dogetSectionInfo1($params, $conf)
{
print_r($params['row']['pi_flexform']);
$flexform = \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array($params['row']['pi_flexform']);
$grp = $flexform['data']['sDEF']['lDEF']['settings.flexroleList']['vDEF'];
$flexcantonval = $flexform['data']['sDEF']['lDEF']['settings.flexcanton']['vDEF'];
$flexsectionList = $flexform['data']['sDEF']['lDEF']['settings.flexsectionList']['vDEF'];
$flexuserList = $flexform['data']['sDEF']['lDEF']['settings.flexuserList']['vDEF'];
f(strstr($grp , "|")){
$string = explode(",",$grp);
foreach ($string as $key => $value) {
$array = explode('|',$value);
$nearay[$key] = $array[0];
}
}
if(count($nearay)){
foreach ($nearay as $key => $value) {
$usergroupFind[$key] = 'FIND_IN_SET("'.$value.'",usergroup)';
}
$string = ' AND '.implode(' OR ', $usergroupFind) . ' ';
}
if(!empty($string)){
$GLOBALS['TYPO3_DB']->store_lastBuiltQuery = 1;
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery("uid, name ", 'fe_users', 'deleted=0 AND disable=0 '.$string);
while($entry = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))
{
$params['items'][count($params['items'])] = array(trim($entry['name']), $entry['uid']);
}
$GLOBALS['TYPO3_DB']->sql_free_result($res);
}
return $params;
}
Когда печатное flexfrom, я получил 2 XML-запись, в которых один имеет запятые значение, хранящуюся внутри XML, а другие имеют пустые значения. Может кто-то помочь мне с этим ?
Я пытаюсь получить результаты от предыдущего 2 flexform fields, и на основании этого я только готовлю условия. Я тоже попытался убрать $ conf. Но это не помогло мне. В любом случае мне удалось исправить это другой альтернативной идеей. Спасибо за ваше время в любом случае за проверку этого! – Siva