2010-08-09 33 views
2

我有Drupal與CCK,
我有一個名爲Article的內容類型。
本文有5個節點引用。
我使用CCK在表中的字段和我想要將其連接到
的引用,因此[保存表字段]每篇文章
將有一個表5列,每一個產品
和內容能按照用戶想要

但是我真的不知道怎麼做,我想
添加產品列一旦他們在參考通過jQuery
選擇了改變,它似乎呆滯..有沒有任何前解決這個?

圖像到clearify alt text節點參考Drupal中的表

+0

「每個產品和內容都可以根據用戶需要改變」 - 什麼?該表應該顯示來自引用節點的信息,還是其他內容? – Grayside 2010-08-13 18:17:37

回答

3

您可以用View做到這一點,但在此之前我們得到的是,它可能會更好,如果你對節點進行一些更改。

  1. 不是爲每個產品使用5個單獨的節點引用字段,而是添加一個引用產品的節點引用字段。在該字段的配置(發現在管理字段的內容類型選項卡),設置下全局設置數值至。

  2. 然後,擺脫tableview CCK領域。你不會需要它,因爲你要創建的視圖會做你想要做的事情。

  3. 現在,到網站大廈 - >瀏覽 - >添加。輸入視圖的名稱;比方說上市。您可以更改說明標籤任何你想要的,但離開查看類型設置爲節點

  4. 現在,設置視圖。在字段中,添加您想要在產品表中顯示的字段;我們假設節點:標題節點:正文

  5. 過濾器,添加一個過濾器節點:類型,從而視圖將只顯示產品而不是其他類型的節點。

  6. 基本設置,從未格式化樣式更改爲

    現在您將看到一個視圖,該視圖將顯示錶中的每個可用產品。下一步是限制該表只顯示特定節點引用的產品。爲此,您將創建一個參數。

  7. 根據參數,add 節點:ID。該視圖現在將只顯示ID與傳遞給視圖的參數相匹配的節點。

  8. 檢查允許多個項目的每個參數,這將允許您一次查找多個節點。

  9. 由於您不會手動傳遞這些參數,因此您將使視圖自動生成其查找的參數。選擇下提供默認參數如果參數不存在,則採取動作

有幾個選項可用,但沒有一個匹配您想要的選項:即所引用節點的節點ID。因此,請選擇PHP代碼,以便您可以提供自定義參數。使用下面的代碼:

$arguments = array(); 
$node = node_load(arg(1)); 

if ($node->field_product) { 
    foreach ($node->field_product as $product) { 
    if ($product['nid']) $arguments[] = $product['nid']; 
    } 
} 

return implode(',', $arguments); 

這將查找的頁面的節點ID(arg(1)),檢查是否有該產品的節點參考字段($node->field_product,改變field_product到你的領域的簡稱),然後構建一個包含每個引用節點ID的參數。它以Views期望的格式返回參數列表:1,2,3

現在視圖已經完成:剩下的唯一事情就是讓視圖顯示在頁面上。您可以創建一個顯示,然後將該塊添加到下的一個區域。網站建設。如果您轉到參考產品的頁面,該塊將與參考塊的表一起出現。

如果您希望視圖成爲節點本身的一部分,請查看View Reference模塊,該模塊創建引用視圖的CCK字段,就像節點引用引用節點一樣。

+0

我構建了視圖,但我不知道如何添加塊的東西...內容類型的名稱命名爲表... 我也嘗試去內容類型和搜索的方式爲它添加一個視圖...沒有看到它..但我認爲我真的很接近,因爲我幾乎做了每一步(直到網站建設 - >塊部分) – Asaf 2010-08-15 19:01:20

+0

當您編輯視圖時,您應該通過下拉菜單和「添加顯示」按鈕查看標籤列表。從菜單中選擇「Block」,點擊「Add Display」並保存視圖。您現在有一個名爲「viewname:Block」的塊,當您進入Site Building - > Blocks時可用。 – 2010-08-15 19:05:21

+0

好吧我正在變得非常接近,我需要的產品是列中的每個產品不是連續的,我希望能夠向生成的表添加內容(或從產品的特定部分獲取內容) – Asaf 2010-08-16 04:28:24