2011-03-20 53 views
3

我正在开发一个plone4站点,每个用户都有一个可排序的项目库存。 ATFolder的folder_content视图对此非常理想。唯一的问题是,而不是像这样的URL:作弊遍历

/site/user/inventory 

或本

/site/inventory/user 

的URL应该是:

/site/inventory 

我在几个解决方案思想,但每人们有自己的疑虑。

  • 根据经过验证的用户使库存内容为动态。我甚至不知道这是否可能在plone上。
  • 不知怎的,作弊的横向机制,所以/网站/库存渲染/网站/库存/用户。
  • 在渲染视图之前更改上下文。再次,不知道是否可能。
  • 使库存成为ATCTContent的子类,将库存数据作为注释存储在用户上,并由我自己开发订购代码。这是我试图避免的选项。

你会怎么做?

谢谢。

+0

这应该如何实现,尤其是当库存用户的库存可能具有相同的库存项目ID时?在这里处理ID冲突是没有办法的。当然,您可以根据自己的需要使用重写规则自由地重写网站URL。但是,这不会解决您使用相同ID的问题。 – 2011-03-20 17:26:25

回答

8

那么,很容易定义一个inventory视图,然后使用Authenticated User来呈现它的内容,这可能是存储在/ site/users/user /文件夹中的有序文件夹的简单委托。

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

3

使文件夹内容显示不是文件夹内容的内容是crraaaaAAAAzytalk。 :)不要这样做。要么为每个用户(/ inventory/user)创建一个文件夹,要么创建一个名为inventory.html的自定义视图。你可以制作/盘点sho /库存用户,但这是让Plone变得非笨拙的东西的一个步骤,这就是一个痛苦的世界。

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

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

+0

是的,我知道我在和Plone战斗,那不是一件好事。但要求是要求。 – jdinunzio 2011-03-22 14:11:16