Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plone 如何为额外页面设置主题:重氮主题与门户视图自定义_Plone - Fatal编程技术网

Plone 如何为额外页面设置主题:重氮主题与门户视图自定义

Plone 如何为额外页面设置主题:重氮主题与门户视图自定义,plone,Plone,我们的研究所已经运行了Plone 5.0和4.3,并且正在将数十个较旧的Plone站点迁移到它们中 我们已经创建了一个重氮主题,它是为了向所有plone网站提供我们的主题。有一些特定的plone页面,比如必须更改的登录名。我们看到有两种方法可以做到这一点: 门户视图自定义。问题是,我们不能集中托管此模板,也不能在一个地方更改它以在任何地方更改它。这将带来维护问题 重氮。我们可以将所有html放在index.html中,然后通过rules.xml删除不需要的代码。然而,这感觉超级黑客和不雅。索引文

我们的研究所已经运行了Plone 5.0和4.3,并且正在将数十个较旧的Plone站点迁移到它们中

我们已经创建了一个重氮主题,它是为了向所有plone网站提供我们的主题。有一些特定的plone页面,比如必须更改的登录名。我们看到有两种方法可以做到这一点:

门户视图自定义。问题是,我们不能集中托管此模板,也不能在一个地方更改它以在任何地方更改它。这将带来维护问题

重氮。我们可以将所有html放在index.html中,然后通过rules.xml删除不需要的代码。然而,这感觉超级黑客和不雅。索引文件将不断增大

对于这样的事情,最好的方法是什么

我的想法:请告诉我这是好是坏
在Diazo中,rules.xml将加载名为login-rules.xml的子集规则文件。在login-rules.xml中,我放置了一个替换规则。替换规则将包含所有登录HTML。

这里确实有两种问题

一个是决定在哪里干预您的登录页面。二是如何管理自定义代码的部署

如果你所需要的改变仅仅是表达方式的改变,那么Diazo是一个合理的处理方法。请记住,您可能会使用不同的主题文档,规则集会提前决定在什么情况下使用哪个主题html文件

如果您需要的更改超出了简单的表示并需要自定义逻辑,或者如果表示更改开始需要复杂的自定义XSLT,请通过视图自定义进行更改。但不要使用门户视图自定义工具执行此操作。多个站点上需要的定制应该放在源代码管理存储库(如git)中维护的Python包中。这适用于重氮规则、主题文件以及模板

您可以使用ZopeSkel或bob先生为这些包创建骨架。在这些包中使用JBOT方法自定义单个模板文件

当您使用存储库中的文件系统包时,管理部署会容易得多。在运行buildout时,可以在buildout中使用mr.developer自动签出当前版本或包的特定标记或分支。然后,当需要将更改推送到多个服务器时,在每个服务器上运行buildout并重新启动ZEO客户端。这可以通过Ansible之类的工具实现自动化。参见Plone的Ansible剧本中的示例

在上面的文章中,我使用了一些特定于Plone的行话。所有这些都有详细的文档记录