3.3 使用views_embed_view

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

我们将<div id="jishu-right">和它里面的所有内容全部删除,在对应的位置,添加以下代码:

<?php print views_embed_view('news','block'); ?>

这样就把“最新公告/最新新闻”替换为我们Views的实现了。刷新首页,发现没有正常显示出来。

1.png 

我仔细检查了一下,原来首页是<div id="jishu-right">,而其它页面则是<div id="jishu-right2">,就这一点差别。怎么办?我们可以将视图news里面的区块显示克隆一份,对于克隆出来的区块,我们使用同样的配置,同样的模板文件,只有一点不同,就是为它单独创建一个views-view--news--block-1.tpl.php,里面的内容也是复制过来的,只不过,我们将<div id="jishu-right2">替换为了<div id="jishu-right">。当然,对于附件显示,我们也需要将它附加到新建的区块上面来。

最后,我们将嵌入视图的代码修改为:

<?php print views_embed_view('news','block_1'); ?>

这样就正常了。

我们来看左边,幻灯下面的两段HTML

2.png 

<div id="jishu-left">下面包括<div class="tupo"><div class="zhichi">,我们分别为它们两个创建两个自定义区块,然后在对应的位置输出对应的区块。这是创建好的区块,我们没有将它们放到任何区域:

3.png 

这是替换后的代码:

         <div id="jishu-left">

<?php

  $block = module_invoke('block', 'block_view', 12);

  print $block['content'];

?>

<?php

  $block = module_invoke('block', 'block_view', 13);

  print $block['content'];

?>

         </div>

到目前为止,一切都好,只有一点小问题:

4.png 

技术支持,这部分,没有显示全,出现了滚动条。我们的解决办法,是添加一段CSS代码,添加到sites\all\themes\snt\css下面的custom.css文件中:

#jishu #jishu-left  .zhichi ul{

  width:699px;

}

#jishu #jishu-left  .zhichi{

  overflow-x:hidden;

  overflow-y:hidden;

}

这样就搞定了,有时候CSS覆写还是很方便的。



Drupal版本: