在 Typo3 中以编程方式扩展属性 href 的最佳方法是什么?
链接是由 RTE 设置的,例如
<a class="download" target="_blank" href="fileadmin/ablage/test_material/pdf_1.pdf">
并应改为
<a class="download" target="_blank" href="fileadmin/ablage/test_material/pdf_1.pdf#zoom=100">
未经测试的代码:
您可以尝试将该部分添加到参数中
lib.parseFunc_RTE.tags.link.typolink.parameter.append = TEXT
lib.parseFunc_RTE.tags.link.typolink.parameter.append {
value = #zoom=100
if.equals.data = parameters:0
if.equals.substring = -3,3
if.value = pdf
}
或者您可以尝试使用“部分”
lib.parseFunc_RTE.tags.link.typolink.section.cObject = TEXT
lib.parseFunc_RTE.tags.link.typolink.section.cObject {
value = zoom=100
if.equals.data = parameters:0
if.equals.substring = -3,3
if.value = pdf
}
但最重要的问题是“if”语句。我假设第一个参数是文件名(我不记得了)。最后 3 个字符应为“pdf”。如果您使用 DAM,则需要检索 UID 并从那里获取文件类型。
只是一个粗略的猜测,这可以给你一个提示,你有哪些参数:
lib.parseFunc_RTE.tags.link.typolink.parameter.append = TEXT
lib.parseFunc_RTE.tags.link.typolink.parameter.append {
data = parameters : allParams
htmlSpecialChars = 1
wrap = ?debug=|
}
附带说明:这将影响所有 RTE 字段!
如果该链接有固定类,则可以使用 jQuery ...
jQuery(document).ready(function(){
$('.download').each(function(){
var linkhref = $(this).attr('href');
$(this).attr('href', linkhref + '#zoom=100');
});
});
这段代码做到了。
parseFunc_RTE.tags.link.typolink.parameter.append = TEXT
parseFunc_RTE.tags.link.typolink.parameter.append {
value = #zoom=100
if.equals.data = parameters : allParams
if.equals.substring = -3,3
if.value = pdf
}