zend_navigation和模块 - php

目前,我正在使用zend开发应用程序,并将该应用程序分为模块。

默认模块是未登录用户访问并可以自由浏览的主站点。登录时,根据用户类型,您将转到由简单ACL控制的模块A或模块B。如果您可以访问模块A,则不能访问模块B,反之亦然。两种用户类型都可以看到默认模块。

现在,我想使用Zend_Navigation来管理所有模块中的整个应用程序导航。我不确定该怎么做,因为我看到的所有示例都可以在模块或非常简单的应用程序中使用。

我试图让我的navigation.xml文件看起来像这样:

<configdata>
<navigation>

        <label>Home</label>
        <controller>index</controller>
        <action>index</action>
        <module>default</module>

        <pages>
            <tour>
                <label>tour</label>
                <controller>tour</controller>
                <action>index</action>
                <module>default</module>
            </tour>

            <blog>
                <label>blog</label>
                <url>http://blog.mysite.com</url>                   
            </blog>

            <support>
                <label>Support</label>
                <controller>support</controller>
                <action>index</action>
                <module>default</module>
            </support>

        </pages>

</navigation>
</configdata>

这对于默认模块来说还算不错,但是我如何将其他模块转到该导航页面?每个模块都有自己的主页,等等。

我会为为处理ACL而编写的preDispatch插件中加载的每个模块添加唯一的navigation.xml文件更好吗?还是将它们保存在一个庞大的导航文件中?

任何提示都是太棒了。

谢谢,

格兰特

参考方案

格兰特

我通常在每个模块下创建一个配置目录,并在其中放置一个navigation.xml文档。这有助于减轻交叉依赖问题。

PHP Zend Controller插件被调用两次 - php

我注意到我的插件被调用了两次。我知道这个事实是因为在我的ViewSetup插件中它注册了标题,并且标题两次包含相同的内容。有任何想法吗? 参考方案 您最有可能将呼叫复制到preDispatch或postDispatch。对于尚未调度的每个请求,在Zend_Controller_Front::dispatch的循环内调用这些方法。这意味着将分派设置为false…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP:检查谁看过发送的电子邮件? - php

我正在向某些用户发送电子邮件,并且想知道是谁阅读的,这意味着如果有人阅读了该电子邮件,则将维护一个日志文件,其中包含该用户的电子邮件地址以及日期/时间/ IP。为此,我发送一个带有电子邮件(html模板)的javascript函数,当用户打开该电子邮件时,它仅会警告用户的电子邮件地址,例如:for($n=0; $n<sizeof($checkBox);…

Zend Framework应用程序中的“会话已经开始……”异常 - php

尝试加载Zend Framework应用程序时出现此错误: 致命错误:未捕获的异常 带有消息的“ Zend_Session_Exception” “会议已经由 session.auto-start或session_start()' 在 /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/Session.p…

我这里需要结尾的分号吗? - php

例:<?php $formElement->display()?> 可以吗,还是我应该提供? ?好吧,我猜想PHP解释器足够聪明,可以看到由于结尾的?>,该行已完成并且表达式已完成。对? 参考方案 它不是必需的,但您应该放它,这是一种很好的做法。这样,您需要在这条指令之后添加另一条指令的那一天,它将很好地工作。这是回答您问题的手册页面…