Не удалось сгенерировать дерево категорий TYPO3 tt_news для ввода новостей

я использую 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 Я не могу изменить класс, он использует.

Любые идеи, как это исправить?

4

Решение

Начиная с 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 опция конфигурации для некоторого визуального тюнинга.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]