NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Shops for Laravel

Obrázky produktov

Produkty, varianty a kategórie nesú obrázky cez media-library-for-laravel. Médiá katalógu sú predvolene verejné (vhodné pre CDN aj SEO) a generujú responzívne šírky zo shops.media.responsive_widths. Každá skupina prijme JPEG, PNG, WebP, GIF a AVIF:

ModelSkupina (konfiguračný kľúč)TvarPomocné metódy
Productmedia.featured_bucket (featured)Jeden súborfeaturedImage(), featuredImageUrl()
Productmedia.gallery_bucket (gallery)Viac súborovgalleryImages(), galleryUrls(), seoImageUrl()
ProductVariantmedia.variant_bucket (gallery)Viac súborovvariantImages(), variantImageUrl(), variantImageUrls()
Categorymedia.banner_bucket (banner)Jeden súborbanner(), bannerUrl()
$product->addMedia($file)->toMediaBucket($product->featuredBucket());   // single featured image
$product->addMedia($file)->toMediaBucket($product->galleryBucket());    // multi-image gallery

$product->featuredImage();                      // ?Media
$product->featuredImageUrl();                   // original URL ('' when empty)
$product->featuredImageUrl('responsive-640');   // a responsive width
$product->galleryImages();                      // Collection<Media>
$product->galleryUrls('responsive-320');        // list<string>
$product->seoImageUrl();                        // featured, else the first gallery image, else ''

$variant->addMedia($file)->toMediaBucket($variant->variantGalleryBucket());
$variant->variantImages();                      // Collection<Media>
$variant->variantImageUrl();                    // first variant image URL ('')
$variant->variantImageUrls();                   // list<string>

$category->addMedia($file)->toMediaBucket($category->bannerBucket());
$category->banner();                            // ?Media
$category->bannerUrl();                         // string ('')

Responzívne obrázky

Skupiny nedeklarujú pomenované varianty — každá šírka z rebríka sa vygeneruje ako variant s názvom responsive-{šírka} (nikdy nie väčší ako originál). Na značky použite pomocné metódy srcset z media-library:

$image = $product->featuredImage();

$image?->srcset();   // "… 320w, … 640w, …" — generated widths only, ascending
$image?->responsiveImage('', ['alt' => 'Sparkling Water', 'sizes' => '100vw']);   // a full <img> tag

Každá čítacia metóda prijme voliteľný názov variantu a vráti pôvodný obrázok, ak tento variant ešte nie je vygenerovaný (obrázok je užší než daná šírka alebo konverzia vo fronte ešte neprebehla), takže stránka na chýbajúcom variante nikdy nezlyhá. Názvy skupín, disk, viditeľnosť, responzívne šírky a voliteľný limit veľkosti súboru (v bajtoch) sa nastavujú v shops.media a platia pre všetky skupiny katalógu — produkt, variant aj kategóriu. Záznamy médií sú vo vlastnej tabuľke media balíka media-library, prepojené polymorfne.

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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.