在视图脚本中使用 css DIV 区域
Using css DIV areas in View Script
在我的布局脚本中,我有一些 css 区域,例如:
<div id="section-navigation">
Test
</div>
如何用其他数据覆盖视图脚本中的这些部分?我想动态覆盖它。
这是我的 layout.phtml
的片段
<head>
<?php echo $this->headMeta(); ?>
<?php echo $this->headTitle(); ?>
<?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/grid.css'); ?>
</head>
<body>
<div id="container">
<div id="header">
<h1><img src="./Images/cheyenne.jpg" alt="cheyenne-IT consulting" width="490" height="115" /><?php echo $this->escape($this->title); ?></h1>
</div>
<div id="navigation">
<ul>
<li><a href="<?php echo $this->url(array('controller'=>'arbeitskalender', 'action'=>'index'));?>">Arbeitskalender</a></li>
</ul>
</div>
<div id="content-container">
<div id="section-navigation">
test
</div>
<div id="aside">
test
</div>
<div id="content">
<?= $this->layout()->content ?>
</div>
</div>
<div id="footer">
copyright 2014
</div>
</div>
</body>
表单布局中可能还有另一个 属性?
$this->layout()->content
如果您在导航中的链接 <div>
会针对每个操作发生变化,并且您希望对其进行动态设置,那么您可以创建一个自定义视图脚本文件并将其呈现在您的布局中。
像这样:
navigation.phtml:
<ul>
<li><a href="<?php echo $this->link; ?>"><?php echo $this->name; ?></a></li>
</ul>
然后将其添加到 module.config
中的 view_manager
:
'view_manager' => array(
'template_map' => array(
//.....
'navigation/view' => __DIR__ . '/../view/layout/navigation.phtml',
),
在您的操作(控制器)中:
$url = $this->url()->fromRoute('route-name',
array('controller'=>'arbeitskalender',
'action'=>'index')
);
$navlinks = new ViewModel(
array(
'link' => $url ,
'name' => 'Arbeitskalender'
)
);
$navlinks ->setTemplate('navigation/view');
$nav= $this->getServiceLocator()->get('Zend\View\Renderer\RendererInterface')
->render($navlinks);
$viewLayout = new ViewModel(array('nav' => $nav));
return $viewLayout;
在您的布局中:
<div id="section-navigation">
<?php echo $this->nav; ?>
</div>
您还可以看到 Partial Helper。创建这样的部分脚本:
<?php // partial.phtml ?>
<ul>
<li><a href="<?php echo $this->link; ?>"><?php echo $this->name; ?></a></li>
</ul>
然后使用以下代码从您的布局脚本中调用它:
<div id="section-navigation">
<?php echo $this->partial('partial.phtml', array(
'link' => $this->link,
'name' => $this->name)); ?>
</div>
在我的布局脚本中,我有一些 css 区域,例如:
<div id="section-navigation">
Test
</div>
如何用其他数据覆盖视图脚本中的这些部分?我想动态覆盖它。
这是我的 layout.phtml
的片段<head>
<?php echo $this->headMeta(); ?>
<?php echo $this->headTitle(); ?>
<?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/grid.css'); ?>
</head>
<body>
<div id="container">
<div id="header">
<h1><img src="./Images/cheyenne.jpg" alt="cheyenne-IT consulting" width="490" height="115" /><?php echo $this->escape($this->title); ?></h1>
</div>
<div id="navigation">
<ul>
<li><a href="<?php echo $this->url(array('controller'=>'arbeitskalender', 'action'=>'index'));?>">Arbeitskalender</a></li>
</ul>
</div>
<div id="content-container">
<div id="section-navigation">
test
</div>
<div id="aside">
test
</div>
<div id="content">
<?= $this->layout()->content ?>
</div>
</div>
<div id="footer">
copyright 2014
</div>
</div>
</body>
表单布局中可能还有另一个 属性?
$this->layout()->content
如果您在导航中的链接 <div>
会针对每个操作发生变化,并且您希望对其进行动态设置,那么您可以创建一个自定义视图脚本文件并将其呈现在您的布局中。
像这样:
navigation.phtml:
<ul>
<li><a href="<?php echo $this->link; ?>"><?php echo $this->name; ?></a></li>
</ul>
然后将其添加到 module.config
中的 view_manager
:
'view_manager' => array(
'template_map' => array(
//.....
'navigation/view' => __DIR__ . '/../view/layout/navigation.phtml',
),
在您的操作(控制器)中:
$url = $this->url()->fromRoute('route-name',
array('controller'=>'arbeitskalender',
'action'=>'index')
);
$navlinks = new ViewModel(
array(
'link' => $url ,
'name' => 'Arbeitskalender'
)
);
$navlinks ->setTemplate('navigation/view');
$nav= $this->getServiceLocator()->get('Zend\View\Renderer\RendererInterface')
->render($navlinks);
$viewLayout = new ViewModel(array('nav' => $nav));
return $viewLayout;
在您的布局中:
<div id="section-navigation">
<?php echo $this->nav; ?>
</div>
您还可以看到 Partial Helper。创建这样的部分脚本:
<?php // partial.phtml ?>
<ul>
<li><a href="<?php echo $this->link; ?>"><?php echo $this->name; ?></a></li>
</ul>
然后使用以下代码从您的布局脚本中调用它:
<div id="section-navigation">
<?php echo $this->partial('partial.phtml', array(
'link' => $this->link,
'name' => $this->name)); ?>
</div>