作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
接下来,修改breadcrumb2.admin.inc文件里面的breadcrumb2_overview_breadcrumbs函数,这是修改后的样子:
/**
* Displays the breadcrumb admin overview page.
*/
function breadcrumb2_overview_breadcrumbs(){
$build['#markup'] = views_embed_view('breadcrumbs','default');
return $build;
}
现在我们回到admin/structure/breadcrumbs,看一下效果,我这里预先定义了很多面包屑,这里给出一个简单的截图:
下面的分页功能,是正常的,如果对这个页面,做比较多的测试的话,会发现这里面存在一个问题。在上面的搜索框里面,输出“node/1”,点击应用按钮。此时页面直接跳转到了http://localhost/breadcrumb2/?path=node%2F1&=Apply。这个时候,我们会发现views_embed_view这个函数的局限性了。它无法将当前页面的路径传递给暴露出来的表单。为了解决这个问题,我们将代码修改为:
/**
* Displays the breadcrumb admin overview page.
*/
function breadcrumb2_overview_breadcrumbs(){
//$build['#markup'] = views_embed_view('breadcrumbs','default');
$view = views_get_view('breadcrumbs', 'default');
$view->override_url = $_GET['q'];
return $view->preview();
//return $build;
}
这里面,我们首先使用了views_get_view,获取视图,接着使用$view->override_url覆写URL,这里使用的是当前路径,这样就可以将当前路径传递给暴露出来的表单了。最后使用$view->preview()获取内容。通过这种方式,就解决了前面所说的问题。不过还是有一个很小的问题,但是不影响过程,就是搜索的时候,Overlay不起作用了。