【问题标题】:How to set configurations for use in TCA/Overrides or how to configure sys categories?如何设置用于 TCA/Overrides 的配置或如何配置 sys 类别?
【发布时间】:2018-12-18 08:47:27
【问题描述】:

对于扩展,我喜欢使用存储在专用文件夹中的 sys_categories。如何配置文件夹并访问 TCA 设置中的配置?

我尝试了这种方法。我在Configuration/TCA/Overrides/tx_xref_domain_model_project.php中使用\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable方法。

我放置硬编码的 333 我想在理想情况下使用配置值 tsconfig。此时是否已解析并可访问?

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable(
   'xref',
   'tx_xref_domain_model_project',
   'areas',
   array(
       'label' => 'Areas',
       'exclude' => FALSE,
       'fieldConfiguration' => array(
           'foreign_table_where' => ' AND sys_category.pid = 333',
       )
   )
);

有没有更简单的方法来解决这个问题?

【问题讨论】:

    标签: typo3 typo3-extensions


    【解决方案1】:

    Configuration/TCA/Overrides/<your_table>.php 中使用ExtensionManagementUtility::makeCategorizable() 是正确的方法,实际上是TYPO3 itself does

    【讨论】:

    • 很高兴知道我在正确的轨道上。如何通过配置替换硬编码的 333? TSConfig 现在可用吗?
    【解决方案2】:

    此时至少可以访问全局扩展配置。

    https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/ConfigurationOptions/Index.html

    这并不完全令人满意,因为您可能希望为不同的页面或 sys_folders 定义不同的类别源文件夹。但它适用于许多项目:

    $areaFolder = (int)\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
        \TYPO3\CMS\Core\Configuration\ExtensionConfiguration::class)
        ->get('xref', 'areaFolder');
    
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable(
        'xref',
        'tx_xref_domain_model_project',
        'areas',
        array(
            'label' => 'Areas',
            'exclude' => FALSE,
            'fieldConfiguration' => array(
                'foreign_table_where' => ' AND sys_category.pid = ' . (string) $areaFolder,
            )
        )
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-06
      • 2021-03-12
      • 2017-08-16
      • 2016-04-27
      • 1970-01-01
      相关资源
      最近更新 更多