2013-01-24 80 views
0

我正在嘗試爲旅行社創建Drupal網站,並且需要您的幫助。視圖分層分類選擇框

  • 我存儲在層次結構中的位置分類,結構是這樣的:

    • 歐洲
      • 法國
        • 巴黎
      • 德國
        • 柏林
  • 我使用的圖中包含 「有分類術語(具有深度)」 過濾器,公開爲一個選擇框。

  • 「下拉列表中顯示的層次結構」已啓用

它工作正常,但選擇框開始變得相當龐大的位置的數量正在增加。

所以我的問題是: 是否可以在選擇框中顯示分類的第一和第二級別? 或者是否可以在單獨的選擇框中顯示分類的每個級別?

謝謝!

+0

您沒有提及哪個版本的drupal,這會產生很大的差異。我最近必須在Drupal 7中完成這項工作,並且必須創建自己的模塊,該模塊提供了一個塊並使用表單api創建了3個單獨的分層選擇框。前2個有#ajax集,所以他們會更新表單並填充下一個選擇。 – 2pha

+0

我使用Drupal 7.我確定自定義模塊可以解決這個問題,但我試圖找到一些簡單的解決方案。 –

+0

「是否可以在選擇框中僅顯示分類的第一和第二級別?」這是可能的,但我從來沒有見過一個模塊來做到這一點。它可以在一個簡單的HOOK_form_alter中完成。 「是否可以在單獨的選擇框中顯示分類的每個級別?」我見過的唯一模塊是分層選擇。 HTTP:// Drupal的。組織/項目/ hierarchical_select。我從來沒有使用它。我需要在幾個星期前實施這個計劃並實施我自己的計劃。 – 2pha

回答

0

使用分層選擇模塊創建選擇列表。這會給你一個在所有子元素前面帶有' - '符號的層次結構。 然後你可以用hook_form_alter函數改變表單。

function MYMODULE_form_alter(&$form, &$form_state, $form_id) { 
if (($form_id == 'your_form_id')) { 
    foreach ($form['tid']['#options'] as $term_key => $term) { 
     // Check if this is a child by looking for '-' as first char in string 
     $term_value = reset($term->option); 
     if($term_value[0] == '-') { 
     unset($form['tid']['#options'][$term_key]); 
     } 
    } 
    } 
} 
0

您應該檢查this link。我很確定,你可以通過一些自定義編碼在任何自定義模塊或template.php

你可以檢查this module too,真的很有幫助。

謝謝

0

「是否可以在單獨的選擇框中顯示每個級別的分類?」 我看到的唯一可能對你有用的模塊是Hierarchical Select模塊。​​