TYPO3如何使用TypoScript包装iframe(RTE)?

问题描述 投票:1回答:1

我正在使用TYPO3 7.6和fluid styled content,我允许我的编辑器将iframe插入富文本编辑器(RTE或htmlarea)。由于这个iframe,显示了Snippet。没关系。

现在我想用iframe包装这个typoscript,因为iframe必须有响应,所以我需要......像这样,作为一个包装:

<div class="embed-container">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/7DRU" frameborder="0" allowfullscreen></iframe>
</div>

CSS

.embed-container {
  position: relative; 
  padding-bottom: 56.25%; /* ratio 16x9 */
  height: 0; 
  overflow: hidden; 
  width: 100%;
  height: auto;
}
.embed-container iframe {

  position: absolute; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%; 
}

如何用一些HTML代码包装iframefrom TYPO3-RTE?

我试过了......像这样...但它不起作用。

### wrap iframe at RTE
lib.parseFunc_RTE {
    externalBlocks := addToList(iframe)
    externalBlocks {
        iframe.stripNL = 1
        iframe.callRecursive = 1
        iframe.callRecursive.tagStdWrap.HTMLparser = 1
        iframe.callRecursive.tagStdWrap.HTMLparser.tags.iframe {
            fixAttrib.class.default = classOfiframe
            wrap = <div>|</div>
        }
    }
}

要么

lib.parseFunc_RTE.tags.iframe = TEXT
lib.parseFunc_RTE.tags.iframe {
    wrap = <div class="test">|</div>
}
iframe typo3 typoscript rte
1个回答
2
投票

安全方面的说明

允许编辑手工制作HTML会增加您的网站被XSS(跨站点脚本)攻陷的可能性。不建议允许直接HTML输入,特别是如果您不能完全信任您的编辑器。

TypoScript调整

你是TypoScript几乎没问题,只有你应用属性的级别是错误的。

以下示例将问题放在一个完整的图片中。开头的部分基本上是通过获取内容元素来解决的 - 在这方面,它初始化要解析的状态。您的方案中只需要lib.parseFunce_RTE调整。

# Simulating some content
page = PAGE
page.10 = TEXT
page.10.value (
  <p>Before</p>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/7DRU" frameborder="0" allowfullscreen></iframe>
  <p>After</p>
  <main>Not parsed...</main>
)
page.10.parseFunc =< lib.parseFunc_RTE

# Adjusting parsing instructions for IFRAMES
lib.parseFunc_RTE {
    allowedTags := addToList(iframe)

    externalBlocks := addToList(iframe)
    externalBlocks {
      iframe.stripNL = 1
      iframe.stdWrap.wrap = <div class="frame-wrapper">|</div>
    }
}

生成输出

这会产生以下输出 - 预计<main>标签会被编码,因为它没有被定义为处理。 nonTypoTagStdWrap.HTMLparser语句负责非匹配标记的编码。

<p class="bodytext">Before</p>
<div class="frame-wrapper">
<iframe width="560" height="315" src="https://www.youtube.com/embed/7DRU" frameborder="0" allowfullscreen></iframe>
</div>
<p class="bodytext">After</p>
<p class="bodytext">  &lt;main&gt;Not parsed...&lt;/main&gt;</p>

parseFuncTypoScript reference中查找更多详细信息

© www.soinside.com 2019 - 2024. All rights reserved.