Plone技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 643|回复: 0

浅谈Plone中导航树生成模块

[复制链接]
发表于 2017-3-14 21:07:50 | 显示全部楼层 |阅读模式
浅谈Plone中导航树生成模块

导航树相关的模块有以下几个:
  • plone.app.layout  定义基本的navtree 导航策略,并提供建立导航树的函数
    1. buildFolderTree(
    2. (context, obj=None, query={},
    3. strategy=NavtreeStrategyBase())
    复制代码
    上面参数context为上下文提供获取的入口,obj 为当前被浏览的对象,query为查询策略,可以通过adapter覆盖,strategy 为导航树生成策略,同样可以通过adapter覆盖 。buildFolderTree 的构建思路是这样的:先通过query 策略生成的查询获得构成导航树的备选对象;接下来,根据每个对象的的路径,定位其直接父亲,找到父亲后,由导航树生成策略来加工。该加工主要完成两件事情,第一,设置过滤条件,看是否能加入导航树,第二,追加一些补充信息到该备选对象以生成最终的导航树结点newNode对象。通过导航树生成策略处理后,newNode对象被加入到支持父亲对象的children列表当中。最后将newNode插入到这个itemPaths字典当中。
  • plone.app.portlets 建立导航面板
  • Products.CMFPlone 提供基本的sitemap 建立策略,这个策略以plone.app.layout中的导航基本策略为基类。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|Plone技术论坛 ( 湘ICP备07003419

GMT+8, 2017-11-22 05:12 , Processed in 0.125043 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表