【问题标题】:TYPO3 RTE convert <img> to <amp-img>TYPO3 RTE 将 <img> 转换为 <amp-img>
【发布时间】:2020-01-03 14:02:21
【问题描述】:

我有一个 TYPO3 6.2 版网站,我正在开发一个 AMP 版本。

我在 URL 中使用条件来加载同一 TYPO3 页面的不同版本,具体取决于页面版本请求是否为 AMP。

普通版页面:

https://www.novethic.fr/actualite/environnement/climat/isr-rse/rencontre-avec-danone-un-des-rares-francais-a-aligner-sa-strategie-sur-l-objectif-2-c-145150.html

网页的 AMP 版本

https://www.novethic.fr/amp/actualite/environnement/climat/isr-rse/rencontre-avec-danone-un-des-rares-francais-a-aligner-sa-strategie-sur-l-objectif-2-c-145150.html

一切正常,除非我的页面包含插入到 RTE 中的图像

在这种情况下,当要求的版本是 AMP 时,我需要将 &lt;img&gt; 转换为 &lt;amp-img&gt;,以便插入 RTE 中的图像。

当调用 AMP 版本时,我已经有一个全局 var 条件来加载自定义 TS。

但不知道如何将&lt;img&gt; 转换为&lt;amp-img&gt; 关于如何实现这一目标的任何想法?

【问题讨论】:

    标签: typo3 amp-html rte


    【解决方案1】:

    如果它只是标签名称的替换,您可以尝试在以下级别之一上使用(条件)字符串替换:

    • 整个页面。
      你可以做一个stdWrap.replacement,但这可能不适用于缓存的内容

    • 流体中的页面内容。
      只需使用 viewhelper 来替换渲染内容的文本。甚至可能是一个打字稿 VH:
      (&lt;f:cObject typoscriptObjectPath="lib.img2ampimg"&gt;{content}&lt;/f:cObject&gt;)

    • 排版中的页面内容。
      根据您是否使用 TS 渲染内容,您可以在此处添加 stdWrap.replacement

    .

    page { 
        10 = FLUIDTEMPLATE
        10 {
            :
            variables {
                content < styles.content.get
                :
            }
        }
    }
    
    [--your amp condition--]
        page.10.variables.content.stdWrap.replacement {
            1.search = <img
            2.replace = <amp-img
        }
    [global]
    

    【讨论】:

    • 听起来不错!非常感谢:)
    【解决方案2】:

    也许这可以通过扩展“内容替换器”来实现,https://extensions.typo3.org/extension/replacer

    【讨论】:

    • 嗨 Wolfgang,不幸的是,由于保存页面显示为 2 个版本,常规版本和 AMP,我无法直接在 db 中替换内容。谢谢你的帮助! :)
    【解决方案3】:

    我已经按照 Bernd Wilke 的建议解决了这个问题,但直接在我的流体模板中:

    <f:if condition="{f:cObject(typoscriptObjectPath:'lib.conditionamp')} == 1">
     <f:then>
        <v:format.replace substring="<img " replacement="<amp-img layout=\"responsive\"">
            <f:format.html>{article.corpsDeTexte}</f:format.html>
        </v:format.replace>
     </f:then>
     <f:else>
        <f:format.html>{article.corpsDeTexte}</f:format.html>
     </f:else>
    </f:if>
    

    再次感谢您的帮助 :)

    【讨论】:

    • 我怀疑搜索字符串 img 是唯一的。我不知道以img 结尾的单词,但如果更换两次(在不同的部分),至少它是不稳定的。我会避免这种可能性,所以我的建议是包括左括号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 2019-12-17
    • 1970-01-01
    相关资源
    最近更新 更多