Php ZF2面包屑助手-如何将其呈现为无序列表?
我是Zend Framework2的新手,我想就以下情况寻求建议: 我正在使用ZF2面包屑帮助程序在我的项目上创建面包屑,代码如下:Php ZF2面包屑助手-如何将其呈现为无序列表?,php,html,zend-framework2,breadcrumbs,view-helpers,Php,Html,Zend Framework2,Breadcrumbs,View Helpers,我是Zend Framework2的新手,我想就以下情况寻求建议: 我正在使用ZF2面包屑帮助程序在我的项目上创建面包屑,代码如下: //breadcrumbs.phtml echo $this->navigation('Navigation') ->breadcrumbs() ->setLinkLast(false) // link last page ->setMaxDepth(7)
//breadcrumbs.phtml
echo $this->navigation('Navigation')
->breadcrumbs()
->setLinkLast(false) // link last page
->setMaxDepth(7) // stop at level 7
->setMinDepth(0) // start at level 0
->setSeparator(' »' . PHP_EOL); // separator with newline
渲染时,如下所示:
主页»Lorem Ipsum1»Lorem Ipsum2»当前面包屑
探索源代码:
<div id="breadcrumbs">
<a href="/">Home</a>
»
<a href="/">Lorem Ipsum1</a>
»
<a href="/">Lorem Ipsum2</a>
» Current Crumb
</div>
»
»
»当前碎屑
所以,我的问题是:使用breadcrumbhelper如何获得以下源代码,以便能够按照我想要的方式对Breadcrumb进行样式化
<div id="breadcrumbs">
<ul id="breadcrumbs">
<li><a href="">Home</a></li>
<li><a href="">Lorem Ipsum1</a></li>
<li><a href="">Lorem Ipsum2</a></li>
<li><a href="" class="current">Current Crumb</a></li>
</ul>
</div>
我不确定这是否对您有帮助,但进展应该类似于:
更多信息:使用局部视图脚本渲染面包屑您可以使用视图帮助器将局部视图设置为使用:
<?php $partial = array('application/navigation/breadcrumbs.phtml', 'default') ?>
<?php $this->navigation('navigation')->breadcrumbs()->setPartial($partial) ?>
<?php echo $this->navigation('navigation')->breadcrumbs()->render() ?>
然后,您的部分应用程序将如下所示(application/navigation/breadcrumbs.phtml):
- /
-
/
-
我只是在ZF2上创建了一个Twitter引导面包屑
面包屑
<?php
if (count($this->pages) > 0) :
?>
<ol class="breadcrumb">
<?php
for ($i = 0, $iend = count($this->pages); $i < $iend; $i++) :
$a=$this->pages[$i];
$label = $this->translate($a->getLabel());
?>
<li <?php if ($i + 1 == $iend) : ?> class="active" <?php endif ?> >
<?php if ($i + 1 != $iend) : ?>
<a href="<?php echo $a->getHref(); ?>"><?php echo $label ?></a>
<?php else : ?>
<?php echo $label ?>
<?php endif ?>
</li>
<?php endfor ?>
</ol>
<?php endif ?>
>
并打印在我的模板上
<?php echo $this->navigation()->breadcrumbs('Navigation')->setPartial('partial/breadcrumb.phtml'); ?>
我知道这是一个老问题,但如果有人想要一个简单的render ul li菜单解决方案,您可以在breadcrumbs.phtml中使用此代码:
<?php $container = $this->navigation()->breadcrumbs() ?>
<?php /* @var $container \Zend\View\Helper\Navigation\Breadcrumbs */ ?>
<?php $navigation = $container->getContainer() ?>
<?php /* @var $navigation \Zend\Navigation\Navigation */ ?>
<ul class="breadcrumb">
<li><a href="<?php echo $this->url('soemroute') ?>">Home</a> <span class="divider">/</span></li>
<?php foreach($this->pages as $page): ?>
<?php /* @var $page \Zend\Navigation\Page\Mvc */ ?>
<?php if( ! $page->isActive()): ?>
<li>
<a href="<?php echo $page->getHref() ?>"><?php echo $page->getLabel() ?></a>
<span class="divider">/</span>
</li>
<?php else: ?>
<li class="active">
<?php if($container->getLinkLast()): ?><a href="<?php echo $page->getHref() ?>"><?php endif ?>
<?php echo $page->getLabel() ?>
<?php if($container->getLinkLast()): ?></a><?php endif ?>
</li>
<?php endif ?>
<?php endforeach ?>
</ul>
适用于ZF3
文件:partial/breadcrumbs.phtml
<?php
/**
* Zend breadcrumb partial
*
* @date 12.09.2018 16:47
* @var $this \Zend\View\Renderer\PhpRenderer
* @var $page \Zend\Navigation\Page\AbstractPage
*/
if (0 == count($this->pages)) {
return;
}
?>
<ul class="breadcrumb">
<?php foreach ($this->pages as $page) :?>
<?php if ($page->isActive()): ?>
<li class="active"><?= $page->getLabel() ?></li>
<?php else : ?>
<li><a href="<?= $page->getHref()?>"><?= $page->getLabel() ?></a></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
文件:./config/autoload/navigation.global.php
<?php
return [
'navigation' => [
'breadcrumb' => [
[
'label' => 'Home',
'route' => 'home',
'pages' => [
[
'label' => 'Page - 1',
'route' => 'doc',
'pages' => [
[
'label' => 'Sub page 2',
'route' => 'doc/page',
'params' => ['page' => 'control-panel'],
],
]
],
]
],
],
],
];
我正在使用ZF2导航助手创建面包屑。您发布的示例与以前版本的ZF制作面包屑的方式有关,对吗?可能是stackoverflow链接,但文档是关于zf2的。
<?php
return [
'navigation' => [
'breadcrumb' => [
[
'label' => 'Home',
'route' => 'home',
'pages' => [
[
'label' => 'Page - 1',
'route' => 'doc',
'pages' => [
[
'label' => 'Sub page 2',
'route' => 'doc/page',
'params' => ['page' => 'control-panel'],
],
]
],
]
],
],
],
];
<?= $this->navigation('Zend\Navigation\Breadcrumb')
->breadcrumbs()
->setPartial('partial/breadcrumbs.phtml')
?>