gpt4 book ai didi

plone - 基于子域给不同的微型站点换肤

转载 作者:行者123 更新时间:2023-12-01 11:56:59 25 4
gpt4 key购买 nike

总结

根据请求中使用的 URL 寻找有关如何使用 xdv 将不同皮肤应用于同一站点的建议。

正文

要求

我们需要几个微型站点,每个微型站点都有自己的皮肤并且与主站点不同。微型站点应包含主站点内容的子集。主要站点内容的一部分在微型站点上不应该是可见的,但这可以通过简单地从导航、站点地图和 portlet 中隐藏到这些部分的链接来实现。如果用户通过 URL-hacking 找到隐藏的内容也没关系。微型网站的 HTML 应该是可定制的。每个微型站点都应通过主站点的子域访问。即让主站点为 http://site.com , 微型网站将在 http://a.site.com , http://b.site.com

客户希望能够在无需额外开发的情况下激活一个新的微型站点,只需一些 html、css 和图像文件,并将虚拟主机添加到 apache 配置中。

可能的解决方案

collective.xdv 听起来不错,但我们无法弄清楚如何让它根据 URL 选择不同的 theme.html 文件。大多数解决方案似乎都专注于创建基于 Plone 站点子文件夹的子站点。我们不想让微型网站有不同的内容,只是不同的皮肤(以及一些隐藏在导航中的内容),所以我们不想为每个微型网站创建一个新文件夹。

我们想尝试的几个想法是 a) 自定义主模板,让它为每个子域添加一个不同的类到 html 主体,然后使用 xdv 规则查找该类,以及 b) 修补发布者根据子域做某事。

另一种方法是分支 collective.xdv 以修改其“替代主题”,因此它将使用 URL 来选择主题。

还有什么我们可能遗漏的吗?

谢谢!

最佳答案

您应该考虑迁移到最新的 Plone 4.1 版本。使用新的 Shiny 的plone.app.theming(仅适用于 Plone > 4.1),您可以使用主题参数 (consult the documentation here)在你的重氮(以前的 xdv)规则文件中,例如$host 变量(或您可能想要为用例设置的任何自定义参数 - 可通过 plone.app.theming 控制面板进行配置)。如果您坚持使用 Plone3.x/collective.xdv,那么您最好的选择是在您的网络服务器中设置 header ,例如(Nginx 示例)。

location / {
...
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-XDV "true";
proxy_set_header X-Subsite "sub-a";
}

并从请求中访问这些。

关于plone - 基于子域给不同的微型站点换肤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6157889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com