1

私のサイトでは、2 つのコンテンツ タイプを Organic Group ノードとして設定しました。

  1. スポーツグループ
  2. 教育グループ

サイトには他にもさまざまな種類のコンテンツがあり、標準のグループ投稿として設定されています。ユーザーがコンテンツをグループに投稿できるようにするため、グループはそのグループを参照します。

次に、グループの詳細ブロックを各グループに表示できるようにしました。これにより、標準のグループ投稿である各コンテンツ タイプへのコンテンツ リンクの作成が表示されます。

私がやりたいことは、そのブロックで完了したか、独自のブロックを作成したかに関係なく、特定のコンテンツ タイプの作成リンクを特定のグループに制限することです。スポーツ グループで特定のコンテンツ タイプを作成することを許可したくありません。これはカスタム メニューまたはブロックで実行できると思いますが、必要な PHP が不明です。

4

1 に答える 1

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>

そしてそれはうまくいきます!

ここで、ユーザーがそのグループのメンバーである場合にのみ、グループ ページに表示する必要があります。したがって、「show block」セクションにこれを入れると、うまくいくようです:

<?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;

?>

于 2010-11-09T09:16:27.823 に答える