【问题标题】:TYPO3 list module: custom records not showingTYPO3 列表模块:自定义记录未显示
【发布时间】:2016-11-07 07:31:07
【问题描述】:

我正在使用 TYPO3 7.6.11。 我编写了一个提供程序扩展来添加一些 ts 代码、模板和视图助手。 之后,我想添加一个自定义数据记录(用于后端)。

我在 ext_tables.sql 中添加了表。 我在 /[extension]/Configuration/TCA/tablename.php 下有一个 TCA 配置

我加了

TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tablename');
TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToInsertRecords('tablename');

到我的 ext_tables.php

我错过了什么吗?

我在列表模块的“系统记录”下获得了一个新的记录类型。我可以添加这样的记录,并且 TCA-config 似乎适用于记录表单。

但保存后,列表视图中没有记录。数据库看起来不错。记录正确保存在我的新表中。我究竟做错了什么? 谢谢

编辑: crtl:

'ctrl' => array (
    'title' =>       'LLL:EXT:svkcore/Resources/Private/Language/locallang.xlf:records.title',
    'label' => 'title',
    'label_alt' => '',
    'label_alt_force' => TRUE,
    'default_sortby' => 'ORDER BY datetime DESC',
    'prependAtCopy' => 'LLL:EXT:lang/locallang_general.php:LGL.prependAtCopy',
    'versioningWS' => TRUE,
    'versioning_followPages' => TRUE,
    'origUid' => 't3_origuid',
    'shadowColumnsForNewPlaceholders' => 'sys_language_uid,l18n_parent,starttime,endtime,fe_group',

    'dividers2tabs' => TRUE,
    'useColumnsForDefaultValues' => 'type',
    'transOrigPointerField' => 'l18n_parent',
    'transOrigDiffSourceField' => 'l18n_diffsource',
    'languageField' => 'sys_language_uid',
    'crdate' => 'crdate',
    'tstamp' => 'tstamp',
    'delete' => 'deleted',
    'type' => 'type',
    'cruser_id' => 'cruser_id',
    'editlock' => 'editlock',
    'enablecolumns' => array (
        'disabled' => 'hidden',
        'starttime' => 'starttime',
        'endtime' => 'endtime',
        'fe_group' => 'fe_group',
    ),
    'typeicon_column' => 'type',
    'typeicons' => array (
        '1' => 'EXT:svkcore/res/gfx/svkcore_inturl.gif',
        '2' => 'EXT:svkcore/res/gfx/svkcore_exturl.gif',
    ),
    'thumbnail' => 'image',
    'iconfile' => 'EXT:svkcore/res/gfx/ext_icon.gif',
    'searchFields' => 'uid,title,short,bodytext'),
'interface' => Array (
    'showRecordFieldList' => 'title,hidden,datetime_start,starttime,archivedate,category,short,image,record_files'
),

【问题讨论】:

  • 记录的pid是否也保存正确?
  • 是的,数据库中的 pid 是正确的
  • 您在表的 TCA 定义的 ctrl 部分中没有 'hideTable' => true, 吗?
  • 能否请您使用 TCA 配置更新您的问题。如果您可以创建一条新记录,将其保存并在数据库中查看,但在 TYPO3 中看不到,那么您似乎遇到了 TCA 配置问题 - 正如 Victor 指出的那样,它可能是 CTRL 部分中的 hideTable
  • 我添加了 crtl 部分。我一般采用tt_news的配置。

标签: typo3


【解决方案1】:

从 Typo3 7 开始,可以屏蔽列表视图。这是通过 PageTSConfig 配置的,查看您的 info-Module(在页面树中选择正确的页面)并检查那里的 TSConfig。

配置可以在以下路径找到:

mod.web_list.allowedNewTables

【讨论】:

    【解决方案2】:

    如果您有新表所需的一切,请检查 ext_tables.php:排版包含、语言文件、示例:

    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'My TS configuration');
    
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr('tx_myext_domain_model_mytable', 'EXT:my_ext/Resources/Private/Language/locallang_csh_tx_myext_domain_model_mytable.xlf');
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_myext_domain_model_mytable');
    

    您确定新记录存储在当前页面中吗:查看 TS "persistence.storagePid"。 您可以在数据库中检查 pid 用于您的新记录。

    问候, 弗洛里安

    【讨论】:

    • 感谢您的回答。首先:我认为 TCAdescr 部分不是强制性的。我现在添加了它,但问题仍然存在。当我阅读您的答案时,我看到了:“tx_myext_domain_model_mytable”这只是命名约定,还是我必须为我的表创建一个域/模型?
    • 我有一个打字稿,但我的记录表里面没有。我必须为表格添加一些打字稿吗?我必须设置persistence.storagePid吗?我只是想在后端的当前文件夹中创建记录。
    • TypoScript 仅用于前端(可用于自定义后端模块),persistence.storagePid 是 TypoScript 中的 ExtBase 配置,也是“仅”前端。 addLLrefForTCAdescr 是可选的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多