Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 键入脚本-仅当文件存在时使用URL链接文件_Typo3_Typoscript_Templavoila - Fatal编程技术网

Typo3 键入脚本-仅当文件存在时使用URL链接文件

Typo3 键入脚本-仅当文件存在时使用URL链接文件,typo3,typoscript,templavoila,Typo3,Typoscript,Templavoila,我使用的是TemplavoiláPlus,我有一个字段,用户用一个名为field_title的标题来完成它。 我使用此字段为FCE的其他字段创建URL/HTML,使用打字脚本对象路径 常数: file = fileadmin/datasheets/|.pdf filePath = fileadmin/datasheets/|.pdf 设置: lib.field_datasheet = TEXT lib.field_datasheet { field = field_title wrap

我使用的是TemplavoiláPlus,我有一个字段,用户用一个名为field_title的标题来完成它。 我使用此字段为FCE的其他字段创建URL/HTML,使用打字脚本对象路径

常数:

file = fileadmin/datasheets/|.pdf
filePath = fileadmin/datasheets/|.pdf
设置:

lib.field_datasheet = TEXT
lib.field_datasheet {
 field = field_title
 wrap = <a href="{$file}"></a>
}
lib.field_datasheet = TEXT
lib.field_datasheet {
   // use the 'filename' as text to be linked
   field = field_title
   // now build the link:
   typolink.parameter {
       field = field_title
       wrap = {$filePath}|
   }
}
但真正困难的部分是从我使用打字脚本创建的URL获取文件大小。 我很高兴,必须有一种方法可以做到这一点,只有用打字稿,因为我知道一个人可以得到一个文件的大小,从它的uid

或者我应该继续检查URL是否指向404页面。 或者也许有一个更简单的解决方案,我没有想到

任何帮助都将不胜感激,如果这个问题太容易解决,那么很抱歉,非常感谢您阅读这篇文章=


编辑:我正在使用Typo3 7.6

为什么不让Typo3决定文件是否存在以及是否值得建立链接

你的问题可能是你没有什么可以联系的。空A标签

我想尝试一下:

lib.field_datasheet = TEXT
lib.field_datasheet {
  field = field_title
  wrap = |.pdf
  filelink {
    path = fileadmin/datasheets/
    file.field = field_title
  }
}
常数:

file = fileadmin/datasheets/|.pdf
filePath = fileadmin/datasheets/|.pdf
设置:

lib.field_datasheet = TEXT
lib.field_datasheet {
 field = field_title
 wrap = <a href="{$file}"></a>
}
lib.field_datasheet = TEXT
lib.field_datasheet {
   // use the 'filename' as text to be linked
   field = field_title
   // now build the link:
   typolink.parameter {
       field = field_title
       wrap = {$filePath}|
   }
}

为什么不让TYPO3决定文件是否存在以及是否值得建立链接

你的问题可能是你没有什么可以联系的。空A标签

我想尝试一下:

lib.field_datasheet = TEXT
lib.field_datasheet {
  field = field_title
  wrap = |.pdf
  filelink {
    path = fileadmin/datasheets/
    file.field = field_title
  }
}
常数:

file = fileadmin/datasheets/|.pdf
filePath = fileadmin/datasheets/|.pdf
设置:

lib.field_datasheet = TEXT
lib.field_datasheet {
 field = field_title
 wrap = <a href="{$file}"></a>
}
lib.field_datasheet = TEXT
lib.field_datasheet {
   // use the 'filename' as text to be linked
   field = field_title
   // now build the link:
   typolink.parameter {
       field = field_title
       wrap = {$filePath}|
   }
}

您可能可以使用filelink来实现这一点。如果不进行测试,它应该是:

lib.field_datasheet = TEXT
lib.field_datasheet {
  field = field_title
  wrap = |.pdf
  filelink {
    path = fileadmin/datasheets/
    file.field = field_title
  }
}
但不确定如果文件不在那里会发生什么。它可能不显示任何内容,在这种情况下,您可以使用ifEmpty.field=field\u title只显示文本


有关filelink的更多信息:

您可能可以使用filelink来实现此目的。如果不进行测试,它应该是:

lib.field_datasheet = TEXT
lib.field_datasheet {
  field = field_title
  wrap = |.pdf
  filelink {
    path = fileadmin/datasheets/
    file.field = field_title
  }
}
但不确定如果文件不在那里会发生什么。它可能不显示任何内容,在这种情况下,您可以使用ifEmpty.field=field\u title只显示文本


更多关于filelink的信息:

多亏了鲁迪的回答,我才能够解决我的问题。 为了让它对其他人有用,下面是我使用的一些打字稿:

lib.field_datasheet = TEXT
lib.field_datasheet {
  value {
    field = field_title
    wrap = |.pdf
    }

  filelink {
    path = /fileadmin/datasheet/
    target = _blank
    altText = PDF icon
    titleText = Download datasheet

    //Personalize the icon, the file must be named pdf.png            
    icon_link = 1
    icon = 1
    icon {
      path = fileadmin/icons/
      ext = png
      }
    }
 }

多亏了鲁迪的回答,我才能够解决我的问题。 为了让它对其他人有用,下面是我使用的一些打字稿:

lib.field_datasheet = TEXT
lib.field_datasheet {
  value {
    field = field_title
    wrap = |.pdf
    }

  filelink {
    path = /fileadmin/datasheet/
    target = _blank
    altText = PDF icon
    titleText = Download datasheet

    //Personalize the icon, the file must be named pdf.png            
    icon_link = 1
    icon = 1
    icon {
      path = fileadmin/icons/
      ext = png
      }
    }
 }

非常感谢你的回答。我试过你的答案,它是有效的,而且比包装成|要好。但是,即使文件不存在,链接仍在创建中…TYPO3的默认行为是:如果链接的目标不可用,不要生成链接,只显示要链接的文本。所以我会考虑一个空链接作为一个bug,你应该打开一个错误的车票抱歉,也许不清楚,链接只是链接到一个未找到的404。我试图找到默认行为的解释,我在这里找不到任何关于不可用链接的信息,不仅仅是当你链接到uid时,如果uid不存在,链接就不会生成?我觉得如果你写完整的URL,它就不一样了。那么问题可能是,从URL中生成uid是否可能/相关?我不知道是否记录了不可用链接的行为。您可能需要检查链接生成的PHP源代码,因为它不仅仅涉及打字脚本链接。流体或API调用生成的任何其他链接也是如此。非常感谢您的回答。我试过你的答案,它是有效的,而且比包装成|要好。但是,即使文件不存在,链接仍在创建中…TYPO3的默认行为是:如果链接的目标不可用,不要生成链接,只显示要链接的文本。所以我会考虑一个空链接作为一个bug,你应该打开一个错误的车票抱歉,也许不清楚,链接只是链接到一个未找到的404。如果uid不存在,则默认情况下我无法在此处查找链接。如果我无法在此处查找链接,则说明该链接不存在?我觉得如果你写完整的URL,它就不一样了。那么问题可能是,从URL中生成uid是否可能/相关?我不知道是否记录了不可用链接的行为。您可能需要检查链接生成的PHP源代码,因为它不仅仅涉及打字脚本链接。对于流体或API调用生成的任何其他链接也是如此。非常感谢!使用filelink就是解决方案!我将添加我在注释中使用的代码。我经常发现Typo3文档缺少具体的示例,因此这可能对某些人有用=您知道如何使其不区分大小写吗?所以它可以是.pdf或.pdf。这场比赛的题目也一样,非常感谢!使用filelink就是解决方案!我将添加我在注释中使用的代码。我经常发现Typo3文档缺少具体的示例,因此这可能对某些人有用=您知道如何使其不区分大小写吗?所以它可以是.pdf或.pdf。字段标题也一样。