【问题标题】:TYPO3: Override TCA backend class public variables from another extensionTYPO3:从另一个扩展覆盖 TCA 后端类公共变量
【发布时间】:2018-11-19 10:28:49
【问题描述】:

我正在使用 Typo3 的 tx_news 扩展。因此,我想禁用一些在我的页面上未使用的设置,例如类别:

我已经在 PageTS 中为这样的记录禁用了它们:

TCEFORM {
    tx_news_domain_model_news {
        categories.disabled = 1
    }
}

从管理过滤器和列中删除它们:

tx_news {
    module {
        columns = istopnews,datetime,author
        filters {
            categories = 0
            categoryConjunction = 0
            includeSubCategories = 0
        }
    }
}

现在我还想在将插件添加到页面时在插件设置中禁用它们。在 BackendUtility.php 我发现以下几行谁会为我做这件事(注意我已经添加了类别 categoryConjunction,..):

public $removedFieldsInListView = [
   'sDEF' => 'dateField,singleNews,previewHiddenRecords,selectedList,categories,categoryConjunction,includeSubCategories',
   'additional' => '',
   'template' => ''
];

当然,像这样我已经禁用了类别,但是通过直接编辑扩展而不是从我自己的扩展中覆盖它,这意味着当我更新 tx_news 时,我将丢失该配置。

我必须添加什么 $GLOBALS[TCA].. 才能获得相同的结果?我在后端调试中找不到任何东西...

我正在搜索类似的东西(或一些 TypoScript 的东西,如果可能的话):

$GLOBALS['TCA']['tx_news_domain_model_news']['plugin']['backendUtility'][removeFieldsInListView]= 'bla, blabla, bla';

感谢所有帮助!

【问题讨论】:

    标签: php typo3 overriding tx-news


    【解决方案1】:

    你有没有尝试过类似的 TsConfig

    TCEFORM {
        tt_content {
            pi_flexform {
                news_pi1 {
                    sDEF {
                        # Important is the escaping of the dot which is part of the fieldname
                        settings\.orderBy.disabled = 1
                    }
                }
            }
        }
    }
    

    【讨论】:

    • 但是我怎样才能知道到底要输入什么,因为在调试时我只能找到我已经设置的选项而不是默认的选项
    • 嗯,我猜名字就知道了......除非它们总是与模块设置相同并非巧合,否则我猜你可以在那里找到名字
    猜你喜欢
    • 1970-01-01
    • 2021-09-06
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多