首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typoscript filelink -链接中的URL

Typoscript filelink -链接中的URL
EN

Stack Overflow用户
提问于 2018-07-13 15:37:07
回答 4查看 602关注 0票数 0

首先,这是打字稿:

代码语言:javascript
复制
20 = TEXT
20 {
 value {
  field = field_title
  wrap = |.txt
  }
 filelink {
  stdWrap.wrap = <li>|</li>  
  path = fileadmin/txt-files/
  }
 } 

我得到的结果是:

代码语言:javascript
复制
<li>
 <a href="/fileadmin/txt-files/Title.txt">
  <img src="typo3/sysext/frontend/Resources/Public/Icons/FileIcons/txt.png">
 </a>
</li>

我需要的是:

代码语言:javascript
复制
<li>
 <a href="/fileadmin/force_download_script.php?filepath=/fileadmin/txt-files/Title.txt">
  <img src="typo3/sysext/frontend/Resources/Public/Icons/FileIcons/txt.png">
 </a>
</li>

我需要使链接可下载,而不是打开浏览器中的文件。为此,我有一个force_download_script.php,但当我这样做时:

代码语言:javascript
复制
wrap = fileadmin/force_download_script.php?filepath=|txt

与当前的包装不同,filelink再也找不到文件了。

我试过使用ATagBeforeWrap.wrap,但它看起来并不是为了这个目的而制作的。我也尝试过typolinkConfiguration.wrap,但没有成功。

你知道怎么做到这一点吗?也许用COA?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-16 06:57:13

我不会用脚本,而是通过服务器配置来完成这个任务。如果使用Apache并启用了.htaccess,则可以将配置添加到文件所在目录中的.htaccess文件中。请参阅https://css-tricks.com/snippets/htaccess/force-files-to-download-not-open-in-browser/

或者,您也可以使用属性。然而,Internet不支持这一点(但Edge支持它)。

票数 1
EN

Stack Overflow用户

发布于 2018-07-13 18:05:57

这个问题可能会变得相当复杂,但一步一步地:

  • 如果上面的代码不只是复制和粘贴错误,那么它可能是错误的: wrap = fileadmin/force_download_script.php?filepath=|.txt txt失踪前的那个点。 尽管如此,如果php-脚本被触发,还是很有趣的。
  • 由于typo3conf/LocalConfiguration.php中的一些设置、安装工具中的一些设置,脚本可能不会被触发。
  • 根据TYPO3 3版本的不同,脚本也有可能根本不被触发,因为所有脚本现在都需要在一个扩展中。这意味着您可能需要为该脚本创建一个扩展。
  • 另外,简单地用脚本路径包装结果可能还不够,但是您必须通过TypoScript显式调用它--也许可以将脚本包含为用户函数或lib。

管理面板可能有助于调试有关脚本的某些内容,但如果没有,则必须首先在自己的代码中包含一些调试输出,如果核心(临时)还不够的话。

所以你必须找出你的脚本是否被触发,如果没有,原因是什么。

票数 0
EN

Stack Overflow用户

发布于 2018-07-16 06:45:47

你确定.filelink是你要找的吗?

.filelink用于一组文件。对于.path给出的文件夹中的所有文件,将生成一个链接。请参阅手册

从您的描述中,您需要一个包含一个指向单个文件的链接的文本。对于.typolink来说,这将是一个更大的问题,您可以在.parameter中指定链接。

如果您真的想要一个包含多个文件的链接列表,那么每个文件都需要用脚本包装,您需要修改.typolinkConfiguration.parameter,这将是.filelink

无论如何,也许可以做一个包装,这样就可以:

代码语言:javascript
复制
.typolinkConfiguration.parameter.wrap = /fileadmin/force_download_script.php?|

也许用.stdWrap.filelist构建列表更容易,在这里您可以以任何方式使用文件名为A-标记包装您自己的href参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51328592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档