标签: zope

更喜欢zope 3而不是grok的原因

我熟悉zope 2并且认为zope 3在很多方面都是优越的,就我使用它而言(主要是使用Five).

现在我正在考虑深入研究zope 3.您是否建议更进一步使用grok,如果是这样,为什么?(如果没有,为什么不呢?:)

python zope grok

3
推荐指数
1
解决办法
715
查看次数

是否可以通过Zope 3浏览器覆盖CMF皮肤中的模板:页面?

我试图覆盖<browser:page ...具有相同name=属性的CMF外观层提供的视图.这在Plone中是可能的,还是浏览器视图只能覆盖其他浏览器视图?

zope plone

3
推荐指数
1
解决办法
358
查看次数

zope.interface可以定义类'__init__方法应该如何看?

我有几个类似的类,它们都将由相同的代码初始化,因此需要具有相同的"构造函数签名".(在动态Python中是否真的有构造函数和签名?我离题了.)

使用zope.interface定义类__init __参数的最佳方法是什么?

我将粘贴一些我用于试验zope.interface的代码以方便讨论:


from zope.interface import Interface, Attribute, implements, verify

class ITest(Interface):
    required_attribute = Attribute(
        """A required attribute for classes implementing this interface.""")
    def required_method():
        """A required method for classes implementing this interface."""

class Test(object):
    implements(ITest)
    required_attribute = None
    def required_method():
        pass

print verify.verifyObject(ITest, Test())
print verify.verifyClass(ITest, Test)
Run Code Online (Sandbox Code Playgroud)

我不能只在ITest中定义一个__ init __函数,因为它将由Python解释器专门处理 - 我想?无论如何,它似乎都不起作用.那么,使用zope.interface定义"类构造函数"的最佳方法是什么?

python zope

3
推荐指数
1
解决办法
962
查看次数

作弊遍历

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

/site/user/inventory
Run Code Online (Sandbox Code Playgroud)

或这个

/site/inventory/user
Run Code Online (Sandbox Code Playgroud)

网址应该是:

/site/inventory
Run Code Online (Sandbox Code Playgroud)

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

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

你会怎么做?

谢谢.

zope plone views traversal

3
推荐指数
1
解决办法
172
查看次数

如何在Plone 4中没有zope 2皮肤层的情况下使用zope 3/ztk图层?

我们正在尝试仅使用ZTK(Zope 3)视图开发我们的Plone 4.1产品,因此没有定义门户皮肤.我正在尝试覆盖来自不同包的视图,并且在过去使用了layer属性来执行此操作.

plone.theme允许您使用"图层"界面标记请求,条件是当前选定的皮肤.如果我的产品已安装,我想用"图层"界面标记请求,而不创建外观图层.我怎么做?

我已经在zcml中定义了我的界面

<interface
    interface=".interfaces.IThemeSpecific"
    type="zope.publisher.interfaces.browser.IBrowserSkinType"
    name="My Theme"
/>
Run Code Online (Sandbox Code Playgroud)

并宣布

from zope.interface import Interface
class IThemeSpecific(Interface):
    """Marker interface for skins part of 'My Theme'
    """
Run Code Online (Sandbox Code Playgroud)

zope plone

3
推荐指数
1
解决办法
163
查看次数

Zopeskel ImportError:无法导入名称BasicNamespace

我的virtualenv python中有zopeskel 2.21.2,它工作正常.同时,我的Plone buildout(位于~/.buildout/eggs)中也有相同版本的zopeskel .但是,它不起作用.运行zopeskel --list会抛出以下错误:

ImportError: cannot import name BasicNamespace
Run Code Online (Sandbox Code Playgroud)

这个链接的建议说要取出鸡蛋.我已经删除了鸡蛋以及〜/ .buildout/cache/dist /中的缓存包,并再次运行buildout.但问题仍然存在.有趣的是,同一个buildout中的贴图脚本正在工作.

buildout.cfg中的zopeskel部分如下所示:

[zopeskel]
recipe = zc.recipe.egg
eggs =
    ZopeSkel
    Paste
    PasteDeploy
    PasteScript
    zopeskel.dexterity
    ${instance:eggs}
Run Code Online (Sandbox Code Playgroud)

我的buildout中使用的一些包版本:

'/home/user/.buildout/eggs/Paste-1.7.5.1-py2.6.egg',
'/home/user/.buildout/eggs/distribute-0.6.24-py2.6.egg',
'/home/user/.buildout/eggs/PasteDeploy-1.3.4-py2.6.egg',
'/home/user/.buildout/eggs/PasteScript-1.7.4.2-py2.6.egg',
Run Code Online (Sandbox Code Playgroud)

完全追溯:

[user@rizal myplone.site]$ ./bin/zopeskel --list
Traceback (most recent call last):
  File "./bin/zopeskel", line 346, in <module>
    import zopeskel.zopeskel_script
  File "/home/user/.buildout/eggs/ZopeSkel-2.21.2-py2.6.egg/zopeskel/__init__.py", line 2, in <module>
    from zopeskel.basic_namespace import BasicNamespace
  File "/home/user/.buildout/eggs/ZopeSkel-2.21.2-py2.6.egg/zopeskel/basic_namespace.py", line 2, in <module>
    from zopeskel.vars import var, DottedVar, StringVar, BooleanVar, TextVar …
Run Code Online (Sandbox Code Playgroud)

zope plone

3
推荐指数
1
解决办法
585
查看次数

更改Zope模板中的属性

我正在为包含文件的对象编写模板.我正在按照主题构建块说明进行操作.

<a tal:attributes="href item/id">foo</a>
Run Code Online (Sandbox Code Playgroud)

这使得liks下载文件,如下所示:

<a href="foo">foo</a>
Run Code Online (Sandbox Code Playgroud)

但我希望该链接指向文件的视图页面,显示其标题,描述以及允许下载它.所以我想获得下一个输出:

<a href="foo/view">foo</a>
Run Code Online (Sandbox Code Playgroud)

如何生成该属性?

zope plone zpt template-tal

3
推荐指数
1
解决办法
83
查看次数

如何在Zope2应用程序根目录中(在Plone中)呈现plone-overview.pt模板?

Plone有一个很好的黑客,可以消除Zope2附带的无聊的Zope Quickstart页面.它改变了这个:

在此输入图像描述

进入:

在此输入图像描述

相关代码位于Products/CMFPlone/browser/admin.zcml(https://github.com/plone/Products.CMFPlone/blob/master/Products/CMFPlone/browser/admin.zcml#L35):

  <browser:page
      for="OFS.interfaces.IApplication"
      name="plone-overview"
      class=".admin.Overview"
      permission="zope.Public"
      template="templates/plone-overview.pt"
      />
Run Code Online (Sandbox Code Playgroud)

这解释了为什么http://localhost:8080/plone-overview渲染plone-overview模板,但为什么/如何应用程序root,即http://localhost:8080呈现相同的模板?

zope plone

3
推荐指数
1
解决办法
179
查看次数

在不触摸模板的情况下自定义Plone视图类

如果视图是这样注册的,则使用zcml中的模板定义:

<browser:page
    name="original-view"
    class=".original_view.View"
    permission="zope2.View"
    for="*"
    template="original_template.pt"
    />
Run Code Online (Sandbox Code Playgroud)

我想在我的产品中只定制他的课程,有没有办法在不定制模板的情况下做到这一点?

zope plone zcml

3
推荐指数
1
解决办法
138
查看次数

如何检索Zope文件系统的内容?

我在Zope/Plone上运行了一个网站好几年,直到服务器灾难性地崩溃.我没有兴趣再次建立这个网站(我也不相信我甚至可以,因为它所基于的Zope和Plone的版本已经过时至少六年了),但我很乐意能够获取内容以便我可以使用它.它存储在Zope文件系统中(即Plone-2.5.3/zeocluster/server/var/Data.fs).是否有任何工具可以让我编写一个Python脚本来将内容保存到文件中?或者是否有其他方法可以获得重新安装整个网站的内容?Data.fs超过半千兆字节,所以那里有一点点.

我在Ubuntu 14.04上运行Python 2.7和3.4,如果相关的话.

python zope plone

3
推荐指数
1
解决办法
366
查看次数

标签 统计

zope ×10

plone ×8

python ×3

grok ×1

template-tal ×1

traversal ×1

views ×1

zcml ×1

zpt ×1