0

这是一个自定义的 CMS,菜单列表可以在后端编辑,然后需要在前端布局中显示。

菜单控制器在 - /application/modules/admin/controllers

渲染操作的代码是:

<?php

class Admin_MenuController extends CMS_Controller_AdminbaseController
{
public function renderAction()
    {
        $menu = $this->_request->getParam('menu');
        $mdlMenuItems = new Model_MenuItems();
        $menuItems = $mdlMenuItems->getItemsByMenu($menu);

        if(count($menuItems)>0){
            foreach($menuItems as $item){
                $label = $item->label;
                if(!empty($item->link)){
                    $uri = $item->link;
                }else{
                    $uri = '/page/open/id/' . $item->pageId;
                }
                $itemArray[] = array(
                    'label' => $label,
                    'uri'   => $uri
                );
            } 

            $container = new Zend_Navigation($itemArray);
            $this->view->navigation()->setContainer($container);

        } 
    }
}

当在 - /application/modules/admin/views/scripts/menu/render.phtml 中使用

<? echo $this->navigation()->menu(); ?>

它渲染得很好,但我想在/application/layouts/scripts中渲染它。任何帮助深表感谢。

4

2 回答 2

0

您可以通过这种方式在布局中渲染它<?= $this->action('render', 'menu', 'admin');?> 此外,您可以在数组中传递一些参数。希望这对您有所帮助。

于 2013-05-08T15:29:00.443 回答
0

以 Zend_View_Helper 创建 exapmle.php 为例;

在它上面插入功能

 public function abc()
{
//insert your code here
}

然后去 layout.phtml 并调用它

echo $this->abc(); 
于 2013-05-08T12:37:32.627 回答