я использую tt_news
расширение с моим TYPO3 v7.6.18 (только что обновлено с 6.2.31)
и у меня проблемы с деревом категорий. Я сделал немного больше отладки для tt_news
категория рендеринга и это проблема пока:
Старый tca.php
выглядит так:
'category' => Array ( 'исключить' => 1, 'label' => 'LLL: EXT: tt_news / locallang_tca.xml: tt_news.category', 'config' => Array ( 'type' => 'select', 'form_type' => 'user', 'userFunc' => 'tx_ttnews_TCAform_selectTree-> renderCategoryFields', 'treeView' => 1, 'foreign_table' => 'tt_news_cat', 'autoSizeMax' => 50, 'minitems' => $ confArr ['requireCategories']? 1: 0, 'maxitems' => 500, 'MM' => 'tt_news_cat_mm', ), ),
И это дает мне неправильные результаты, то есть, я не получаю дерево, а множественный выбор. Теперь, когда я меняю тип на пользователь, Я получаю эту ошибку:
Неустранимая ошибка: вызов неопределенного метода TYPO3 \ CMS \ Backend \ Form \ Element \ UserElement :: addSelectOptionsToItemArray () в /home/portal/typo3project/typo3conf/ext/tt_news/lib/class.tx_ttnews_TCAform_selectree 16 line-line
Я проверил линию в классе tx_ttnews_TCAform_selectTree
метод renderCategoryFieldsand
и это выглядит так:
$ selItems = $ fobj-> addSelectOptionsToItemArray ($ fobj-> initItemArray ($ this-> PA ['fieldConf']), $ this-> PA ['fieldConf'], $ fobj-> setTSconfig ($ table, $ row) , $ поле);
$ fobj приходит как ссылка в определении функции: function renderCategoryFields(&$PA, &$fobj)
и кажется, что это где-то определено неправильно, так как addSelectOptionsToItemArray
находится в FormEngine
а также не UserElement
,
Так как метод вызывается в TCA, как tx_ttnews_TCAform_selectTree->renderCategoryFields
Я не могу изменить класс, он использует.
Любые идеи, как это исправить?
Начиная с TYPO3 7 вам не нужно определять пользовательскую функцию для отображения списка в виде дерева. Eсть renderType
Опция конфигурации TCA для полей типа select, которые могут определять рендеринг дерева через selectTree
значение.
Таким образом, конфигурация должна выглядеть следующим образом:
'category' => Array(
'exclude' => 1,
'label' => 'LLL:EXT:tt_news/locallang_tca.xml:tt_news.category',
'config' => Array(
'type' => 'select',
'renderType' => 'selectTree',
'foreign_table' => 'tt_news_cat',
'autoSizeMax' => 50,
'minitems' => $confArr['requireCategories'] ? 1 : 0,
'maxitems' => 500,
'MM' => 'tt_news_cat_mm',
'treeConfig' => array(
'parentField' => 'parent_category',
),
),
),
Кроме того, вы можете поиграть с treeConfig
опция конфигурации для некоторого визуального тюнинга.
Других решений пока нет …