这是我的助手类
class Zend_View_Helper_CommonArea extends Zend_View_Helper_Abstract {
public function commonArea()
{
?>
<div class="clear"></div>
<div id="quick_search">
<div class="search">
<strong>QUICK SEARCH </strong>
<input type="text" name="keyword" id="keyword" value="Enter keywords" class="form" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" />
<select name="select" id="select" class="selectstyled">
<option>Prefered Location</option>
<option>Prefered Location</option>
<option>Prefered Location</option>
<option>Prefered Location</option>
<option>Prefered Location</option>
</select>
</div>
<div class="bt_box">
<input name="find" type="submit" class="find" id="search" value="Find Jobs" />
</div>
<div class="resume"><a href="jobseeker.html"><img src="images/resume.jpg" alt="" /></a></div>
</div>
<?php
}
}
我的问题是,我需要为这个类添加一个新函数。我试过添加像
这样的新功能public function addBox()
{
?>
<div id="add_right_box"style="height:500px;"><h3 class="add_h2">Width 210px</h3></div>
<?php
}
到上面的课程,但我得到了类似的东西 在注册表中找不到名为“AddBox”的插件;
这里我需要知道我可以向助手类添加更多功能,如果是,这怎么可能。
答案 0 :(得分:2)
首先,您应该返回所有输出,而不是直接回显。
通常,类不应回显或打印或以其他方式生成输出。相反,它应该返回要打印或回显的值。应该适当地转义返回的值。
当您从视图中调用$this->commonArea()
时,它将加载“CommonArea”类,然后调用匹配方法。因此,调用$this->addBox()
将查找“AddBox”类 - 它不会知道您希望它成为“CommonArea”插件的一部分。
如果要从同一个插件调用多个方法,请让匹配方法返回插件的实例:
public function commonArea(){
return $this;
}
然后调用这样的方法:
$this->commonArea()->addBox();
$this->commonArea()->display(); //assuming you renamed the original method to 'display'
您可以查看navigation helper或placeholder helper以查看此模式。