zend_navigation 和模块

发布于 2024-08-27 14:20:41 字数 1538 浏览 8 评论 0原文

我目前正在使用 zend 开发一个应用程序,并且我已将应用程序分成模块。

默认模块是未登录用户访问并可以自由浏览的主要站点。登录时,根据用户类型,您可以转到模块 A 或模块 B,该模块由简单的 ACL 控制。如果您有权访问模块 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 文件?或者将它们保存在一个庞大的导航文件中?

任何提示都会很棒。

谢谢,

格兰特

I am developing an application at the moment with zend and I have seperated the app into modules.

The default module is the main site where unlogged in users access and have free reign to look around. When you log in, depending on the user type you either go to module A or module B, which is controlled by simple ACLs. If you have access to Module A you can not access Module B and visa versa. Both user types can see the default module.

Now I want to use Zend_Navigation to manage the entire applications navigation in all modules. I am not sure how to go about this, as all the examples that I have seen work within a module or very simple application.

I've tried to have my navigation.xml file look like this:

<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>

This if fine for the default module, but how would I go about the other modules to this navigation page? Each module has it's own home page, and others etc.

Would I be better off adding a unique navigation.xml file for each module that is loaded in the preDispatch plugin that I have written to handle my ACLs?? Or keep them in one massive navigation file?

Any tips would be fantastic.

Thanks,

Grant

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

゛时过境迁 2024-09-03 14:20:41

授予,

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

Grant,

I typically create a config directory under each module, and within there I place a navigation.xml document. This helps to mitigate cross dependency issues.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文