【问题标题】:Drupal display suite template in module模块中的 Drupal 显示套件模板
【发布时间】:2026-02-08 18:10:01
【问题描述】:

我正在使用这个函数在模块中注册一个 tpl 文件。

/**
 * Implementation of hook_theme().
 */
function frontpage_carousel_theme($existing) {
    return array(
        'ds_1col' => array(
            'arguments' => array(),
            'template' => 'ds-1col--node-carousel-carousel',
            'original hook' => 'ds_1col__node',
            'path' => drupal_get_path('module', 'frontpage_carousel') . '/templates',
            'type' => 'module',
            'preprocess functions' => array('template_preprocess', 'template_preprocess'),
        ),
    );
}

这工作正常,但用于每个节点。我只想将它应用到 ds-1col--node-carousel-carousel.tpl.php,但是

return array(
            'ds_1col__node_carousel_carousel' => array(

不起作用。有人有想法吗?

【问题讨论】:

    标签: templates drupal drupal-themes


    【解决方案1】:

    如果你想重写特定的节点类型模板,你应该在你的主题文件夹中使用node--nodetype.tpl.php 文件。

    【讨论】:

    • 我正在做的是在模块中实现它的更多逻辑。
    • 嗯......既然你投了反对票,我想知道这是否可以用函数重写节点的模板。会关注这个问题。
    • 是的,有可能。这是我目前正在为几个节点做的事情,但现在我想为“显示套件”做这件事,而不是一个节点。这似乎不是以同样的方式工作
    • 那么您知道如何将模板应用到具有功能的节点吗?
    • 该函数的作用是在注册表中注册一个不在主题文件夹中(但例如在模块中)的某个模板。所以这和放在主题文件夹中的效果是一样的。