---
title: "Titulný obrázok a galéria — Posts for Laravel | Roundly"
description: "Titulný obrázok, galéria a skupina obsahu na každom príspevku cez media-library, s og:image fallbackom a predgenerovaním variantov."
url: https://roundly-consulting.com/sk/open-source/navody/posts-for-laravel/media-prispevku
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Posts for Laravel](https://roundly-consulting.com/sk/open-source/navody/posts-for-laravel.md)

# Titulný obrázok a galéria

Priložený model Post vlastní cez concern HasPostMedia tri skupiny médií z media-library-for-laravel:

| Skupina | Konfiguračný kľúč | Tvar | Prijíma |
| --- | --- | --- | --- |
| `featured` | `media.featured_bucket` | jeden súbor — nový nahradí predošlý; voliteľná záložná URL | image/jpeg, image/png, image/webp, image/gif, image/avif |
| `gallery` | `media.gallery_bucket` | viac súborov, poradie sa zachová | image/jpeg, image/png, image/webp, image/gif, image/avif |
| `content` | `media.content_bucket` | viac súborov — vlastní médiá vložené cez \[media:UUID\] | ľubovoľný typ |

Každá skupina používa posts.media.disk, ak je nastavený, a posts.media.responsive\_widths (zoznam kladných celých čísel — iná položka vyhodí InvalidConfigurationException; \[\] neurčí žiadne varianty); null znamená predvolené hodnoty media-library. Responzívne šírky vzniknú ako varianty s názvom responsive-{width}.

## Titulný obrázok a galéria

```php
// Featured image (single-file — a new attach replaces the previous one)
$post->addMedia($request->file('cover'))->toMediaBucket($post->featuredBucket());
$post->featuredImage();                    // ?Media
$post->featuredImageUrl();                 // string ('' or the configured fallback when empty)
$post->featuredImageUrl('responsive-640'); // the variant once generated, else the original

// Gallery (multi-file, order preserved)
$post->addMedia($request->file('photo'))->toMediaBucket($post->galleryBucket());
$post->galleryImages();                    // Collection<int, Media>
$post->galleryImageUrls();                 // list<string>
$post->galleryImageUrls('responsive-320'); // list<string> — each variant once generated, else the original

// The configured bucket names
$post->featuredBucket();   // 'featured'
$post->galleryBucket();    // 'gallery'
$post->contentBucket();    // 'content'
```

Varianty sa generujú vo fronte, preto featuredImageUrl($variant) a galleryImageUrls($variant) vrátia URL variantu, až keď existuje, a dovtedy — alebo pri neznámom názve — URL originálu, takže stránka nespadne.

Všetky ostatné metódy media-library — getMedia(), getFirstMediaUrl(), hasMedia(), clearMediaBucket(), addMediaFromUrl() a ďalšie — má príspevok k dispozícii cez InteractsWithMedia.

## Nastavenia médií

```php
'media' => [
    'disk' => env('POSTS_MEDIA_DISK'),                                  // null = media-library default
    'featured_fallback_url' => env('POSTS_MEDIA_FEATURED_FALLBACK'),
    'responsive_widths' => [480, 960, 1440],                            // positive ints; null = media-library default, [] = no variants
    'seo_og_image' => true,
    'og_variant' => '',                                                 // '' = the original, or a variant such as 'responsive-960'
    'warm_on_publish' => true,
],
```

## Titulný obrázok ako og:image

Ak príspevok nemá explicitný og:image, seo()->ogImage aj obrázok v JSON-LD použijú URL titulného obrázka — vo variante posts.media.og\_variant, keď je už vygenerovaný, inak originál (aj keď je nastavenie prázdne). Vypnete to cez posts.media.seo\_og\_image.

## Predgenerovanie variantov pri publikovaní

Pri PostPublished listener WarmPostMediaVariants vo fronte odošle GenerateVariantsJob z media-library pre každé médium v skupinách featured, gallery a content, takže responzívne varianty sú pripravené v momente zverejnenia. Nerobí nič, ak je posts.media.warm\_on\_publish false, príspevok už neexistuje alebo nemá žiadne médiá.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/posts-for-laravel.md)
