【问题标题】:Save TCA changes in TYPO3 on select box在选择框上保存 TYPO3 中的 TCA 更改
【发布时间】:2018-07-05 12:53:07
【问题描述】:

我在我的 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,正文等。但我只能将标题存储在数组中!? 现在,我在后端的选择框中列出了所有标题。

如果我在后端选择一篇文章,我该怎么做才能保存我的 toparticle?

TCA 有 onChange 方法吗?如果我选择一个,我怎样才能得到像 Uid 这样的信息?

【问题讨论】:

    标签: drop-down-menu typo3 onchange


    【解决方案1】:

    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://docs.typo3.org/typo3cms/TCAReference/8.7/Columns/Index.html?highlight=onchange#onchange

    如果您使用比 8.6 更旧的 TYPO3,则需要根据:https://docs.typo3.org/typo3cms/extensions/core/8.7/Changelog/8.6/Deprecation-78899-TCACtrlFieldRequestUpdateDropped.html 查找 requestUpdate

    【讨论】:

      猜你喜欢
      • 2018-08-22
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多