2010-04-02 4 views
1

젠드 프레임 워크와 함께 dijits를 사용하여 카테고리 및 하위 카테고리의 트리를 표시하려고합니다. 좋은 모범을 찾을 수 없었습니다. 이것은 내가있어 무엇 :젠드 프레임 워크를 사용하여 트리 dijit 표시

<?php 
    $this->dojo()->requireModule('dojo.data.ItemFileReadStore'); 
    $this->dojo()->requireModule('dijit.Tree'); 
    $this->dojo()->requireModule('dojo.parser'); 
?> 

<div dojoType="dojo.data.ItemFileReadStore" url="/Subcategories/loadtree" jsId="store"></div> 
<div dojoType="dijit.tree.ForestStoreModel" jsId="treeModel" store="store" rootId="root" rootLabel="List of Categories" childrenAttrs="children" query="{type:'category'}"></div> 
<div dojoType="dijit.Tree" model="treeModel" labelAttrs="ListOfCategories"></div> 

그것은조차하려고하지 않는 것 :

class SubcategoriesController extends Zend_Controller_Action{ 
    ..... 
public function loadtreeAction() 
{ 

Zend_Dojo::enableView($this->view); 
Zend_Layout::getMvcInstance()->disableLayout(); 

//Creating a sample tree of categories and subcategories 
$a["cat1"]["id"] = "id1"; 
$a["cat1"]["name"] = "Category1"; 
$a["cat1"]["type"] = "category"; 

$subcat1 = array("id" => "Subcat1","name" => "Subcategory1" , "type" => "subcategory"); 
$subcat2 = array("id" => "Subcat12","name" => "Subcategory12" , "type" => "subcategory"); 
$a["cat1"]["children"] = array($subcat1,$subcat2); 

$treeObj = new Zend_Dojo_Data('id', $a); 
$treeObj->setLabel('name'); 
$this->view->tree = $treeObj->toJson(); 
} 
    .... 
} 

그리고 내보기에 :

은 기본적으로 내 작업으로 다음 코드를 가지고 나무를 전혀로드하지 마십시오.

아무 도움이 주어지지 않습니다.

+0

나는 100 % 확신 할 수 없으므로 이것은 나치가 나를 투표 할 수 없도록하는 의견이다 ... 보기/레이아웃에 다음을 추가해야 할 수도있다. $ this-> dojo() -> setLocalPath ($) this-> baseUrl(). '/ scripts/dojo/dojo.js') -> addStyleSheetModule ('dijit.themes.tundra'); $ this-> dojo() -> setDjConfig ('parseOnLoad', 'true'); $ this-> dojo() -> enable(); echo $ this-> dojo(); –

답변

2

먼저 별도의 작업을 만들어야합니다. 부하에 다른 디스플레이에 대한 하나 :

public function indexAction() 
{ 
    Zend_Dojo::enableView($this->view); 
    $this->view->dojo()->setDjConfigOption('parseOnLoad', true); 
} 
public function loadtreeAction() 
{ 
    //Creating a sample tree of categories and subcategories 
    $a["cat1"]["id"] = "id1"; 
    $a["cat1"]["name"] = "Category1"; 
    $a["cat1"]["type"] = "category"; 

    $subcat1 = array("id" => "Subcat1","name" => "Subcategory1" , "type" => "subcategory"); 
    $subcat2 = array("id" => "Subcat12","name" => "Subcategory12" , "type" => "subcategory"); 
    $a["cat1"]["children"] = array($subcat1,$subcat2); 

    $treeObj = new Zend_Dojo_Data('id', $a); 
    $treeObj->setLabel('ListOfCategories'); 
    $this->view->tree = $treeObj->toJson(); 
} 

그리고 당신은 당신이 레이아웃을 사용하는 경우, 일부 부품에 배치해야합니다 (귀하의 의견/스크립트/index.phtml에서

setDjConfigOption('parseOnLoad', true) 

을 잊어야 해달라고, 난 당신이하자) 그 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title></title> 
<?php 
$this->dojo()->enable(); 
$this->dojo()->requireModule('dojo.data.ItemFileReadStore'); 
$this->dojo()->requireModule('dijit.Tree'); 
$this->dojo()->requireModule('dojo.parser'); 
echo $this->dojo(); 
echo $this->dojo()->addStylesheetModule('dijit.themes.tundra'); 
?> 
</head> 
<body class="tundra"> 
<div id="content"> 
<div dojoType="dojo.data.ItemFileReadStore" url="http://194.79.142.38:1080/rbplm/public/home/index/loadtree" jsId="store"></div> 
<div dojoType="dijit.tree.ForestStoreModel" jsId="treeModel" store="store" rootId="root" rootLabel="List of Categories" childrenAttrs="children" query="{type:'category'}"></div> 
<div dojoType="dijit.Tree" model="treeModel" labelAttrs="ListOfCategories"></div> 
</div> 
</body> 
</html> 

그리고 단지 loadtree.phtmln에서 :

 <?php echo $this->tree ?> 
+0

Welcome to stackoverflow.com –

관련 문제