我想深入了解视图助手和部分助手的主题。我尝试了一个教程的treeview元素,它工作得很好。这将是一个很好的例子,用我认为的视图帮手来尝试,但我迷路了。在我的理解中,递归部分应该是部分?! 有人可以解释如何将不同的帮助器部分中的以下功能分开吗?以及如何在我看来实现?查看和部分助手的示例
function treeview($array, $currentParent, $currLevel = 0, $prevLevel = -1) {
foreach ($array as $categoryId => $category) {
if ($currentParent == $category['parent_id']) {
if ($currLevel > $prevLevel) echo " <ol class='tree'> ";
if ($currLevel == $prevLevel) echo " </li> ";
echo '<li> <label for="subfolder2">'.$category['name'].'</label> <input type="checkbox" name="subfolder2"/>';
if ($currLevel > $prevLevel) { $prevLevel = $currLevel; }
$currLevel++;
treeview ($array, $categoryId, $currLevel, $prevLevel);
$currLevel--;
}
}
if ($currLevel == $prevLevel) echo " </li> </ol> ";
}
我的观点看起来如下:
require_once('../application/library/Treeview.php');
header("Content-Type: text/html; charset=utf-8");
echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/tree.css');
$this->title = "Treeview Test";
$this->headTitle($this->titel);
$arrayCategories = array();
foreach($this->treeviewitems as $row) :
$arrayCategories[$row['id']] = array("parent_id" => $row['parent_id'], "name" =>$row['name']);
endforeach;
treeview($arrayCategories, 0);
编辑,因为命名和路径问题:
新视图助手头:在我的application.ini
class Application_View_Helper_Treeview extends Zend_View_Helper_Abstract
{
public function treeview($array, $currentParent, $currLevel = 0, $prevLevel = -1) {
路径(正如你可以看到我之前尝试命名的东西)
resources.view.helperPath.Company_View_Helper = "Company/View/Helper"
resources.view.helperPath.Britta_View_Helper = "Britta/View/Helper"
resources.view.helperPath.Application_View_Helper = APPLICATION_PATH "/views/helpers"
resources.view.helperPath.Zend_Dojo_View_Helper = "Zend/Dojo/View/Helper"
现在的路径,在这里我保存视图助手文件:
名称:Treeview.php 路径:C:\ WAMP \ WWW \ riba_doc \程序\意见\助手
错误:致命错误:调用第13行中的C:\ wamp \ www \ riba_doc \ application \ views \ scripts \ treeview \ index.phtml中未定义的函数treeview()
它的工作原理和我理解TECHNIC ;-)) )) –
不,它不工作,在我的旧功能加载之前,请参阅我上面的编辑。应该与命名和路径有一些问题。 –
@ pia-sophie:您在视图脚本中的调用实际是'$ this-> treeview()'还是'treeview()'?在view-script的上下文中,'$ this'是View对象,因为我们已经通过'resources.view'配置了它 - 将知道如何解析类名和路径以找到我们想要的方法调用。 –