我有一个块视图,在我的page.tpl.php文件中显示如下:
<?php if (!empty($subslider)): ?>
<div id="subslider">
<?php print $subslider; ?>
</div>
<?php endif; ?>
在View Ui中我设置了这个默认的php参数:
$url = explode('/',$_GET['q']);
$slideshow = node_load($url[1]);
if($slideshow->field_slide_ref[0]['nid']){
return $slideshow->field_slide_ref[0]['nid'];
}else{
return '';
}
它抓取页面节点中设置的引用ID。
现在,我的问题是我将page.tpl.php用于其他类型的内容,这些内容不一定是url中具有引用ID的节点。我仍然想将一个参数传递给块View。我如何在模板文件中执行此操作?
由于
编辑:
subslider是一个块区域。我使用Views Slideshow制作幻灯片。
我不认为我可以使用views_get_view_result,因为它只是检索一个数组..我需要实际的幻灯片。
答案 0 :(得分:0)
在我的评论中,我提到了views_embed_view(),它与views_get_view()不同。
$slideshow = views_embed_view('my_slideshow_view', 'block_1', arg(1));
另请注意,您无需爆炸$ _GET ['q']。您应该能够访问URL参数:arg(0),arg(1),arg(2)等....
答案 1 :(得分:0)
我和他争了一段时间。如果你使用view_embed_view()
,那么你应该阅读http://drupal.org/node/823056,然后解释你需要做些什么来使它适用于views_slideshow。
另一个解决方案是使用JQuery。首先,将views_slideshow块添加到您的内容区域。然后在页面<div id="my-rotator"> </div>
上创建一个div容器,以便它出现(即编辑节点)
然后在你的page.tpl.php中添加以下脚本,但是你需要用视图块的名称替换block-views-my_image_rotator-block_2
- 使用Firebug找到它:
<script type="text/javascript">
$(document).ready( function(){
var oNewContainer = $("div#my-rotator");
var oRotator = $("div#block-views-my_image_rotator-block_2");
oNewContainer.append(oRotator);
});
</script>
PS。您可以通过配置块
来控制视图 - 幻灯片显示的页面