Вывод изображений
Обновлено
Хелпер темы
Добавьте вызов в нужное место шаблона темы приложения «Блог». Единственный публичный метод специализированного хелпера — getImage($post_id, $unique_id, $size, $retina = null). Он возвращает строку с URL, а не HTML.
| Параметр | Значение |
|---|---|
$post_id |
Числовой идентификатор записи. В примерах $post.id — идентификатор текущей записи в шаблоне. |
$unique_id |
Строка из поля «Уникальный идентификатор группы», например default. |
$size |
Размер в формате ширинаxвысота, например 315x0, 0x400, 600x400. Используйте латинскую x. |
$retina |
Для обычного URL опустите аргумент; для @2x передайте true при включённых «Эскизах изображений @2x». |
Не передавайте false для выбора обычного файла: текущая реализация проверяет отличие аргумента от null, а не его истинность.
Обычное изображение
{if !empty($wa->blog->ewblogpimgPlugin->version())}
{$image_url = $wa->blog->ewblogpimgPlugin->getImage($post.id, 'default', '315x0')}
{if !empty($image_url)}
<img src="{$image_url|escape}" alt="">
{/if}
{/if}В списке записей разместите этот фрагмент внутри существующего цикла темы и используйте переменную текущей записи. Обёртка проверяет доступность плагина, а внутренняя проверка не выводит пустой src, если изображение не найдено.
Хелпер возвращает пустую строку при выключенном «Статусе плагина», отсутствии группы или изображения, а также если не передан один из трёх обязательных аргументов.
Произвольный размер
{if !empty($wa->blog->ewblogpimgPlugin->version())}
{$image_url = $wa->blog->ewblogpimgPlugin->getImage($post.id, 'default', '600x400')}
{if !empty($image_url)}
<img src="{$image_url|escape}" width="600" height="400" alt="">
{/if}
{/if}Если файла 600x400 ещё нет, он создаётся при обращении только при включённых «Эскизах произвольных размеров». Иначе заранее добавьте размер в настройках группы. При выключенной генерации по запросу хелпер может вернуть ссылку на отсутствующий файл.
Retina и srcset
Сначала включите «Эскизы изображений @2x» и обеспечьте создание нужного размера вместе с @2x — например, загрузкой изображения после включения настройки.
{if !empty($wa->blog->ewblogpimgPlugin->version())}
{$image_url = $wa->blog->ewblogpimgPlugin->getImage($post.id, 'default', '315x0')}
{$image_2x_url = $wa->blog->ewblogpimgPlugin->getImage($post.id, 'default', '315x0', true)}
{if !empty($image_url)}
<img src="{$image_url|escape}"
srcset="{$image_url|escape} 1x, {$image_2x_url|escape} 2x"
width="315" alt="">
{/if}
{/if}Для 315x0 вариант @2x рассчитывается как 630x0. В URL он обозначается суффиксом @2x. Хелпер не проверяет отдельно наличие @2x-файла: если обычный эскиз уже существовал до включения настройки, одного запроса Retina недостаточно для создания удвоенного.
SVG и прежние темы
Для SVG метод возвращает URL загруженного SVG независимо от размера и параметра Retina. Обрезка, растровые эскизы и конвертация SVG в WebP не выполняются.
Статический метод blogEwblogpimgHelper::getImage() оставлен в коде для совместимости. В новых шаблонах используйте хелпер через $wa->blog->ewblogpimgPlugin с проверкой version(), как в примерах выше.