Added missing width/height attributes in amp version
authorMarcel Werk <burntime@woltlab.com>
Fri, 1 Sep 2017 16:46:37 +0000 (18:46 +0200)
committerMarcel Werk <burntime@woltlab.com>
Fri, 1 Sep 2017 16:46:37 +0000 (18:46 +0200)
com.woltlab.wcf/templates/mediaBBCodeTag.tpl
wcfsetup/install/files/lib/system/html/output/AmpHtmlOutputProcessor.class.php

index a988ab095cbdb1fc987e0136100b1a5698421c0d..ca322bedfdadf45703bb2113d30d97d88a86eb2c 100644 (file)
@@ -1,8 +1,8 @@
 <span class="mediaBBCode{if $float != 'none'} messageFloatObject{$float|ucfirst}{/if}">
        {if $thumbnailSize != 'original'}
-               <a href="{$media->getLink()}" class="embeddedAttachmentLink jsImageViewer"><img src="{$media->getThumbnailLink($thumbnailSize)}" alt="{$media->altText}" title="{$media->title}"></a>
+               <a href="{$media->getLink()}" class="embeddedAttachmentLink jsImageViewer"><img src="{$media->getThumbnailLink($thumbnailSize)}" alt="{$media->altText}" title="{$media->title}" data-width="{@$media->getThumbnailWidth($thumbnailSize)}" data-height="{@$media->getThumbnailHeight($thumbnailSize)}"></a>
        {else}
-               <img src="{$media->getLink()}" alt="{$media->altText}" title="{$media->title}">
+               <img src="{$media->getLink()}" alt="{$media->altText}" title="{$media->title}" data-width="{@$media->width}" data-height="{@$media->height}">
        {/if}
                
        {if $media->caption}
index 8d804aee3ec64fdec2c08eebbd3878f11ba72d77..39afb5dc8f88ad8305feff10af76a645133298ef 100644 (file)
@@ -103,7 +103,12 @@ class AmpHtmlOutputProcessor extends HtmlOutputProcessor {
        public function getHtml() {
                $html = $this->getHtmlOutputNodeProcessor()->getHtml();
                
-               $html = str_ireplace('<img', '<amp-img layout="flex-item"', $html);
+               $html = preg_replace_callback('/<img([^>]+)>/i', function($match) {
+                       $attributes = str_replace('data-width="', 'width="', $match[1]);
+                       $attributes = str_replace('data-height="', 'height="', $attributes);
+                       return '<amp-img layout="flex-item"'.$attributes.'>';
+               }, $html);
+               
                $html = str_ireplace('<iframe', '<amp-iframe layout="responsive" width="480" height="300" sizes="(min-width: 480px) 480px, 100vw" ', $html);
                $html = str_ireplace('</iframe>', '<div class="wscIframePlaceholder" placeholder=""></div></amp-iframe>', $html);