- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 Plone 4.1 中使用 tal 条件检查文件类型并渲染模板
我的文件预览模板渲染取决于文件扩展名。如果文件扩展名是“pdf”,我希望使用这样的东西:(刚刚开始使用 TAL、TALES、METAL)
<tal:define="file_nm global string:${here/absolute_url}"
<tal:condition="file_nm.slice[-3:] = 'pdf'">
<embed width="100%" height="100%" name="plug-in" tal:attributes="src string:${here/absolute_url}#"
draggable="false" onselectstart="false" />
否则使用:(对于“pdf”以外的文件)
<IFRAME src="http://www.xyz.com"
tal:attributes="src string:${here/absolute_url}/rfpreview"
ondragstart="false" onselectstart="false"
width="100%" height="400" scrolling="auto" frameborder="0"></IFRAME>
有人可以指导我自定义 View 的完整自定义代码片段:atreal.richfile.preview.interfaces.ipreview-atreal.richfile.preview.viewlet
最佳答案
TAL 语句是现有标签的属性。您可以使用 tal:
引入虚拟元素命名空间前缀,但类似 define
的语句和condition
仍然需要表示为属性。
此外,默认的 TALES 表达式类型是路径表达式,但您想使用 python 表达式。没问题,但是您需要使用 python:
来指定它们。前缀。
最后但并非最不重要的一点是,不要使用 global
除非你绝对必须这么做,但这种情况很少见。定义的名称存在于定义它们的 XML 元素的范围内,不需要存在于这些元素之外。
这是我表达逻辑的方式:
<tal:block define="ispdf python:here.absolute_url().endswith('.pdf')">
<embed width="100%" height="100%" name="plug-in"
tal:condition="ispdf"
tal:attributes="src string:${here/absolute_url}#"
draggable="false" onselectstart="false" />
<iframe src="http://www.xyz.com"
tal:condition="not:ispdf"
tal:attributes="src string:${here/absolute_url}/rfpreview"
ondragstart="false" onselectstart="false"
width="100%" height="400" scrolling="auto" frameborder="0"></iframe>
</tal:block>
这引入了一个新的 <tal:block>
元素来定义 ispdf
bool 变量,由 python 表达式确定。然后这两个变体通过tal:condition
打开或关闭。每个元素上的属性基于该值 True
或False
.
关于python - 如何设置 TAL 条件来检查文件类型并相应地在 Plone 4.1 中渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260688/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!