Obrázok k článku 1
V mojom blogovom systéme existujú dva rôzne mechanizmy na hľadanie obrázkov, ktoré spolupracujú, aby sa vždy zobrazil ten správny vizuál.

Jeden slúži pre zoznam všetkých článkov (blog.php) a druhý, pokročilejší, pre detail konkrétneho článku (clanok.php). Poďme sa pozrieť, ako presne fungujú.

Hľadanie obrázkov v detaile článku (clanok.php)

Keď si prezeráte konkrétny článok, logika hľadania je definovaná vo funkcii findImageWithFormat(). Táto funkcia sa spustí pre každý jeden obrázok, ktorý vložíte do textu pomocou Markdown syntaxe, napríklad ![Popis obrázka](clanok-1).

Systém hľadá súbor v presne definovanom poradí a akonáhle nájde prvú zhodu, použije ju a ďalej už nehľadá.

Priorita č. 1: Nová štruktúra (Odporúčaný spôsob)

Toto je moderný a prehľadný spôsob ukladania obrázkov, kde má každý článok svoj vlastný priečinok.

  • Kde hľadá: blog/img/SLUG_ČLÁNKU/NÁZOV_OBRÁZKA.prípona
  • Príklad: Pre článok so slugom ako-som-vytvoril-portfolio a obrázok ![...](clanok-1) systém postupne hľadá:
    1. blog/img/ako-som-vytvoril-portfolio/clanok-1.webp
    2. blog/img/ako-som-vytvoril-portfolio/clanok-1.png
    3. blog/img/ako-som-vytvoril-portfolio/clanok-1.jpg

Priorita č. 2: Stará štruktúra (Fallback A)

Ak sa obrázok nenájde v novom priečinku, systém skontroluje starú štruktúru pre zaistenie spätnej kompatibility.

  • Kde hľadá: blog/posts/img/SLUG_ČLÁNKU_NÁZOV_OBRÁZKA.prípona
  • Príklad: blog/posts/img/ako-som-vytvoril-portfolio_clanok-1.webp

Priorita č. 3: Stará štruktúra (Fallback B)

Posledná záchrana v starej štruktúre, ak by názov obrázku neobsahoval slug.

  • Kde hľadá: blog/posts/img/NÁZOV_OBRÁZKA.prípona
  • Príklad: blog/posts/img/clanok-1.webp

Ak systém nenájde obrázok ani v jednom z týchto umiestnení, zobrazí predvolený zástupný obrázok z cesty img/image_not_found.png.

Hľadanie obrázkov v zozname článkov (blog.php)

Pre zoznam všetkých článkov na hlavnej stránke blogu platí jednoduchšia logika. Systém tu nehľadá všetky obrázky, ale iba jeden konkrétny – titulný obrázok (titulka).

Dôležité: Súbor blog.php nepoužíva funkciu findImageWithFormat(). Má vlastný mechanizmus, ktorý hľadá súbor s názvom titulka.prípona v dedikovanom priečinku článku. Ak ho nenájde, použije predvolený obrázok z blog/img/defaults/.

Zhrnutie: Ak sa vám v detaile článku obrázok clanok-1 zobrazí správne, ale v zozname článkov chýba náhľad, znamená to, že v priečinku blog/img/VÁŠ_SLUG/ máte síce obrázok clanok-1.webp, ale chýba vám tam titulka.webp (alebo .png, .jpg).