图像与设计
在 Hyvä 主题模板中渲染响应式图片(picture…
当需要在 Hyvä 主题的 PHTML 模板中添加响应式图片、hero 横幅或产品图时,用 Media view model 生成带断点的 <picture> 元素。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在 Hyvä 主题模板中渲染响应式图片(特定
解决思路
- 通过 $viewModels->require(\Hyva\Theme\ViewModel\Media::class) 获取 Media view model 实例。
- 收集图片需求:若用户直接给出值,则询问图片路径(pub/media/ 下的位置,如 wysiwyg/hero.jpg)、宽高像素尺寸、是否需要移动端/桌面端不同图片、图片用途(hero/LCP 还是首屏以下)、以及 alt 文本。
- 若用户提供的是 PHP 变量名(如 $imageData、$heroImage),则告知其所需的数组结构,结构见 references/rendering-images.md 的 '## Image Configuration Format' 章节。
- 参考 references/rendering-images.md 获取完整 API、代码示例和所有配置项。
- 按场景选择模式:单图字面量用 Single Image Example;单图来自变量则包成数组 [$imageData];多图来自变量直接传 $images;移动端/桌面端不同图用 Responsive Images with Media Queries;需要给 <picture> 包裹层加样式用 Picture Element Attributes。
- 使用基础模板调用:echo $mediaViewModel->getResponsivePictureHtml($images, $imgAttributes, $pictureAttributes),其中 $images 为图片配置数组,$imgAttributes 可选(alt、class、loading、fetchpriority),$pictureAttributes 可选(class、data-* 属性)。
- 设置加载策略:hero/LCP(首屏以上)用 'loading' => 'eager', 'fetchpriority' => 'high';首屏以下用 'loading' => 'lazy'。
适用边界 · 注意事项
- 非 Hyvä 主题的 Magento 模板(不适用该 Media view model)。
- 不使用 PHP/PHTML 模板渲染图片的场景。