Часто используемый код на Fenom в MODX

Часто используемый код на Fenom в MODX

Всем привет. Пишу эту заметку больше для себя, чтобы часто используемый код был под рукой. Если кому-то пригодится, пользуйтесь на здоровье и не судите строго :)

Работа с изображениями

Часто, при наполнении сайта контентом, менеджеры загружают не обработанные заранее изображения. Они могут быть размером до нескольких мегабайт. И если их выводить в таком виде, это сильно сказывается на скорости загрузки страницы. Для того чтобы сайт отдавал оптимизированные (обрезанные, уменьшенные и тп.) изображения, независимо от того какого размера они были загружены, в MODX применяется сниппет phpThumbOn. Приведу несколько примеров его использования.

Вывод изображения непосредственно в шаблоне, заданного в TV "image" документа:

<img class="img-fluid" src="{$_modx->resource.image | phpthumbon: 'w=800&h=600&zc=1&q=80'}" alt="" />

Здесь phpThumbOn используется как модификатор. В параметрах указываем нужные выходные размеры картинки: w=800 - ширина в пикселях, h=600 - высота в пикселях, zc=1 - автоматическая обрезка лишнего по большей стороне, q = 80 - степень сжатия (1 - худшее качество, 100 - лучшее).

Есть еще вариант использовать phpThumbOn как сниппет, тогда код будет примерно таким:

<img class="img-fluid" src="{'phpthumbon' | snippet: ['input' => $_modx->resource.image,'options' => 'w=320&zc=0&q=75']}" alt="">

Или если нужно, через переменную, например в каком-нибудь чанке:

{set $image = $_modx->runSnippet('phpthumbon', ['input' => $_pls['image'], 'options' => 'w=320&zc=0&q=75'])}
<div class="col-12 col-md-3">
    <img class="img-fluid" src="{$image}" alt="">
</div>

Можно также вынести настройки phpThumbOn в отдельную переменную и использовать такую конструкцию, где, например, высота картинки будет высчитываться по какой-нибудь формуле, если надо поиграть пропорциями или даже передать параметры через TV-шку или параметры сниппета:

{set $width = 936
{set $height = $width / 3}
{set $options = 'w='~$width~'&h='~$height~'&zc=1&q=80'}
<img class="img-fluid mb-3" src="{$image | phpthumbon: $options}" alt="">

Вывод заголовков

Вывод заголовка страницы, если указан longtitle то выводить его, иначе pagetitle:

<h1 class="page-header">
    {$_modx->resource.longtitle ? $_modx->resource.longtitle : $_modx->resource.pagetitle}
</h1>

Теги

Fenom MODX