0

Wrt plone 中 atreal.richfile.preview 的自定义,对于文件预览,有一个名为 viewlet.pt 的模板,它包含一个 TAL 语句,显示控件以激活/更新、刷新和折叠 Actions 菜单:。完整的代码片段:

<dl class="richfile portlet"
    tal:condition="view/available"
    tal:attributes="id view/plugin_id"
    i18n:domain="atreal.richfile.preview">

    <dt tal:attributes="id string:${view/plugin_id}Header" class="rfheader portletHeader">
        <span class="portletTopLeft"></span>
        <!--tal:block tal:replace="structure view/controls" -->
        <span class="title" style="font-weight:bold"
            i18n:translate="">
            Preview 
        </span>

        <span class="portletTopRight"> <span>
    </dt>

   <dd tal:content="structure view/getPreview" >

        <!--Your specific code here-->        
        <IFRAME src="http://somesite.com" 
            tal:attributes="src string:${here/absolute_url}/rfpreview"
            ondragstart="false" onselectstart="false"
            width="100%" height="400" scrolling="auto" frameborder="0"> </IFRAME>

        <!--End of specific code-->

    </dd>

</dl>

如果我删除<tal:block tal:replace="structure view/controls" >,我可以正确查看 doc、xls、odt 文件格式。但是对于pdf文件,所有的内容都是混乱的。如果我保持上述声明不变,当我单击操作控件激活/更新或刷新并正确查看时,它会打开另一个窗口,但它会下载 doc xls 和其他文件(由于超链接,这不是预期的)

还要注意在更改默认<dd>属性后 <dd tal:content="structure view/getPreview">允许查看没有背景图像的 pdf 文件。

如果语句保持原样,则会打开一个新窗口,其中有用于缩放、打印和另存为的图标。我希望在此窗口中禁用这些。

我还希望阻止从这个新窗口中复制粘贴。(我可以在 viewlet 中使用 javascript 禁用复制粘贴)但它不会在新窗口中发生。我无法检测到这个新窗口的模板。

主要目的是防止从 plone 站点复制/粘贴/下载任何文件,但应允许文件预览。

任何人都可以正确指导 ZMI 中的确切位置以及如何自定义它吗?克隆 4.1

4

1 回答 1

0

解决此问题的另一种方法是通过自定义模板并在如何设置 TAL 条件以检查文件类型并相应地在 Plone 4.1 中呈现模板中可用

于 2012-09-04T10:53:51.963 回答