【问题标题】:HTML\rich text in Drupal's node title?Drupal 节点标题中的 HTML\富文本?
【发布时间】:2009-10-08 06:09:39
【问题描述】:

我需要节点标题才能显示一些文本格式。

据我了解,Drupal 的标题字段只是纯文本,它不允许HTML 或任何其他输入格式。真的吗?有没有办法覆盖这个或其他解决方案?

我正在使用 Drupal 6。

【问题讨论】:

    标签: drupal drupal-6


    【解决方案1】:

    您可以很容易地在您的主题中做到这一点,有不同的方法可以做到。最简单的可能是在你的 template.php 中完成

    /* this function generates the variables that are available in your node.tpl,
     * you should already have this in your template.php, but if not create it
     */
    function mytheme_preprocess_node(&$vars) {
        // It's important to run some kind of filter on the title so users can't
        // use fx script tags to inject js or do nasty things.
        $vars['title'] = filter_xss($vars['node']->title);
    }
    

    函数中发生的事情是它覆盖了 node.tpl 中 $title 的默认值,其中包含用于标题的变量。它通常放置在 h1 或 h2 标记中,因此您应该注意这一点。 filter_xss用来只允许基本的html标签,所以保护网站,你可以看看那个函数here。那是其他一些过滤器功能,例如 check_markup 和 filter_xss_admin,但您可以为 filter_xss 提供第二个参数,这是一个允许的标签数组,因此如果默认值不够好,您可以更改它以满足您的需要。

    【讨论】:

      【解决方案2】:

      D7 使用函数mytheme_preprocess_page

      【讨论】:

        【解决方案3】:

        扩展wiifm提到的模块,对于D7,现在还有:https://drupal.org/project/html_title_trash

        它允许更多标签,也适用于块标题,而不仅仅是节点标题。

        【讨论】:

        • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
        • 对不起,我不同意。这确实提供并回答了这个问题。问题是“我需要节点标题才能显示一些文本格式。据我了解,Drupal 的标题字段只是纯文本,它不允许 HTML 或任何其他输入格式。是这样吗?”和答案是:是的,Drupal 核心确实不允许在节点标题中使用 HTML,但是当您使用上面的模块时,它确实允许。
        • OP 在他的帖子末尾说他正在使用 Drupal 6。那里还有一个“drupal-6”标签。 Drupal 7 中引入了 html 标题垃圾模块。我认为您的帖子应该作为对 wiifm 答案的评论。因为它是一个很好的补充,但不是一个直接的答案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多