小编Gia*_*oli的帖子

如何划分Diazo规则的理智方式?

到目前为止,我不止一次遇到过这个问题,现在我想找到一个完美的解决方案:

当你有一个非常复杂的重氮主题时,迟早你会最终将规则分成子集并将它们移动到不同的文件中.

我的习惯是根据它们必须应用的模板将它们分开.现在,选择应该应用哪一种更好的解决方案是什么?

到目前为止,我已经找到了这两个解决方案:

  1. 您可以拥有一个"规则"列表,其中包含标识模板的条件,然后导入正确的外部xml.这里有2个缺点,你必须希望所有条件都是相互排斥的,而"其他"选项,基本上是另一个"规则",其中包含所有先前条件not(),变得非常庞大
  2. 你可以使用a xsl:choose,但似乎这个选项不能完美地工作,因为xsl:otherwise选项并不总是应用,我不确定构造是否在第一次验证时结束 xsl:when

我错过了什么吗?你有其他选择,或者你可以选择哪两个是最好的?

xslt plone diazo

8
推荐指数
1
解决办法
155
查看次数

如何将css类添加到z3c.form按钮

我想将css类添加allowMultiSubmit到zrc.form按钮以避免多次提交警报.按钮的定义如下:

from z3c.form import form
from plone.app.z3cform.layout import wrap_form

class MyForm(form.Form):    
    ...
    @button.buttonAndHandler(_(u"Search"))
    def handleSearch(self, action): 
        ...

MyWrappedFormView = wrap_form(MyForm)
Run Code Online (Sandbox Code Playgroud)

我想要实现的结果是:

<input id="form-buttons-search"
       class="submit-widget button-field allowMultiSubmit"
       type="submit"
       value="Search"
       name="form.buttons.search">
Run Code Online (Sandbox Code Playgroud)

必须是一个简单的方法,但我无法弄清楚如何.

zope plone z3c.form

7
推荐指数
1
解决办法
500
查看次数

没有拾取Plone自定义viewlets.xml

引用http://plone.org/documentation/kb/customizing-main-template-viewlets/tutorial-all-pages(约占页面的1/4)

如果您只需要对Plone Default皮肤中的Viewlet进行重新排序,则只需将原始viewlets.xml从CMFPlone/profiles/default /复制到MyTheme/profiles/default /中,然后编辑复制的文件以使其反映您的需求.

当我这样做时,我没有得到任何改变,不是在重新加载之后,而是在扩建之后,无论如何.我对MyTheme/browser/templates/main_template.pt进行了一些轻微的手动更改,这些更改被拾取,所以不是这样,我的产品完全被忽略了.到目前为止,我没有触及那里的任何基本代码,所以这不是原因.

这是一个plone 3.3.5安装.谁能在这里给我一些线索?需要任何信息,我站在:)

plone genericsetup viewlets

5
推荐指数
1
解决办法
400
查看次数

Plone内容类型特定的Portlet分配

我正在为Plone 4开发一个内容类型,我想阻止它可以从其父对象继承的所有用户,组和上下文portlet.我对此处的文档 - 在portlets.xml中完全感到困惑,<blacklist/>似乎只能解决特定于路径的阻塞问题.<assignment/>看起来像我想要的,但它似乎太具体了 - 我不想管理我的内容类型上所有可能的portlet的分配.

有一些提示我发现自定义特定于内容类型的ILeftColumn和IRightColumn portlet管理器,但我找不到任何好的例子.有没有人有任何提示或建议?我觉得我错过了一些简单的东西.

python portlet plone

5
推荐指数
1
解决办法
886
查看次数

是否有一个很好的参考列表,用于genericsetup导入步骤的名称

是否有通用设置导入步骤名称的综合参考列表?

通用设置导入步骤的名称并不总是与其对应的xml文件的名称匹配,例如'types.xml'有一个名为'typeinfo'的导入步骤.

如果没有列表,我会对找到导入步骤名称的简单方法感到满意.例如,由'registry.xml'文件管理的plone.app.registry的导入步骤名称并不明显,我试图将其称为'注册表'但是这会失败,请参阅下面的代码:

from Products.CMFCore.utils import getToolByName
PROFILE_ID = 'profile-my.package:default'
setup = getToolByName(context, 'portal_setup')
setup.runImportStepFromProfile(PROFILE_ID, 'registry')
Run Code Online (Sandbox Code Playgroud)

结果是:

ValueError: No such import step: registry
Run Code Online (Sandbox Code Playgroud)

python plone genericsetup

5
推荐指数
1
解决办法
323
查看次数

使用plone.app.testing进行ImportError

我目前正在使用Professional Plone 4 Development,同时使用4.1.2的统一安装程序.我不确定在书中的显式构建过程中使用安装程序是否会导致问题,但是我在将示例与安装的实际情况捆绑在一起时遇到了很多麻烦.现在,我遇到了为我正在创建的策略包运行测试的问题.

在包的setup.py中,我有:

extras_require={
    'test': ['plone.app.testing',]
},
Run Code Online (Sandbox Code Playgroud)

develop.cfg中:

[buildout]
parts +=
    test

[test]
recipe = zc.recipe.testrunner
defaults = ['--auto-color', '--auto-progress']
Run Code Online (Sandbox Code Playgroud)

最后,testing.py导入:

from plone.app.testing import (
    PloneSandboxLayer,
    applyProfile,
    PLONE_FIXTURE,
    IntegrationTesting,
)
Run Code Online (Sandbox Code Playgroud)

在使用开发配置运行buildout之后,测试运行器按预期安装到bin/test.但是尝试运行该包的测试给了我以下内容:

$ bin/test -s ctcc.policy
bin/test:239: DeprecationWarning: zope.testing.testrunner is deprecated in favour of zope.testrunner.
/opt/plone41/buildout-cache/eggs/zope.testing-3.9.6-py2.6.egg/zope/testing/testrunner/formatter.py:28: DeprecationWarning: zope.testing.exceptions is deprecated in favour of zope.testrunner.exceptions
  from zope.testing.exceptions import DocTestFailureException
Test-module import failures:

Module: ctcc.policy.tests

Traceback (most recent call last):
  File "/opt/plone41/zeocluster/src/ctcc.policy/ctcc/policy/tests.py", line 2, in …
Run Code Online (Sandbox Code Playgroud)

testing plone buildout

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

Apache 2.2重写规则用于Plone和Zope用于Intranet门户

这个问题将主要针对Zope和Plone管理员和开发人员.

我一直试图使用来自apache,Plone.org和Zope基金会的文档来获取Apache重写规则.我找到了一些小例子,但他们似乎没有足够的解释我可以用来应用我的情况.我为任何为这些组织创建文档的人道歉 - 文档非常出色.我只是没有成功解决这个问题.

概述:上下文是企业防火墙后面的Intranet门户样式设置.我使用Apache作为在zeo服务器(端口8080)上运行的plone实例(name = wiki)的代理.出于安全原因,我不希望任何人直接通过端口8080访问plone站点.我希望Apache在端口80上侦听以重定向/代理到plone站点.这也使我能够隐藏对用户来说过于复杂的URL部分.我有一个单独的DNS服务器指向Plone服务器(Plone hostname = wiki.domain.net),以便减少一些地址复杂性.用户可以输入"wiki"从我们的域内访问服务器.请记住,我的老板还要求将plone站点名称称为"wiki".因此,目前用户可以使用以下约定访问plone:

http://wiki:8080/wiki http://wiki.domain.net:8080/wiki

Apache正在运行但无法通过端口80重定向 - 实际上有人可以直接在端口8080上访问zope/plone.我希望Apache获取流量并重定向到plone实例.

这是我的httpd.conf文件的虚拟主机部分:

    <VirtualHost *:80>
       ServerAdmin admin@wiki.domain.net
       ServerName wiki.domain.net
       ErrorLog logs/wiki.domain.net-error_log
       CustomLog logs/wiki.domain.net-access_log common
       RewriteEngine On
       RewriteRule ^/(.*) http://127.0.0.1:8080/VirtualHostBase/http/%{SERVER_NAME}:80/wiki/VirtualHostRoot/$1 [L,P]
    </VirtualHost>
Run Code Online (Sandbox Code Playgroud)

从我的浏览器我收到:

   `Bad Request

   Your browser sent a request that this server could not understand.
   Apache/2.2.15 (CentOS) Server at wiki Port 80`
Run Code Online (Sandbox Code Playgroud)

Apache error_log $ tail -20 error_log::

   [Fri Jan 13 09:20:37 2012] [notice] Digest: done
   [Fri Jan 13 09:20:37 2012] [warn] mod_wsgi: Compiled for Python/2.6.2. …
Run Code Online (Sandbox Code Playgroud)

apache mod-rewrite zope plone

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