不使用模板重写CCK字段输出


7

视图模块具有不错的选项,可以重写字段的输出。这允许使用令牌调整CCK字段的输出,而不必为该视图创建模板。

是否有一个模块可以为内容类型的“显示字段”选项卡提供类似的功能?我需要稍微修改预告片和正文的字段输出,但不想创建完整的模板。

我目前正在使用Contemplate进行此操作,但是如果您不熟悉Drupal PHP API,那将比我需要的更为复杂,并且不必要的困难。同样令人烦恼的是,每当我向内容类型添加一个附加字段时,我都需要修改模板,实际上我只需要重写几个字段,而不是整个正文或预告片。

因此,我想使用一种简单的方法来重写每个CCK字段输出,使用可用于该内容类型的任何令牌。是否存在类似的东西?

Answers:


5

听起来您正在寻找“ 自定义格式化程序”模块,它与Contemplate非常相似,但是专门用于通过“显示设置”页面或“视图”创建“字段格式化程序”。

可以使用令牌或纯PHP代码构建自定义格式化程序。

此外,可以将“自定义格式化程序”导出为本地Drupal Hook或以“自定义功能”可导出格式导出。


4

如果您只是想调整标记,语义CCK值得一试。

创建了语义CCK,以便为用户提供自定义CCK字段的HTML输出的方法。强烈推荐的模块语义视图在某种程度上受到了启发,该模块为视图提供了相同的功能。

Drupal 7

目前正在开发Drupal 7版本的Semantic CCK:Semantic Fields


2

不建议使用Contemplate模块,因为它会将PHP代码放入数据库中,这通常被认为是安全漏洞并且性能不佳。

您可以考虑使用hook_field_formatter_info()定义自己的字段格式化程序。这使您可以定义可以处理每个字段的自定义回调。这是一个关于如何在Drupal 6中工作的简单教程

浏览其他模块的hook_field_formatter_info()实现,以了解其工作原理。在Drupal 6中,它直接与hook_theme()联系,而Drupal 7使用hook_field_formatter_view()



0

我也一直在同一个问题上斗争。

我不能/不想使用...

  1. 考虑一般的架构原因。
  2. 显示套件,很棒,但功能过大,实际上不允许对字段进行简单的更改。
  3. 自定义格式器,因为它再次以数据库中的PHP为多个值字段而结束。
  4. 字段模板,因为我只是在项目中添加一行文本。
  5. 语义CCK,因为这只会更改元素和类。
  6. hook_preprocess或其他基于代码的解决方案,因为我需要它是可配置的。

我需要做的只是添加CCK字段描述以显示输出时,这真是个无赖这实际上应该很简单。

听起来您需要自定义格式化程序。


n / m此功能已添加到语义CCK 1.4
doublejosh 2011年

您是否找到了一种易于操作且性能良好的解决方案?在drupal6中,好的解决方案通常是使用节点对象的['view']并将其与某些节点模板格式组合。由于在所有用例中有90%使用了['view'],因此输出非常干净且舒适。在drupal 7中,我们又有了一个问题,因为render()产生了很多开销……

听起来像Display Suite,然后drupal.org/project/ds
doublejosh 2011年

自定义格式化程序确实将信息存储在数据库中,但是该模块只是一个实用程序,因此,一旦在数据库中创建了格式化程序,便可以将其导出,并且不再在数据库中出现代码问题:)
Decipher



0

我将使用令牌过滤器模块,在带有输入过滤器的CCK字段中指定令牌值。这是模块项目页面中的摘录:

...一个非常简单的模块,可将令牌值用作输入过滤器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.