我正在开发 Zend 1.12 应用程序并尝试将样式类分配给布局正文标记。
我发现这个似乎可以处理任务的示例 Bootstrap.php 文件: https ://gist.github.com/fideloper/1302688
它似乎很好地融合在一起,但身体的类总是空白。
有人可以在这里为我指出正确的方向,了解如何将课程分配给身体吗?
谢谢。
我正在开发 Zend 1.12 应用程序并尝试将样式类分配给布局正文标记。
我发现这个似乎可以处理任务的示例 Bootstrap.php 文件: https ://gist.github.com/fideloper/1302688
它似乎很好地融合在一起,但身体的类总是空白。
有人可以在这里为我指出正确的方向,了解如何将课程分配给身体吗?
谢谢。
对我上面引用的代码段进行了小改动。
class AppName_Helper_BodyClass extends Zend_View_Helper_Placeholder_Container_Standalone {
private $_classes = array();
public function __construct($classes = null) {
if(is_array($classes)) {
$this->addClass($classes);
}
}
public function addClass($class) {
if(is_array($class)) {
foreach($class as $k => $c) {
if(is_string($c)) {
if(is_string($k)) {
$this->addClass($k.'-'.$c); //recursion
} else {
$this->addClass($c);
}
} else {
throw new Zend_Exception('Class must be a string - is type: '.gettype($c));
}
}
return $this;
}
if(is_string($class)) {
$this->_classes[] = $class;
return $this;
} else {
throw new Zend_Exception('Class must be a string - is type: '.gettype($class));
}
return $this;
}
public function removeClass($class) {
$key = array_search($class, $this->_classes);
if($key !== false) {
unset($this->_classes[$key]);
}
return $this;
}
public function bodyClass() {
return $this;
}
public function toString() {
return implode(' ', $this->_classes);
}
}
这个片段进入我的布局:
$uri = Zend_Controller_Front::getInstance()->getRequest()->getParams();
$this->bodyClass()->addClass($uri);
结果是这样的(对于模块 - “默认”,控制器 - “auth”,动作 - “signin”):
<body class="controller-auth action-signin module-default">
我正在获取当前请求的参数并将它们映射到正文类。希望这有助于处理这个问题的人。
从该助手的外观来看,您需要调用其中一个方法来添加一个类。从您的控制器之一:
$this->view->bodyClass()->addClass('something');
你就是这样使用它的吗?