OctoberCMS ~ Redakčný systém

07 April

Rozšírenie médií o možnosť vyhľadávania v databázach

- October CMS

Image: Rozšírenie médií o možnosť vyhľadávania v databázach

Pozná to asi každý, kto sa snaží vytvoriť nejaký ten obsah v podobe článkov. Ak nie, tak potom asi nie sú tie články kvalitné.

Články potrebujú obrázky

Keď píšete článok, alebo blog, tak určite ho chcete obohatiť o pekné obrázky, takže musíte hľadať v rôznych databázach a hľadať takzvané royalty free fotografie. Ide teda o fotografie a fotobanky, ktoré ponúkajú voľne použiteľné fotografie, kde nemusíte platiť ich autorovi, ale je fajn, ak ho minimálne zazdrojujete. 

Pre mňa osobne, ako človeka, čo najviac používa hlavne OctoberCMS ako pre seba, tak aj pre klientov, sa stretávam s tým, že ma obťažuje naháňanie fotografií. Tu mi teda napadlo, že by bolo fajn, keby si človek vedel nájsť fotografiu priamo v správcovi médií. Medzi najviac používané fotobanky osobne považujem Pexels alebo Unsplash, preto to bola prvá voľba, že sa pozriem na ich možnosť používania API, čo ma potešilo, pretože obe databanky API dostupné majú.

Plugin ako riešenie

Nakoľko je OctoberCMS postavený na Laravel frameworku, je teda veľmi jednoduché vytvárať rôzne rozšírenia. Mimo to, OctoberCMS umožňuje rozširovanie aj svojho vlastného systému, takže nie je vôbec problém vytvoriť čokoľvek, čo sa týka nových funkcionalít. 

Čo je teda potrebné spraviť?

V prvom rade si treba uvedomiť, kde chceme aby sa naše rozšírenie zobrazilo a čo vlastne by malo robiť. V mojom prípade teda išlo o to, aby v časti médií, som mal možnosť priamo vyhľadávať nad databankami. To znamená, že je nutné, aby vznikol nejaký button, pomocou ktorého sa zobrazí nejaké okno, v ktorom zadám čo hľadám a následne sa mi vylistujú dostupné fotografie. Musím mať možnosť vidieť veľkú fotografiu a zároveň aj ju priamo stiahnuť, bez toho, aby som ju ukladal do počítača.

API endpointy

Pexels rovnako ako Unsplash podporujú developerské aplikácie a majú dostupnú API na vyhľadávanie fotografií. V prípade Pexels dokonca aj videí. Ale o tom asi niekedy inokedy v inej verzii. Keďže ide o API a treba aplikáciu, tak je viac ako jasné, že niekde bude treba uchovať aj nastavenia pre plugin, teda bude treba mať aj settingy pre správne fungovanie celého pluginu. 

Medzi základné nastavenia teda bude potrebné minimálne info o api kľúčoch, nastaveniach limitov počtu výsledkov, prípadne kam by človek chcel, aby sa mu fotografie ukladali, aby ich mal "roztriedené".

Sťahovanie, náhľady a stránkovanie

Keďže je viac ako jasné, že fotografií na niektoré témy bude veľmi veľa, je viac ako jasné, že bude nutné výsledky stránkovať. To ale nie je asi až taký problém. Ten by som skôr videl v limitoch na api endpointy, keď napríklad máte limit 50 requestov na hodinu. To môže byť seriózny problém. Avšak tiež nič, čo by sa nedalo zabezpečiť aby fungovalo. Jednoducho akonáhle sa dosiahnú limity, vyhľadávanie nad daným endpointom proste nebude dávať žiadne výsledky.

V každom prípade, keď už výsledky máme, máme ich v určitom dizajne, ktorý pripomína štvorcové dlaždice. Na tomto dizajne nevieme, či je fotografia na výšku, na šírku alebo štvorcová, takže treba vytvoriť ešte možnosť zobrazenia veľkého náhľadu, aby si človek vedel pozrieť aj detajly fotografie. Mimo to, treba aby bolo možné danú fotografiu aj stiahnuť priamo do knižnice médií bez toho, by ju bolo nutné stiahnuť do počítaču a následne uploadnúť na server. 

Keďže toto všetko spolu komunikuje cez server, je jednoduché vytvoriť požiadavku, ktorá toto celé spraví za vás. Keďže je fajn mať v súboroch poriadok, vytvoril som nastavenia, ktoré umožnia každý endpoint nasmerovať do samostatného priečinku podľa vlastného uváženia. Ak folder neexistuje, tak sa automaticky vytvorí.