来源:http://trac.seagullproject.org/wiki/Howto/Navigation

使用navigation模块

在导航栏中添加新的项

  • 以admin登录,页面会直接进入到'管理模块'页面
  • 进入Navigation(导航)部分
  • 单击‘new section’按钮
  • 在title域中输入你的标题
  • 页面部分:
    • 从这里你可以指向两种类型页面的导航链接,静态或动态。静态页面是指通过Publisher模块进入HTML页面,使用'Static Html Article'文章类型。
    • 要指向动态内容,你可以调用系统中的任何一个模块只要你选择要调用的模块的访问页。例如,如果要调用FAQ模块,首先把'page type'设置为'动态网页',然后在列表中选择'faq.php'。
  • 你可以添加附加的参数(注意:参数的最前面无需添加'?')
  • 勾选'激活'选择框
  • 在'允许浏览'复选框中选择可以看到这个项的用户或组
  • 点击”保存”
  • 完成

如何创建传统的垂直居左的导航栏

Seagull支持垂直居左的菜单导航栏,这只有草拟相应样式表的问题.我们可以有无穷嵌套的垂直菜单,正如我们有默认的水平菜单.

http://css.maxdesign.com.au/listamatic2/index.htm网站上提供了很多例子.

更新:目前有两种新的垂直的导航样式表可以利用 - 检验Navigation的'修改导航栏外观'.

创建属于自己的导航系统

Seagull使用一个'SimpleNav'驱动来创建默认的导航系统.想创建属于自己的导航系统,你可以使用PEAR的HTML_Menu类或自定义的类.请遵循下面的步骤:

  • 在/modules/navigation/classes 下创建一个新的导航类      
  • 每个文件必需以'Nav'三个字母结尾,例如,MyCustomNav.php,它会在系统的配置页面列出.
  • 可以使用'section'数据表或自己创建的表
  • 在全局配置文件/etc/<hostname>.default.conf.ini里,将你的导航驱动的类名列入[navigation]关键字下.
  • 接着确定你的类可以执行render()方法.在controller类自变量的名字与后面他们用到的名字应该相同这是很重要的.你无须给那些参数提供值,这些值是被引用时由方法指定.(查看例子:http://uk.php.net/headers_sent).
<?php
 
        $nav = & new $navClass;
        $nav->render($sectionId, $html);
        // $sectionId - integer: id of currently selected section
        // $html - string: html to build menu
?>

Creating Nav Data to be Loaded with Custom Modules

可以保存你的导航数据的定义这样可以在用户安装你的模块时载入。导航数据的定义是一个数组,必须保存在一个名为navigation.php中的文件。这个文件应当在你的模块中的data目录中。下面是一个例子。

有两种类型的列表:

  • SGL_NODE_ADMIN node – are added to the navigation tree with a Parent Section of 'Admin menu'
  • SGL_NODE_USER node – are added to the navigation tree with a Parent Section of 'User menu'

可以使用另外的结点类型来添加新的结点到上述结点类型中。

  • SGL_NODE_GROUP node – are subsections of the node inserted previously

使用这种逻辑你可以为模块创建对应的结点组,指定SGL_NODE_ADMIN或SGL_NODE_USER为父结点,SGL_NODE_GROUP为子结点。

导航定义是由SGL_Task_BuildNavigation任务解析的。可以查看实例文件中使用SGL_NODE_ADMIN, SGL_NODE_GROUP和SGL_NODE_USER常量的指南。

使用嵌套集

navigation模块使用的Seagull navigation section表使用了嵌套集,这是一种在数据库保存结点层次的更复杂的方法。它允许你在某个层次重轻排序结点。更多详细资料,看:

更多实例

 
howto/navigation.txt · 最后更改: 2010/05/30 00:21 (外部编辑)
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2