1
URI 페이지의 경우 Zend_Navigation
및 Zend_Acl
을 독립형 (즉,이 ZF 라이브러리 만)으로 결합하려고합니다. 불행히도 일부 페이지를 보지 않는 역할을하는 경우에도 메뉴에서 볼 수 있습니다 (비록 내가 isAllowed
로 전화하면 예상대로 작동합니다).URI의 페이지에 대한 Zend_Navigation 및 Zend_Acl
$pages = array (
array('id' => '1', 'label' => 'page 1', 'uri' => '1.html', 'visible' => 1),
array('id' => '2', 'label' => 'page 2', 'uri' => '2.html', 'visible' => 1),
array('id' => '3', 'label' => 'page 3', 'uri' => '3.html', 'visible' => 1)
);
$nav = new Zend_Navigation($pages);
$acl = new Zend_Acl();
$acl->addRole(new Zend_Acl_Role(1));
$acl->addRole(new Zend_Acl_Role(2));
$acl->addResource(new Zend_Acl_Resource(1));
$acl->addResource(new Zend_Acl_Resource(2));
$acl->addResource(new Zend_Acl_Resource(3));
$acl->allow(1, 1);
$acl->allow(1, 2);
$acl->allow(1, 3);
$acl->allow(2, 1);
// Role 1 sees 1,2,3 while Role 2 only 1
$view = new Zend_View();
$menu = new Zend_View_Helper_Navigation_Menu();
$menu->setView($view)
->setContainer($nav)
->setTranslator($translate)
->setAcl($acl)->setRole('2'); //tried both this or ->setAcl($acl) ->setRole('2');
echo "2 can't see 2 and 3, right? " . ((!$acl->isAllowed('2', '2'))?"right":"not right") . "\n";
echo $menu->menu()->renderMenu(
null,
array(
'minDepth' => 0,
'maxDepth' => 1,
'onlyActiveBranch' => false,
'renderParents' => true
)
);
가 어떻게 위의 작업을 할 수 있습니다 : 내 문제를 표시하는 코드에 따라
? 감사!!