Plone 链接到a";“文件类型”;灵巧内容类型

Plone 链接到a";“文件类型”;灵巧内容类型,plone,dexterity,plone-4.x,Plone,Dexterity,Plone 4.x,我们正在一个新的Plone 4.3.2网站上创建一个文件数据库,使用eea.facetednav作为主界面。为了有多个可搜索的“标签”以及其他信息,如发布年份、文章类型等,我们为这些“文件”创建了自定义的灵活内容类型。“灵巧度”内容类型上的一个字段是上载实际文件 一切都进行得很顺利,直到我意识到 链接到“文件”的一个基本功能现在已被破坏。虽然我们希望创建到文件的内部链接会在单击时提示打开文件或下载文件,但现在它只会将您带到新“灵巧度”内容类型的“视图”,其中有到实际文件的链接 这相当麻烦。以前有

我们正在一个新的Plone 4.3.2网站上创建一个文件数据库,使用eea.facetednav作为主界面。为了有多个可搜索的“标签”以及其他信息,如发布年份、文章类型等,我们为这些“文件”创建了自定义的灵活内容类型。“灵巧度”内容类型上的一个字段是上载实际文件

一切都进行得很顺利,直到我意识到

链接到“文件”的一个基本功能现在已被破坏。虽然我们希望创建到文件的内部链接会在单击时提示打开文件或下载文件,但现在它只会将您带到新“灵巧度”内容类型的“视图”,其中有到实际文件的链接

这相当麻烦。以前有没有人这样做过,或者找到一种方法让它自动链接下载文件?如果我们需要禁用/取消“灵巧内容类型”视图以支持直接链接,这可能很好,但如果您可以想出一种方法使其双向工作(即,使用链接方法将其带到文件,使用链接方法将其带到视图),则会获得额外的好处

这就是我所说的“查看”页面,以防不清楚:


。。。不经意间,我想到了一个奇怪的Diazo解决方案:制作一个自定义模板,解析这个视图并自动重定向到文件链接,但这似乎是错误的/奇怪的。其他想法?

如果我必须解决这个问题,我会把它作为一个模型

当有人要求查看链接内容类型对象时,视图会查看请求者是否具有链接对象的
修改门户内容
权限。如果他们这样做了,他们会看到传统的观点,给他们编辑的机会。如果没有,视图将返回到目标URL的重定向


你的代码会更简单。检查权限后,您只需附加
@@download/field\u name
即可获得重定向URL。

我将获得额外积分,尽管我还没有完全测试过这一点

首先,必须将文件字段指定为内容类型的“主”字段。不幸的是,该选项没有显示在UI中,因此您必须编辑模式的XML版本(在最近版本的“灵巧度”控制面板中有一个用于此的按钮)。添加
xmlns:marshal=”http://namespaces.plone.org/supermodel/marshal“
作为顶部的名称空间,并将
封送:primary=“true”
添加到相关的
字段
标记中

然后,在portal_types中找到您的类型,并将“默认视图方法”更改为
@@download
。(对于灵巧的内容类型,它通常以
view
开头。)这将使项目的URL下载文件,而不是显示正常的视图。它知道要使用哪个字段,因为您将其指定为主字段


您仍然可以通过将
/view
添加到项目URL的末尾来访问普通视图。如果您希望Plone在从导航和文件夹内容链接到类型时执行此操作(就像内置图像和文件一样),转到portal_properties/site_properties并将类型的id添加到
typesDeviceViewInListings
列表中。

根据@keul对我的另一个问题的评论,我偶然发现了这个问题:这是一个可用的索引,可以用来解决这个问题吗?getRemoteURL:单击对象时从何处开始:InInterest,谢谢SteveM!这真是个好主意。我将对此进行测试,并会让您知道它是否有效!哦,我的上帝!!!TTW解决方案。。?!这太棒了!谢谢你,大卫!格兰芬多100分。我能够以您提到的方式实现所有内容,除了我将其添加到TypesDeviceViewInListings中,并且它不会自动转到/查看,它仍然下载文件。不过现在我完全同意。谢谢大卫!!:)