Я создал новое поле в своем TCA. Я хочу перечислить все статьи и выбрать одну, чтобы установить статью в качестве верхней статьи.
Статьи имеют UID, а в базе данных - столбец с именем istoparticle
tx_vendor_domain_model_article - таблица со всей информацией статьи.
Я добавил TCAcolumn.
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', array(
'tx_test_istoparticle' => array(
'exclude' => 1,
'onChange' => 'reload',
'label' => 'Top Article',
'l10n_mode' => 'exclude',
'config' => array(
'type' => 'select',
'itemsProcFunc' => \Vendor\MyArticles\Hooks\Backend\Preview\ArticleRenderer::class . '->getArticleTitle',
)
),
));
С пользовательской функцией
public function getTopArticles($param){
$pid = $param['row']['pid'];
$articles = $this->getArticles($pid);
foreach ($articles as $article) {
$record = BackendUtility::getRecord('tx_vendor_domain_model_article', $article->getUid());
$title = $record['header'];
$param['items'][][] = $title;
}
}
Кстати: $ record содержит всю необходимую мне информацию, UID, bodytext и так далее. Но я могу хранить только заголовок в массиве !?
Теперь я получил все названия, перечисленные в моем окне выбора в бэкэнде.
Что мне нужно сделать, чтобы сохранить мою частицу, если я выберу статью в бэкэнде?
Есть ли метод onChange для TCA? И как я могу получить такую информацию, как Uid, если я выберу одну?