Загрузка миниатюры страницы Атрибут изображения в Concrete5 - PullRequest
0 голосов
/ 06 июля 2018

Мне нравится загружать атрибут изображения и назначать для него пользовательский эскиз с именем small (созданный в Dashboard > System > Files> Thumbnails).

Я создал собственный атрибут изображения blogimage в шаблоне. Загрузка атрибута изображения работает. Просто нужно знать, как загрузить пользовательский эскиз.

<?php
    $img = $c->getAttribute('blogimage'); ?>
    <?php if ($img): ?>
    <img src="<?php  echo ($img->getVersion()->getRelativePath()); ?>"/>
<?php endif; ?

1 Ответ

0 голосов
/ 06 июля 2018

Если blogimage является дескриптором атрибута изображения / файла, а $c является экземпляром Page, следующий код

$img = $c->getAttribute('blogimage');

возвращает null, если страница не имеет значения для этого атрибута, или экземпляр Concrete\Core\Entity\File\File в противном случае.

Тогда

$imgVersion = $img->getVersion();

возвращает экземпляр Concrete\Core\Entity\File\Version, который имеет метод getThumbnailURL.

Итак, чтобы иметь URL-адрес типа миниатюр с дескриптором small, вам просто нужно написать это:

$img = $c->getAttribute('blogimage');
if ($img !== null) {
    $imgVersion = $img->getVersion();
    $thumbnailURL = $imgVersion->getThumbnailURL('small');
    ?><img src="<?= $thumbnailURL ?>" /><?php
}
...