Drupal - 每种有机组内容类型的单独菜单

Posted

技术标签:

【中文标题】Drupal - 每种有机组内容类型的单独菜单【英文标题】:Drupal - Individual menus for each type of Organic Group content type 【发布时间】:2010-11-08 14:04:11 【问题描述】:

在我的网站上,我将两个内容类型设置为有机组节点。

    体育组 教育集团

网站上还有各种其他内容类型,设置为标准组帖子。允许用户将内容发布到组中,然后引用该组。

然后我启用了组详细信息块以显示在每个组上,然后显示创建内容链接到每个内容类型 = 标准组帖子。

我想做的,无论是用那个块完成还是我自己创建,都是将某些内容类型的创建链接限制到某些组。 i.o.w 我不想允许在 Sports Group 中创建某些内容类型。我认为这可以通过自定义菜单或块来完成,但不确定所需的 php

【问题讨论】:

【参考方案1】:

找到了一种使用块创建手动菜单的方法。

点击下面的链接来解释这一切 - http://drupal.org/node/169126

以下是链接中的文字:


以下是我将所有这些内容放在一起的内容...。从组页面创建链接以创建自动分配给该组的内容... 下面的代码被放入一个格式设置为 php 的块中

<?php $group_title = og_get_group_context()->title; ?>
<h2>You are a member of the <?php print $group_title; ?> group </h2>
<?php $group_nid = og_get_group_context()->nid; ?>
<div class="user-input-link"><a href="http://your-site/node/add/your-content-type?gids[]=<?php print $group_nid; ?>">Post your own content-type into this group.</a>
</div>

而且它有效!

现在您需要将其显示在群组页面上,并且仅当用户是该群组的成员时。所以在“显示块”部分你可以把它放进去,它似乎工作:

<?php
  $in_og = FALSE;
if (module_exists('og'))
  $in_og = FALSE;
  $group_node = og_get_group_context();
  $gid02 = $group_node->nid;
  $gid = (int)$gid02;
  if ($gid02 == null) $gid = 0; 
  if (og_is_group_member($group_node)) $in_og = TRUE;
  if ($gid == 0) $in_og = FALSE;

return $in_og;

?>

【讨论】:

以上是关于Drupal - 每种有机组内容类型的单独菜单的主要内容,如果未能解决你的问题,请参考以下文章

Drupal MultiSite、多个站点或有机组

Drupal 视图限制组成员发布的内容

如何在 drupal 7 中构造内容类型

Drupal 7:将私人论坛添加到有机组

以编程方式创建有机组

如何在没有面板的Views Drupal 7中将组ID作为上下文