Drupal 7中自定义块内的不同视图

时间:2014-12-14 18:47:42

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

我在模块中定义了一个自定义块,当用户使用导航菜单选择不同的部分时,我希望在该块中显示不同的视图。通过使用hook_block_view(),我可以设置需要为该特定块呈现的内容。但是,如何根据用户的选择呈现不同的视图?

举个例子;

我有一个名为Customers的块;

  • 当用户选择“客户列表”表单导航菜单时,我想在“客户阻止”中显示客户列表。

  • 当用户选择特定客户时,我想在客户阻止中显示该客户的详细信息。

在Drupal 7中实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以从代码中定义块,并使用您想要决定使用哪个视图的逻辑(简单if或切换php语句)。然后,您可以根据您的逻辑嵌入不同的视图:

https://api.drupal.org/api/views/views.module/function/views_embed_view/7

或者您可以自己获取查看结果和数据:

https://api.drupal.org/api/views/views.module/function/views_get_view_result/7

或者,您可以制作2个不同的块视图,并为每个视图设置可见的页面。您可以在块设置中执行此操作,或者对于更复杂的逻辑,您可以使用上下文模块根据情况(页面,任何内容)将适当的块放置到区域。