Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Drupal页面上放置多种内容类型?_Php_Drupal - Fatal编程技术网

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

Php 如何在Drupal页面上放置多种内容类型?,php,drupal,Php,Drupal,我创建了一个名为Homepage的新内容类型,它有许多字段。这些字段是对单个图像促销内容类型的节点引用。单个促销框包含标题、文本和图像字段。我的想法是,我可以创建单个促销框的多个副本,每个副本具有不同的字段值。然后我想把其中一些放在主页上 因此,我可以把一个具体的单一形象宣传主页罚款现在。但是,我需要创建什么样的模板文件来设置单个图像促销在主页上作为节点引用时的显示方式 谢谢, 玛丽亚听起来你把事情复杂化了 如果您想在主页上创建一些不同的框,使用节点引用并不是正确的方法。有几种不同的方法可以实现

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

因此,我可以把一个具体的单一形象宣传主页罚款现在。但是,我需要创建什么样的模板文件来设置单个图像促销在主页上作为节点引用时的显示方式

谢谢,
玛丽亚

听起来你把事情复杂化了

如果您想在主页上创建一些不同的框,使用节点引用并不是正确的方法。有几种不同的方法可以实现您想要的功能,最简单的方法可能是创建要显示的节点的块视图。将节点转换为块时,可以将其放置在主题定义的任何区域中

您也可以只创建一个视图,然后从中获得所需的不同的单个图像促销,而无需使用节点引用。视图有许多不同的过滤器,这将使您能够创建始终显示正确节点的视图。但是,如果要将节点放置在不同的区域中,此解决方案将无法正常工作


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

node-nodetype.tpl.php可以在一定程度上工作,但在该文件中,您正在设置整个页面的样式,内容类型的字段通过单个$content变量批发交付给tpl。也许这对您来说已经足够了,但如果您需要更细粒度的控制:

您可以使用内容模板(沉思)模块编辑各个内容类型的字段并设置其样式。它提供了对$content变量中所有内容类型字段的访问(该变量被批量传递到node-nodetype.tpl.php。purpose是php,因此您可以为节点引用字段添加逻辑和条件格式(通常在purpose中清楚地标记)


不要忽略内容类型的“显示字段”选项卡(管理字段选项卡旁边)的简单解决方案,您可以直接控制一些字段输出。

感谢Google Torp,这就是我最后所做的,为它创建了一个视图并设置了块显示。我过去曾尝试过这一点,但失败的地方是指定视图应用于哪个特定节点。然后我发现了视图过滤器,我现在正在使用。似乎有点我必须为每个节点创建一个视图。