2015-04-29 38 views
1

我有以下情況:我正在構建一個網站,其中包含有關電影製作人及其電影的信息。我爲電影製作人制作了節目類型,其中包括傳記內容等,另一部分是電影作品,其中一部作品參考了一位或多位電影製作人(因爲一部電影可能由其中幾部製作)。Drupal的意見:列表引用的節點,除了用作上下文過濾器的節點

我也有一個名爲'電影'的視圖塊,其中列出了作者是用戶正在看的電影製作人(節點)的所有電影。使用上下文過濾器進行設置非常簡單。

但是現在我想和電影名一起出現在這個區塊中,所有可能已經制作了電影的電影製作人(電影節中的「作者」領域)和與正在觀看的製片人不同的電影製作人。顯示作者字段引用的所有電影製作者節點是立即的,但我想刪除我在上下文過濾器中使用的製片人。我們的目標是讓這樣的事情:

製片人1

  • 電影1
  • 電影2(與電影製片人2
  • 電影3

我有想法,這可能使用PHP的意見和過濾節點引用返回來完成,但我不知道是否有針對一個簡單的解決方案...

感謝

更新:我已成功地使用Views Field View模塊獲取結果,將參考節點(filmmakers)的列表作爲上下文過濾器(節點ID),然後添加另一個上下文過濾器(節點ID)作爲排除,並獲取默認值來自「來自URL選項的節點ID」(即,來自電影製作者的電影製作者頁面嵌入在其中的電影)的信件。將問題保持一段時間以獲得其他可能更有效的替代方案。

回答

0

當我閱讀你的問題時,Views Field View模塊突然出現在我的腦海中,作爲明顯的解決方案(然後我看到了你的編輯)。我認爲這仍然是你最好的選擇。絕對避免使用PHP字段,因爲這從安全的角度來看並不是一個好習慣。如果您關心效率/性能,那麼您應該使用高級選項下的視圖緩存設置。看起來像這個選項總是被看着。

如果您正在尋找其他選項,可以將渲染節點用作視圖樣式而不是字段,然後使用Display Suite生成超出「默認」和「Teaser」的其他顯示模式,使用過濾器,然後使用實體視圖附件(EVA)模塊將視圖作爲顯示模式字段插入。雖然這當然是一種可靠的方法,但它會增加渲染實體的處理開銷,所以您肯定也想要緩存結果。

p.s.您可能會在https://drupal.stackexchange.com/

以上