问题标签 [diazo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
plone - 对重氮主题和 ZCML 资源目录使用相同的文件夹
使用Resource Folder和Diazo Resources的文档,猜想我可以分别创建一个资源文件夹,如下所示:
和
我的问题是:我可以使用同一个目录来满足两个资源文件夹注册的需要吗?如果不合适,应该发生什么问题?
xml - Plone - XSLT/Diazo - 替换 Plone 门户-个人工具标记
我正在尝试替换 Plone 门户-个人工具菜单的标记,但遇到了一些问题。第一个问题是我不确定我的 XSL 转换是否正在运行。我把它放在我的标签里。我的 rules.xml 文件如下:
这是对的?我的 XSL 转换不完整,因为我什至不确定它是否正在运行,但我要转换的代码是:
进入这个:
更新:
关于 Plone 如何显示登录按钮与用户操作菜单,我还有一个次要问题。如何修改规则以在用户未登录时显示登录按钮,而在用户登录时仅显示用户操作菜单?在我添加注释/信息之后,我修改的 rules.xml 位于这篇文章的底部。
基于 Dan 修改的截图
在对 Dan 提供的解决方案进行了一些细微更改后,我在用户操作菜单中显示用户名,并在用户登录时显示用户操作菜单的下拉菜单。当用户注销时,我现在所拥有的只是一个没有登录按钮的空 Twitter Bootstrap 按钮。
登出截图
登录截图
当用户未登录时,我希望我的 HTML 标记看起来与此类似:
但是我的 HTML 标记当前显示为用户未登录时:
最后我修改了rules.xml
提前致谢!
plone - Ajax Modal Popups return blank in my Diazo theme
This is a newly created Diazo theme. When the theme is active I've found that clicking anything that should trigger a modal pop up results in a blank modal box.
The theme works well in all other aspects apart from this. TinyMCE works as expected including the popup menu for TinyMCE.
All other ajax popups including those triggered by deleting an object via the Action menu and changing the displayed item via the display menu do not work.
see the screenshot:
cookies - 如何在没有 cookie 的情况下提供静态重氮资源?
使用 Diazo 主题时,静态资源当前需要授权才能显示。以下是静态主题的注册方式:
如果您从这些资源中剥离 cookie(在本例中是通过 varnish),您会在每个静态资源的日志中看到以下错误:
因此,如果没有 cookie,没有身份验证,那么您会因为权限而被拒绝Access contents information
。有没有办法在没有这个限制的情况下提供静态重氮资源?
resources - 如何让 Plone 门户注册表查找和烹饪新型静态资源?
我使用 id 注册的所有 JS++theme++mythemename/js/myscript.js
都给我以下错误portal_javascripts
:(resource not found or not accessible)
我知道 id 是正确的,因为我可以访问localhost/mysite/++theme++mythemename/js/myscript.js
(即使 Diazo 被禁用)。
如果在开发模式下,资源将在最终 HTML 上交付。然而,在生产模式下,烹饪过程会默默地失败。或者差不多。除了获得与 上显示的缓存键不同的缓存键外portal_javascripts/manage_jsComposition
,我通过访问熟文件看到以下错误消息:
/* XXX ERROR -- access to '++theme++mythemename/js/myscript.js' not authorized */
关于如何处理这些的任何提示?或者我真的需要让它们生吃吗?
css - 从特定容器中排除主题
我正在为一个由 plone 使用重氮和至少部分 twitter-bootstrap 管理的网站制作主题。就我个人而言,我对这种组合不太满意,但它是这样要求的。现在,前几天我被告知,将有一些 portlet 以他们自己的设计出现,在编辑器中设置样式(编辑器似乎直接将样式写入 html)。这意味着不应应用进一步的主题,但引导 css 会识别该模式并劫持它。
我试图通过使用一种形式来阻止它,<notheme css:if-content=".theStaticPortlet" />
但最终会在找到这样的容器时在整个站点上阻止该主题。
有没有办法让特定的容器/类不受主题的困扰,而它周围的一切都像以前一样保持主题?
ajax - 使用重氮显示 Plone folder_rename_form
我<notheme if="$ajax_load" />
在 rules.xml 中,但我发现我还必须添加<notheme if-path="folder_rename_form/" />
以便显示“操作”菜单中的重命名覆盖。但是有了这个规则,如果我去 folder_contents,选择一个项目并从那里点击重命名,我会得到一个无主题的页面。我可以使用什么规则让重命名在两个地方都正常工作?
我从#portal-column-content 中提取所有内容,所以#content 就在那里。
plone - Diazo 和 xslt “调用模板”
我正在尝试在重氮规则中使用 xslt“调用模板”指令,因为我不想“重复我自己”。
但是,当我设置 xsl:template 并在规则中使用 xsl:call-template 调用它时,我从重氮调试器中获得了一个异常
元素模板只允许作为样式表的子元素
怎么了?我可以使用 call-tempalte 吗?如果没有,我怎么不能在 xslt 模板中重复我自己?
例子:
我发现重氮可以在定义为 xsl:stylesheet (https://github.com/plone/diazo/blob/master/lib/diazo/normalize-rules.xsl)的文件中直接在规则中进行管理,但是如何在我的附加包中管理它?
谢谢
xslt - 修改某些标签的属性添加值
像这个例子https://plone-theming-with-diazo.readthedocs.org/en/latest/snippets_diazo/recipes/index.html#add-attributes-on-the-fly 我需要修改所有特定的类标签,添加一个值(在内容方面)。
此规则不起作用:
我想在具有“navTreeLevel0”类的 ul 内的任何 li 标签上添加值“no-bullet”。
重氮不会引发异常。
在同一个规则文件中,我有类似的情况,但在这种情况下有效:
怎么了?维托
xslt - 如何以理智的方式拆分重氮规则?
到目前为止,我不止一次遇到过这个问题,现在我想找到一个完美的解决方案:
当您有一个非常复杂的重氮主题时,迟早您会将规则拆分为子集并将它们移动到单独的文件中。
我的习惯是根据它们必须应用的模板将它们分开。现在,选择应该应用哪一个更好的解决方案是什么?
到目前为止,我已经找到了这两个解决方案:
- 您可以拥有一个“规则”列表,其中包含识别模板的条件,然后导入正确的外部 xml。这里有两个缺点,您必须希望所有条件都是互斥的,并且“否则”选项基本上是另一个“规则”,其中包含所有先前的条件 a
not()
,变得异常庞大 - 您可以使用 a
xsl:choose
,但似乎此选项不能完美地工作,因为该xsl:otherwise
选项并不总是适用,而且我不确定构造是否在第一次验证时结束xsl:when
我错过了什么吗?您还有其他选择,或者您可以选择这两个中的哪一个是最好的?