[英]Save TCA changes in TYPO3 on select box
我在TCA中创建了新字段。 我想列出所有文章并选择一个,以将该文章设置为顶级文章。
这些文章具有UID,数据库具有称为istoparticle的列。 tx_vendor_domain_model_article是包含所有文章信息的表。
我添加了一个TCA列。
\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,正文等。 但是我只能将标题存储在数组中! 现在,我在后端的选择框中列出了所有标题。
如果要在后端选择文章,我该怎么做才能保存粒子?
TCA是否有onChange方法? 如果选择一个,如何获得Uid之类的信息?
TCA配置中的项目应至少包含两个元素-第一个是标签,第二个是值。 还有更多选择,但我认为您不需要。 您可以在这里阅读有关它们的信息: https : //docs.typo3.org/typo3cms/TCAReference/8.7/ColumnsConfig/Type/Select.html#items
这意味着您的usefFunc应该如下所示:
public function getTopArticles(&$param){
$pid = $param['row']['pid'];
$teasers = $this->getArticles($pid);
foreach ($articles as $article) {
$record = BackendUtility::getRecord('tx_vendor_domain_model_article', $article->getUid());
$param['items'][] = [
$record['header'],
$record['uid'],
]
}
}
是的,TCA中具有onChange
功能: https : onChange
= onChange
如果您使用的TYPO3版本低于8.6,则需要根据以下内容查找requestUpdate
: https : requestUpdate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.