web-dev-qa-db-ja.com

作成されている場合は、関連する分類リストを表示します

私は次の構造を作成しました。学生がif構造でオプションAを選択した場合、ウィザードの次のステップは医学ドメインAでのインターンシップですが、学校が別の医学ドメインBを作成した場合はどうなりますか。この構造では、学生にはインターンシップドメインAのみが表示され、医学領域aおよびb。私は自分の分類法とともに成長する構造を探しています(医学ドメインaとbを示し、学校が5か月後に医学ドメインcを作成した場合、最後のドメインcも学生が見る必要があります)。したがって、学生が彼よりも医学を選択した場合私のif構造で定義されている$ internshipドメインaだけでなく、すべての医療ドメイン(医療ドメインaおよびbなど)を取得します。ひどい英語で説明されているので、私の問題を理解していただければ幸いです。

ここにコードを入力してくださいケース2:

// Taxonomy list: 'valid type of internship'.

$valueInternship = $_SESSION['gekozenOpleiding'];

//var_dump($valueInternship);

if($valueInternship == 1) { // Stagedomein a
    $internship = 10;
}

if($valueInternship == 2) { // Stagedomein b
    $internship = 11;
}

if($valueInternship == 3) { // Stagedomein c
    $internship = 13;
}

if($valueInternship == 4) { // Stagedomein d
    $internship = 12;
}

if($valueInternship == 5) { // Stagedomein e
    $internship = 14;
}

$dropdown_source_geldig_soort_stage = taxonomy_get_tree($internship);
$dropdown_array_geldig_soort_stage = array();
foreach ($dropdown_source_geldig_soort_stage as $item) {
    $key = $item->tid;
    $value = $item->name;
    $dropdown_array_geldig_soort_stage[$key] = $value;
}
$form['geldig_soort_stage'] = array(
        '#key_type' => 'associative',
        '#multiple_toggle' => '1',
        '#type' => 'checkboxes',
        '#options' => $dropdown_array_geldig_soort_stage,
        '#title' => 'Welk geldig soort stage',
        '#multicolumn' => array('width' => 4,
                '#default_value' => isset($default_value['geldig_soort_stage']) ?
                $default_value['geldig_soort_stage'] : '',
        ),
);
break;
1
user417

これは非常に頻繁な問題です。 Drupalには簡単な解決策があります。これは コンテキストモジュール と呼ばれます。

コンテキストモジュールを使用すると、Webサイト全体で用語に基づいた情報のみを表示できます。または、ユーザーロールに基づいた情報のみを表示します。したがって、教師は、インターンシップに基づいて異なるビューを持つ学生とは異なるビューをブロックに表示します。

コンテキストモジュールを使用すると、スタックすることもできます。 A、B、C、Dのコンテキストを持つことができます。page.tpl.phpの右側のブロック領域に、選択した分類用語に基づいて4つの異なるブロックが表示されます。学生が用語AとBを選択した場合、同時にaとbのショーのViewsブロックがあります。または、用語A、B、およびCを持つことができます。用語Aが1ブロックを示し、用語Bが1ブロックを示す場合、AおよびBには2つのサイドバーブロックが表示されます。インターンシップCがはるかに複雑で、5ブロックの情報が必要な場合、用語A、B、Cの学生は1ページに7ブロックあります。

1
Adam S