2010-10-13 73 views
2

我有一個含分類條款的內容類型。這是一個選擇列表,所以它只能有一個分類 - 至少是那個詞彙。現在我需要構建一個列出具有相同分類標準的所有節點的視圖。Drupal Views:獲取與當前節點具有相同分類的節點

認爲這不會太難,因爲它聽起來很基本。但我無法得到它的工作。有任何想法嗎?我試圖避免爲此寫一個模塊。

回答

4

此答案適用於Views 2或更高版本。首先你需要安裝視圖附加(http://drupal.org/project/views_attach)。請在繼續閱讀之前閱讀有關Views的附加信息。視圖附加是最好的解釋通過這個視頻http://mustardseedmedia.com/podcast/episode37

現在我們到視圖附加。在繼續之前請啓用視圖附加模塊。本質上,Views attach在節點的末尾附加一個視圖。在我們的案例中,我們的觀點將會是同一個術語的其他文章的列表。

我們將基本上需要將節點的分類術語「傳遞」給視圖。讓你的詞彙的名稱被稱爲MyVocab

製作視圖的步驟。

  1. 讓我們打電話給視圖display_other_articles_with_same_taxonomy
  2. 添加Node Content類型的顯示(啓用視圖附加後可用)。這是一個像塊和頁面顯示一樣的顯示,但具有將其自身附加到節點的特殊功能。

進行如下設置在Node Content Display

Node content settings 
Node types: [select the content types you are interested in seeing the list of nodes with same taxonomy term] 
Build modes: Teaser, Full node 
Arguments: token 
Show title: No 

你應該在參數選擇Use tokens from the node the view is attached to。令牌爲[term-id]這是「頂級分類術語的標識」。這個非常重要!!基本上,您將要通過MyVocab節點的分類術語(請參閱http://groups.drupal.org/node/11788#comment-38332)。如果權重最低,則分類詞彙表將成爲節點編輯表單的分類部分中的第一個詞彙表。添加一個參數Taxonomy: Term Id

添加您感興趣的領域例如Node: Title。確保Node: Title由滴答作響Link this field to its Node

做成超鏈接那麼這種觀點是要做的是:

  1. 從節點的MyVocab詞彙當前正在觀看
  2. 採取分類項
  3. 將該參數作爲參數傳遞給視圖display_other_articles_with_same_taxonomy
  4. 列出與顯示的節點具有相同分類術語的所有節點。

那就是它!

如果您使用瀏覽3(目前在素α3寫作的時候)你想有一個塊(現在的文章具有相同的分類項來在節點的主體的末尾),你可以做到這一點在用以下方式:

  1. 忘記附上意見......它不是必需的
  2. 添加的框圖。它應該包含與上述Node Content顯示相同的參數,字段和過濾器。
  3. 您需要稍微修改參數Taxononomy: Term Id的設置:在Action to take if argument is not present:下選擇[x] Provide Default Argument。選擇[x] Taxonomy Term ID from URL。現在確保[] Load default argument from term page未選中,並且[x] Load default argument from node page, thats good for related taxonomy blocks.[x]Limit terms by vocabulary並選擇Series詞彙表。
  4. 請確保您命名該塊並將其放入適當的區域。

注:這個答案是我在How to just show NodeQueue block on included nodes?提供在該方案的要求是,相關的文章了明確選擇,並按照特定的順序列出的答案的子集。它稍微複雜一點,使用我們根本不需要的Nodequeue。

1

視圖爲您提供了添加過濾器的選項。單擊視圖admin UI的過濾器區域中的加號,從列表中選擇Taxonomy,檢查Term或ID,然後填寫您需要過濾的值。

Edit(對於明確指示):

  1. 首先,添加要根據你想從你試圖過濾,如結題的節點顯示的字段部分必要的字段,等

  2. 在參數,單擊加號,然後選擇分類

  3. 檢查分類:術語,然後單擊添加

  4. 單擊更新

在預覽區中加入參數,並點擊預覽測試它。如果它不起作用,那麼您的節點沒有附加的分類,視圖模塊已損壞,或者您沒有遵循指示。

+0

嗯,我不想爲每個學期構建一個塊。我想到在某處使用參數。 – 2010-10-13 15:07:54

+0

然後添加一個參數 - 視圖可以讓你做到這一點。只要按照相同的程序。你不需要建立一個塊 - 它可以放在一個頁面或任何其他地方。 – 2010-10-13 15:10:00

+0

顯然,我嘗試過,但我無法得到它的工作。我也嘗試過使用關係......你能給出一些更詳細的解釋嗎? – 2010-10-13 15:17:38

2

使用關係

  1. 節點1 - >關係1 - >期限//這將是relationships-> taxonomy->項
  2. 期限 - >相關2 - >節點2 //這將是relationships->節點 - >節點
  3. 參數NID到過濾器節點1
  4. 上關係2字段或節點全視圖(你將看到字段添加表格上選擇框,以確定的使用什麼NODE)
+0

非常簡單。 – Evans 2011-03-25 10:25:49

+1

這看起來可能是最好的解決方案,但它非常簡潔,我無法遵循它。多一點細節將會有所幫助。 – 2011-09-26 19:41:16

10

儘管這在技術上是可能的,如一些其他的答案中描述的意見2,查看3具有這種整合內置的。

您可以創建的分類項ID參數,然後選擇「提供默認參數「。那麼這會給你「從網址分類期限ID」和選項「從節點頁面加載默認參數......」

這將允許你把一個頁面的分類和傳遞爲您的視圖塊的一個參數。

注意:視圖3目前在Alpha 3中,但是根據我的經驗,它處於相對穩定的狀態,我正在生產站點上使用它。如果它具有上面那些您認爲有用的功能,請使用它,測試它並在出現任何問題時提交錯誤/修補程序!

+0

-1:視圖3未處於穩定版本。 Drupal模塊有一個很穩定的趨勢,即使在測試階段。這不是爲了詆譭視圖團隊所做的任何事情,但總體而言,使用穩定軟件只是最佳做法。 – 2010-10-14 12:08:36

+1

儘管您認爲Views 3尚未移至最終版本,但視圖3被列爲「支持」。 Drupal模塊經過測試並從開發通道,到alpha版,到beta版,到正式發佈版的方式是讓社區使用它們,測試它們,並報告它們可能遇到的任何問題。只要通過選擇視圖3而不是視圖2(視圖項目頁面做得相當好)來清楚你所得到/放棄的內容,我並不認爲我的答案對這個問題的回答沒有那麼有效。 – markdorison 2010-10-14 20:51:41

+0

+1贊同@markdorison – 2010-10-15 14:54:09

-1

只有一兩件事:

構建模式:預告,全部節點

更好試試這個:

構建模式:全節點

彷彿添加傳情在這裏,我認爲它會獲得每個挑逗項目條款的帖子,我以這種方式解決了內存錯誤。但是當我從這裏刪除Teaser時,它可以正常工作。