Cookbook /
AttachImageSize-Talk
Summary: Talk page for AttachImageSize.
Maintainer: Petko
This space is for User-contributed commentary and notes. Please include your name and a date along with your comment.
I extended the original code, so it links webp-Images if they are available.
As I am not sure if this is a good way to propose kind of a fork, I posted it here under the Talk.
--Daniel Gross 2022-05-06
function LinkImgSrc($pagename, $imap, $path, $alt, $txt, $fmt=NULL) { global $FmtV, $UploadFileFmt, $UploadUrlFmt, $UploadPrefixFmt; if(!preg_match('/\\.(gif|jpe?g|png|webp)$/i', $path)) return LinkUpload($pagename, $imap, $path, $alt, $txt, $fmt); if (preg_match('!^(.*)/([^/]+)$!', $path, $match)) { $pagename = MakePageName($pagename, $match[1]); $path = $match[2]; } $upname = MakeUploadName($pagename, $path); $filepath = FmtPageName("$UploadFileFmt$UploadPrefixFmt$upname", $pagename); $s = @getimagesize($filepath); $FmtV['$ImageSize'] = @$s[3]; $uploadurl = FmtPageName("{$UploadUrlFmt}$UploadPrefixFmt/$upname", $pagename); $srcset = array(); if (file_exists($filepath.'.webp')) $srcset[] = "{$uploadurl}.webp 1x <!-- $uploadurl -->"; if (file_exists($filepath.'@2x.webp')) $srcset[] = "{$uploadurl}@2x.webp 2x"; if (count($srcset) > 0) $FmtV['$SrcSet'] = '<source srcset="'.implode(',',$srcset).'" type="image/webp">'; $r = LinkUpload($pagename, $imap, $path, $alt, $txt, $fmt); $FmtV['$ImageSize'] = ''; $FmtV['$SrcSet'] = ''; return $r; } $LinkFunctions['Attach:'] = 'LinkImgSrc'; $ImgTagFmt = "<picture>\$SrcSet<img src='\$LinkUrl' alt='\$LinkAlt' title='\$LinkAlt' \$ImageSize></picture>"; $FmtV['$ImageSize'] = ''; $FmtV['$SrcSet'] = '';
Thank you for this, I have added a link from the recipe page to this one. --Petko
Talk page for the AttachImageSize recipe (users?).