2010-09-10 65 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