Drupal 7:如何根据当前页面内容过滤视图内容(使用实体引用字段)

时间:2014-10-17 09:30:46

标签: drupal drupal-7 drupal-views drupal-blocks entityreference

在我的drupal 7中,我有2个内容类型,如:

  • ContentA
  • ContentB(带有对ContentA的字段实体引用)

在ContentA的前端详细信息页面中,我希望显示一个块/视图,其中包含ContentB列表,其实体参考字段设置为当前ContentA。

我查看了Block类型并将其正确添加到页面中,但我无法根据当前的ContentA过滤ContentB。

你能帮帮我吗?

由于

1 个答案:

答案 0 :(得分:2)

您应该为将用于过滤到ContentB的块视图的值添加上下文过滤器。 然后在“当过滤器值不在URL中”区域的上下文过滤器中选择“提供默认值”并键入“PHP代码”(您应该为此启用php过滤器)。在您的PHP代码区域中,您应该具有以下代码

$node=menu_get_object();
 return $node->field_your_machine_field_name['und'][0]['target_id']; // this is the field you will use for fitlering

希望有所帮助

<强>更新

如果您需要在块中显示具有相同选择的类似结果(例如,在ContentA的引用字段中具有相同选择的ContentB的类似结果),则上述代码将起作用。我将不会删除,因为您可能需要它也在你的项目中。我误解了。实际上解决方案更简单。您应该在字段中添加上下文过滤器,并在“当过滤器值不在URL中”区域中选择“提供默认值”和“从URL提供ID”