如何在 TYPO3 列表视图中将 sys_note 显示从页脚移动到顶部?

How to move sys_note display from footer to top in TYPO3 list view?

TYPO3 sysext sys_notes 使用 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['recordlist/Modules/Recordlist/index.php']['drawFooterHook'] 呈现列表模块底部的注释内容。

我想在列表模块顶部显示注释,紧跟在即显消息之后。不幸的是,没有钩子可以这样做。还有其他选择吗?也许我可以注入一些 JavaScript 来将内容移到顶部,但我不知道该怎么做。有什么想法可以在哪里寻找解决方案吗?

可能的解决方法:在底部添加一条包含有关 sys_notes 和 link(锚点)信息的快闪消息。

Georg Ringer 的核心补丁很适合我。

注意:由于功能冻结,此补丁不会集成到TYPO3 8.7中。

如果你想将它与 TYPO3 8.7 一起使用,你可以对核心进行 xclass 或修补它,如果你使用 Composer:

  1. composer require cweagans/composer-patches
  2. Gerrit
  3. 下载 diff
  4. 将补丁文件放到build/patches或类似的位置
  5. 将此添加到 composer.json"extra" 部分:

    "patches": {
        "typo3/cms": {
            "Hook for sys_notes #61170": "build/patches/80047d6.diff"
        }
    }
    
  6. composer update typo3/cms

  7. 最后但同样重要的是,在 ext_localconf.php:

    中使用新挂钩
    // reset hook from sys_note to render notes at the bottom of the list module
    $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['recordlist/Modules/Recordlist/index.php']['drawFooterHook']['sys_note'] = '';
    
    // render sys_note notes in the header instead
    $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['recordlist/Modules/Recordlist/index.php']['drawHeaderHook']['sys_note'] = \TYPO3\CMS\SysNote\Hook\RecordListHook::class . '->render';