前面,我们为新闻简讯创建了一个新的内容类型,新闻简讯将放在每个站点新闻邮件的最上面。
但是,对于新闻简讯节点的内容我们要进行几样变更:
第一项任务是去除不想要的内容。第二项任务是添加内容。这些任务都可以用过滤器(filter)实现。
过滤 API 是 Filter 模块提供的。
采用这个系统,我们需要定义一个新的输入格式(input format)。输入格式是一套过滤器(格式化规则),它决定了文本中允许出现的标记或代码。Drupal出品时就提供了两个输入格式:Filtered HTML 和 Full HTML。这两种格式决定了文本中允许出现哪些 HTML 标记和结构。
其它输入格式
Drupal发行版中提供的过滤器不仅仅只是两个内置格式使用的那些。PHP 模块也提供了另一种过滤器用于过滤 PHP 代码。Drupal 网站上还有些其它过滤器,它们是做为第三方模块提供的。在本章稍后,我们将讨论如何创建自定义的输入格式,它们具有自己的一系列过滤器。
我们将创建一个新的输入格式叫做 Tagless text,我们将用它去除文本中的 HTML 标记和其它标记。
输入格式可以被传递给 Drupal 的内置函数 check_markup(),告诉 Drupal 如何过滤发送到客户端的内容。
虽然叫输入过滤器,但内容第一次放入Drupal时却很少用它进行过滤。在很大程度上,存储的文本就是用户输入的内容。在存储之前是不进行过滤的,只是在显示之前才送去过滤。
输入格式本身并不进行任何过滤操作。输入格式更象是个容器。特定的过滤器被指派给输入格式,对文本进行必要的操作是过滤器的工作。
例如,默认的 Filtered HTML 输入格式被指派了如下过滤器:
虽然输入格式的作用是容器,不过每个过滤器背后都是一段代码(一个hook_fileter() 的实作)执行实际的文本处理。
评论
发表新评论