作弊遍历

时间:2011-03-20 15:59:55

标签: views plone traversal zope

我正在开发一个plone4网站,每个用户都有一个可排序的项目清单。 ATFolder的folder_content视图非常适合这种情况。唯一的问题是,而不是像这样的URL:

/site/user/inventory

或者

/site/inventory/user

网址应为:

/site/inventory

我想过几个解决方案,但每个人都有自己的疑虑。

  • 根据经过身份验证的用户,使广告资源内容动态化。我甚至不知道这是否可以在plone上使用。
  • 以某种方式欺骗横向机制,所以/ site / inventory render / site / inventory / user。
  • 在渲染视图之前更改上下文。再说一次,不知道是否可能。
  • 将库存作为ATCTContent的子类,将库存数据作为注释存储在用户身上,并自行开发订购代码。这是我试图避免的选择。

你会做什么?

感谢。

2 个答案:

答案 0 :(得分:8)

好吧,定义inventory视图然后使用Authenticated User来呈现它的内容会很容易,这可能是对存储在/ site / users / user的有序文件夹的简单委派/文件夹。

您必须记住的一件事是在遍历之后发生用户身份验证。这意味着当实例化视图时(调用它的__init__方法),还没有用户确定,因为在遍历期间会发生这种情况。在视图__call__或其模板中查找您的用户。

答案 1 :(得分:3)

文件夹内容显示不是文件夹内容的内容是crraaaaAAAAzytalk。 :)不要这样做。每个用户都有一个文件夹(/ inventory / user)或者创建一个名为inventory.html的自定义视图。你可以制作/库存笑/库存用户,但这是试图将Plone变成非ploneish的一步,这就是一个痛苦的世界。

我不知道为什么你不能只称它/库存/用户?看起来很简单。然后通过仪表板链接在用户视图中粘贴一个操作,并完成! : - )

Plone是一个内容管理系统。使用它,因为它应该被使用,你会很高兴。试图强迫它去做它不想要的事情就像试图用装饰艺术雕塑来制造跑车。它可能最终看起来很棒,但它不会运行得很好。 : - )