Drupal - 显示特定用户组的块

时间:2012-05-08 04:46:20

标签: drupal organic-groups

我有大约6个不同的小组,例如A队,B队等。我想为其中一组显示一个区块。正在考虑检查登录用户gid = X然后显示块。这样我可以设置6个不同的块,所有块都针对不同的组,这样当用户登录时,它将为它们显示相关的块。那有意义吗?我该如何实现它?

2 个答案:

答案 0 :(得分:1)

根据您的确切设置,Context模块似乎可以为您提供帮助。

这是你如何做到的。

  1. 创建6个单独的块
  2. 下载并安装上下文模块
  3. 在admin / structure / context / add
  4. 创建新上下文
  5. 根据以下某个选项
  6. 填写条件部分
  7. 填写反应部分,选择添加“块”,然后选择要为所选条件显示的确切块。您可以显示多个,因此请添加您想要显示的内容。
  8. 为每个组创建单独的上下文(总共6个)。您可以为每个组显示多个块。
  9. 创建新上下文允许您仅为某些上下文显示某些块。示例上下文仅显示某些页面上的块(通过路径上下文)或仅针对特定角色的用户(通过用户角色上下文)或甚至某些节点类型或者在附有特定术语的页面上等。

    在您的情况下,如果您使用“有机组”模块来实现用户组,则上下文将与其集成。这意味着当您创建上下文时,“条件”部分下将有一个选项,用于选择要为其显示某些块的有机组。您可以在“反应”部分选择要显示的确切块。

    如果有帮助,请告诉我们!

答案 1 :(得分:1)

经过一周多的研究和游戏,我找到了一些代码并将其修改为我需要的内容。

<?php 
   global $user;
   $uid = $user->uid;
   $result = db_query ( "SELECT * FROM {og_membership}
   WHERE etid = :uid
   and entity_type = 'user'
   order by gid DESC", array (':uid' => $uid ) );

   foreach ( $result as $row ) {
     $gid = $row->gid;
     break; 
   }
?>    

<?php if ($gid == "GROUP ID HERE"): ?>

(load block here)

<?php endif; ?>