2010-09-10 64 views
1

我有一個視圖設置爲接受2個參數。網址是這樣的:播放列表/ video5 /%/%/ rss.xml 它工作正常,如果我提供2個參數,如播放列表/ video5/front/coach/rss.xml。 我有2個「分類:術語」參數drupal PHP代碼驗證空參數的多視圖參數

但我需要它運行即使1或沒有參數提供。它看起來像你可以在PHP代碼下執行此操作:提供默認參數選項 - >默認參數類型: - > PHP代碼。

我用這對第一個:

$arg[0] == 'all'; 
return 'all'; 

我用這對第二個:

$arg[1] == 'all'; 
return 'all'; 

它在預覽工作正常,如果我進入1 ,2或沒有參數,但在瀏覽器中,如果我在url中使用少於2個參數,它會給我一個「Page not found」錯誤。

它炒菜鍋具有以下網址: /playlists/video5/gridiron/all/rss.xml /playlists/video5/gridiron/football/rss.xml

它不具有這方面的工作: 播放列表/ video5 /烤架/ rss.xml

我希望它返回所有值都沒有給出參數時,或者如果只有一個ARG給出,只需使用一個,等...

感謝

回答

3

我會重新排列您的網址,使其看起來像這樣:playlists/video5/rss/%/%這樣,您的參數始終保持最後。然後在你的參數設置中設置:如果參數不存在

措施:顯示所有值

這樣,當你去playlists/video5/rss你會得到每一個值。當你去/playlists/video5/rss/term1你會得到其中有term1的所有值。然後第二個參數的技巧是包含第一個參數的通配符,如:/playlists/video5/rss/all/term2。我相信這隻會包括第二個任期的價值觀。

或者,如果這些都是分類術語,您可能希望將它們合併爲一個參數,並選中說明的框:Allow multiple terms per argument.根據複選框下方的文檔,看起來應該允許您使用類似playlists/video5/rss/term1+term2並顯示具有第一或第二項的所有值。

+0

謝謝。我猜想沒有辦法填補那些空虛的空瓶子是空的嗎?這真的是我想要的,因爲我的一些編輯可能不記得他們需要填寫5個變量,我可能需要將其更改爲更晚。 – EricP 2010-09-10 19:53:41

1

視圖將僅摺疊%,而不是圍繞它的斜槓。因此,當您嘗試使用playlists/video5/rss.xml時,視圖預計爲playlists/video5///rss.xml

要獲得您要查找的內容,您需要複製兩次使用的視圖顯示。

對於第一個副本,請使用playlists/video5/%/rss.xml作爲路徑。在你對這個視圖顯示的參數中,確保第一個參數對gridironfootball有效。

對於第二個副本,請使用playlists/video5/rss.xml。這個視圖顯示將沒有參數。如果你只想讓所有的記錄都顯示出來,那麼你就不必再做任何事情了。但是如果你想提供一個默認的參數,而不是所有的記錄,你會覆蓋視圖顯示並創建一個過濾器而不是參數。


另一個(不太理想的)的選擇是把gridiron/football作爲一個參數,並驗證它的方式。

+0

感謝馬克。我不明白的是,它會要求你在「如果參數不存在時採取的操作:」 - >「提供默認參數」中提供一個默認值,對於「固定條目」,我將「全部」放入。並在視圖預覽中起作用。在「實時預覽」中,它將其顯示爲路徑:「playlist-xml-video/all/all/all/all/all」,它顯示了我填寫的缺失值,因爲我沒有在Arguments文本框中輸入任何內容預覽。 – EricP 2010-09-12 13:44:35