【问题标题】:Drupal allow FULL html as input formatDrupal 允许 FULL html 作为输入格式
【发布时间】:2010-08-19 20:56:51
【问题描述】:

我有一种特定类型的节点,用户必须将 FULL html 粘贴到正文字段中。例如。 html包括html、head和body标签。显然,Drupal 的“完整 html”版本实际上不是“完整 html”,因为它去除了这些标签。

如何绕过 Drupal?

【问题讨论】:

    标签: php html drupal


    【解决方案1】:

    我通过在模块中使用 nodeapi 钩子以一种相当残酷的方式解决了这个问题:

    function your_module_name_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {   
        if($node->type == "the_relevant_type" && $op == "view") {
            echo $node->body;
            exit(); // stick that in your pipe and smoke it, Drupal
        }
    }
    

    【讨论】:

    • 头部和身体标签不会被剥离,它们会被消毒。我很想知道您通过将完整的 HTML 页面放入节点来完成什么。我怀疑有一种更 Drupal 的方式来做你想要完成的事情。
    • 某客户拥有大量静态 html 页面,这些页面以多种不同的方式构建,目前只希望对其网站的某些部分进行现代化改造。做出的决定是这些页面将保持静态,并且不会出现任何 Drupal 的正常小部件。开始为所有这些不同类型的页面创建不同的 page.tpl.php 文件将是一项艰巨的任务。这些静态 html 页面将与 Drupal 驻留在同一目录中,并且此节点类型和代码将允许诸如 index.html 文件之类的关键页面避免与 Drupal 的路由冲突。
    • +1 用于管道评论...尽管这 非常残酷:)
    • 哇。为什么不直接运行 import_html 模块之类的东西并以这种方式将其吸入 Drupal 呢?结合普通的完整 HTML,它应该保留您需要的一切。只有现在您可以使用 Drupal 标头。
    【解决方案2】:

    你不能使用普通节点和静态页面特定块吗?

    【讨论】:

      【解决方案3】:

      您并没有真正绕过 Drupal;你得到了 Drupal 的所有开销而几乎没有任何好处。要真正绕过 Drupal,您根本不应该将这些静态文档放在 Drupal 中。 Drupal 的 .htaccess 设置为仅在 URL 与实际文件不匹配时加载 Drupal,因此将您的实际文件放在它们现在所在的位置并在 Drupal 所在的位置添加 Drupal(根本不应该与 .html 文件重叠)都可以工作更好,更容易实施。

      如果您真的想在 CCK 中转储 HTML 并在输出静态 HTML 之前运行一堆数据库查询,您可以将字段更改为纯文本。

      【讨论】:

      • 那么,index.html 文件呢?
      猜你喜欢
      • 2017-11-16
      • 1970-01-01
      • 2011-08-31
      • 2015-07-01
      • 2017-01-27
      • 2017-08-11
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      相关资源
      最近更新 更多