如何创建基于ID获取角色或区域的网站范围功能。 还有一些事情,比如在视图中根据(实际/目标)的计算返回特定颜色。 我想在视图和动作中使用它。
我试过,创建一个类并在库中设置它:
class Colouring
{
/*
* Array of the class for specifically the GEP portal theme
*/
private $colours_class = array( 0 => 'color-grey',
1 => 'color-grey',
2 => 'color-orange',
3 => 'color-blue',
4 => 'color-green'
);
/*
* Returns colour based on actual and target
*/
private static function getColour($actual, $target)
{
...return someValue
}
}
路径:Zend_Site/library/
我收到错误:
Fatal error: Class 'Colouring' not found in
那么我认为也许我需要一个View_Helper:
所以我改变了路径:My/View/Helper/Colouring.php
和类:My_View_Helper_Colouring
将此添加到config.ini:resources.view.helperPath.My_View_Helper_ = "My/View/Helper/"
我用:
$viewHelperObj = $this->view->getHelper('Colouring');
$viewHelperObj->getColour($this->value, $this->divisor);
给予:Fatal error: Call to a member function getHelper() on a non-object
我也试过了:
$this->getColour($this->value, $this->divisor);
哪个给:
Plugin by name 'GetColour' was not found in the registry
因此,没有真正了解正确的做法,以便为站点范围内的事物添加静态方法,甚至是jsut一个站点范围的类和注册方式。我会使用插件,查看帮助程序,动作帮助程序还是只使用严格的类。
我正在使用Zend 1.
答案 0 :(得分:1)
首先,您必须重命名该方法:getColour()
to Colouring()
并将其公开。
然后尝试从这样的视图中调用它:
echo $this->Colouring('biz', 'bazz');