2010-06-21 59 views
1

我在我的Drupal站点有几个视图变得非常失控......视图显示来自同一列表中不同内容类型的节点,并且根据内容类型......这到目前为止需要大量的自定义PHP字段,重写输出和一些黑魔法。完全无懈可击的代码。 :)Drupal的意见:按内容类型拆分字段

所以,我正在寻找的是一个模块,或技术,或黑客,更优雅地使不同的内容类型和他们的CCK领域出现在同一个列表中。

这里有一个pseudoexample:

视频节点: 结题 嵌入式视频领域 评论数

新闻文章节点: 定制CCK标题字段 节点体 评论计数,但与改写输出插入一个div类或东西

对于这个例子在我当前的布局,我会添加节点标题字段,但排除它的输出,然后输出使用if语句在php自定义字段中创建它,与节点主体相同(因为两个节点类型都有标题和主体,但只有两种类型中的一种应该显示它)。评论计数将被添加两次,然后我排除两者,并通过一个自定义的php字段与一个switch-statement的内容类型再次输出......丑陋的,是吧?

欢迎对模块,黑客或更好的设计选择的任何意见。 :)

回答

2

这听起来像你正在尝试做主题层做的,但在视图管理。

回过头来,切换到节点视图,然后创建一个格式为node-view-VIEWNAME.tpl.php的模板(如解释here),它处理所有可能被您拉入的节点的显示逻辑视图。

这会将视图的所有显示逻辑封装在单个模板中,并且不必在其他显示模板或视图本身中进行黑客操作。

如果您需要获取帮助获取模板的帮助,请告诉我们,但您好像知道自己在做什么。