如何在Drupal页面上放置多种内容类型?

问题描述:

我已经创建了一个名为Homepage的新内容类型,它有许多字段。这些字段是对单一图像促销内容类型的节点引用。单一促销包含标题,文字和图片的字段。我的想法是,我可以创建单个促销包的多个副本,每个包含不同的字段值。然后我想在主页上放置其中的一些。如何在Drupal页面上放置多种内容类型?

因此,我现在可以在主页上放置特定的单张图片优惠。但是,如果在主页上显示节点引用时显示Single Image Promo的样式,我需要创建哪个模板文件?

感谢, 玛丽亚

这听起来像你是在复杂的事情。

如果你想在你的主页上创建一些不同的,使用节点引用不是正确的方法来解决这个问题。有几种不同的方式可以做你想做的事情,最简单的方法是创建一个你想要显示的节点的块视图。当你把一个节点变成一个块时,你可以将它放在你的任何主题的定义区域中。

您也可以创建一个视图,然后根据需要获取不同的单一图像推广,而无需使用任何节点参考。视图有很多不同的过滤器,这将使您能够创建始终显示正确节点的视图。如果您想将节点放置在不同区域,此解决方案将无法正常工作。

要回答您的问题,当节点正在显示时,它们将默认使用node.tpl.php模板文件呈现。要为每个节点类型创建特定模板,可以创建一个名为node-nodetype.tpl.php的新模板,其中nodetype是您在创建节点时所称的节点类型。

+0

感谢googletorp,这就是我最后做的,为它创建了一个视图并设置了一个块显示,我过去曾尝试过,但是我在哪里看到了指定视图应该用于哪个特定节点。然后发现了我现在使用的视图过滤器,看起来有点沉重,我必须为e创建一个视图尽管非常节点。 – Maria 2009-12-09 10:02:41

node-nodetype.tpl.php可以在一定程度上工作,但是在那个文件中,您正在设计整个页面,内容类型的字段通过一个$ content变量批量传递给tpl。也许这对你已经足够了,但是如果你需要更细粒度的控制:

你可以使用Content Template(contemplate)模块编辑和设置单个内容类型的字段。它提供对$ content变量(批量交付给node-nodetype.tpl.php)的所有内容类型字段的访问。默认是php,因此您可以为节点引用字段添加逻辑和条件格式通常在预期中清楚地标出)

并且不要忽略内容类型的“显示字段”选项卡(管理字段选项卡旁边)的简单解决方案,您可以在其中将某些字段输出控制在门外。