drupal与html转换,在Drupal中将HTMl添加到CCK

原始HTML CCK字段(Drupal 6) - 没有过滤器,格式或编辑器

简单修复!只需使用纯文本格式即可过滤未经过滤的HTML。然后在构建节点时将其转换回字段.tpl中的html。

CCK字段上的纯文本格式会将HTML标记转换为实体特殊字符(这样可以使它看起来像页面上的代码而不是实际的html标记)。它存储($文本,ENT_QUOTES, 'UTF-8')Drupal的check_plain的()函数中使用PHP的用htmlspecialchars编码的字符串。

解码它的最简单方法是在字段tpl文件中。这可以避免钩子,钩子顺序问题,循环错误和性能问题。这是通过将tpl文件添加到基本主题来完成的:hq_base,odyssey_base和odyssey_admin。以下是drupal如何解码cck节点编辑表单上的纯文本:print html_entity_decode(strip_tags($ text),ENT_QUOTES);注意 - 当html_entity_decode解码为html时,它会将php标签转换为html注释。以下是具有正确命名约定的示例文件,以便对字段进行php控制:

•content-field.tpl.php

•content-field- [your_field_name] .tpl.php

内容field.tpl.php从CCK的contrib进入主题文件夹的副本,这是一个重写的contrib,使其在主题可用,并且不应该被修改(除非你想改变的主题中的所有字段) 。字段特定文件也是tpl的副本,一旦覆盖文件存在,它将起作用。然后在字段tpl文件中解码为html:

•// print $ item ['view'];

•print html_entity_decode(strip_tags($ item ['view']),ENT_QUOTES);

Drupal版本注:

Drupal 7和Drupal 8中的tpl文件略有不同。但是html_entity_decode()是一个不会因Drupal版本而改变的php函数。

安全说明:

获取原始HTML的这种解码技巧违背了Drupal为文本格式安全性而构建的方式。这意味着拥有编辑页面权限的任何人现在都有权编辑html结构,并在页面上添加脚本标记。这可能会破坏布局,并可能构成危险。您在这里依赖于安全性的编辑权限,而不是Drupal的正常Formats-per-Role安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值