Mi az az OCTOBER CMS? Mit érdemes tudni róla? Miben jobb, mint sok más CMS?
Az OCTOBER CMS az én személyes kedvencem, a projektjeim nagy részét ezzel a tartalomkezelővel készítem el. Mi matt szeretem annyira? És miért éri meg ilyen alapú weboldalt, webshopot készíteni?
Nem tudom, hogy ki az közületek, aki találkozott már az OCTOBER CMS-el. Mikor az ember elkezd webfejlesztéssel foglalkozni, akkor találkozhat azzal az igénnyel, hogy jó lenne valamilyen CMS-t megtanulni. Egy hagyományos keretrendszerrel, például Laravellel, vagy sima PHP-val is bosszantóan sok idő el tud menni arra, hogy pontosan elkészítsünk egy hátsó, az ügyfél igényeit kiszolgáló CMS-t, ami ráadásul még esztétikus is, és felhasználóbarát. Talán közöttetek is vannak olyanok, akik nem igazán szeretik a WordPress-t, és valamilyen más megoldásra lennének kíváncsiak.
Éppen ezért szeretném nektek bemutatni az OCTOBERT, véleményem szerint egy kifejezetten jó architektúra, én személy szerint nagyon meg vagyok vele elégedve. Tekintve, hogy CMS-ről van, szó, a WordPresshez szeretném hasonlítani. Előre szeretném leszögezni, hogy ez a cikk leginkább programozók számára szól.
Architektúra
Az OCTOBER alapvetően MVC-t használ, hasonlóan sok más, MVC alapú keretrendszerekhez, jól elkülöníthető Modellek, Controllerek, valamint View-ek alkotják, akár egy adott pluginon belül is. Ez összeségében véve egy igen jól kezelhető, és átlátható rendszert alkot, ami szerintem összehasonlíthatatlanul jobb, mint a WordPress, ami nem MVC-alapú alapvetően.
Ebből kifolyólag sokkal könnyebb benne egyedi fejlesztéseket kivitelezni, én legalábbis így érzem. Az OCTOBER CMS Laravel alapú, ami manapság a legkeresettebb PHP oldali keretrendszer. Tehát, aki azt ismeri, az nem túl nagy erőfeszítések árán megtanulhatja kezelni.
Ezen felül a CMS rendelkezik egy hátsó szerkesztővel is, aminek a segítségével bármelyik oldalunk tartalma módosítható: beleértve ebbe a szöveges részeket, a HTML-t, és a Twig-et, amit az OCTOBER CMS használ.
Pluginok
Az OCTOBER CMS-hez vannak előre elkészített pluginok, melyek szinte mind ingyenesek. Ez óriási előny, van például kifejezetten jó kereső plugin, szobafoglalási plugin, Cookie Consent (sütibár) plugin, könnyen kezelhető oldalfordító plugin.
Ezek a pluginok kiváló minőségűek: a fordító pluginnal például nem csak a statikus oldalrészek, de még a dinamikusakat is nagyon könnyű lefordítani más nyelvekre, sokkal könnyebben, mint például WordPress esetén a Poedit programmal. A kereső pluginnál teljesen személyre szabható, hogy a statikus oldalak közül, és az adatbázisból milyen attribútumok alapján engedjen keresni.
Kifejezetten tetszik, hogy egy könnyen használható Builder pluginnal lehet saját pluginokat írni, villámgyorsan lehet dolgozni, a megfelelő adatbázis-kapcsolatoktól kezdve addig, hogy milyen mezők legyenek az admin felületen. Nagyrészt előre definiált mezők közül lehet választani: Editorok a szöveg típusú adatok számára, szimpla szövegmezők és range inputok, melyeknek tetszőleges attribútumokat lehet adni.
Amennyiben igény van rá, teljesen egyéni inputokat is lehet rendelni az egyes adatbázis-cellákhoz. Például, volt, hogy egy térképes megjelölőt kellett volna integrálni az admin felületre, ez is megtehető vele.
A pluginok személyre szabatósága a frontendre is érvényes: például, lehet kapcsolati form plugint létrehozni, ami kvázi egy komponens-a WordPress shortcode-jának megfelelve beilleszthető bármelyik oldalra. Ezek a komponensek definiált propertykkel is rendelkezhetnek, tehát például egy blog komponens esetén néhány értéket egy „műszerfalon” beállítva megadható, hogy milyen sorrendben listázza ki az elemeket. Ilyen például az általam írt képgaléria plugin:
Összeségében véve, kicsit több munka van vele, mint a WordPress pluginokkal, amiknek a beüzemelésük nagyjából a dokumentáció elolvasásából áll, viszont az OCTOBER pluginok-a megírásuk után-bármelyik projektre pillanatok alatt felinstallálhatók, és könnyebb személyre szabni őket. Valamint, nem kell évente megvásárolni a pluginokat, mert WordPress pluginoknál sokszor ezt kell tenni.
Sablonok
Az OCTOBER-hez is lehet sablonokat vásárolni, habár szerintem nem éri meg. A sablonok olyan szempontból kicsit hasonlítanak a WordPresshez, hogy ki lehet választani, hogy a „themes” mappából melyik legyen az aktív sablon, és az fog megjelenni a frontenden. Ezeket úgy tudjuk kialakítani, ahogy szeretnénk: létrehozzuk a sablont, definiáljuk a rajta levő oldalakat SEO elemekkel együtt, megcsináljuk, hogy az adatokat a megfelelő módon listázza ki az egyes oldalakra: például a blogcikkeket.
Hasonlóan a pluginokhoz, ha egy idő után már mögöttünk van egy pár projekt, akkor sok kisebb weboldalhoz már lesznek kész sablonjaink, melyeket kicsit átalakítással készre formálhatunk. A WordPress Divi builder sem ad annyira sok lehetőséget alapból, viszont gyorsan lehet vele személyre szabott oldalakat csinálni.
Biztonság-security
Minden CMS-ben fontos, hogy annak a securityje a legerősebb legyen. Lehet itt gondolni a Brutal Force támadásra, Password Hashingra, CSRF támadhatóságra: A Laravel mindezeket jól kezeli. És mivel az OCTOBER erre épül, ezért egy erős Securityval rendelkező CMS, ami a WordPress esetén nem igaz.
Közösség-Community
Akármivel is dolgozunk, fontos, hogy jó minőségű Community legyen, ha valami nem működik, akkor a keresőben picit kutatva választ kapjunk a kérdésünkre. A YouTube-on van egy nagyon jó oktatóvideó-sorozat a témában, amivel én annak idején kezdtem, nagyjából lefedi azt, amire szükség lehet fejlesztéskor, amire ez nem ad választ, azt a Google keresőjében meg lehet találni más fejlesztők részéről. Maga a hivatalos dokumentáció, ahogy ezt a streamer is megjegyezte, nem a legjobb, viszont így, összeségében véve, én egyetlen olyan problémába sem ütköztem, amire ne kaptam volna választ.
Személyre szabhatóság
Az OCTOBER CMS véleményem szerint nagyon jól személyre szabható. Az admin felületen akár teljesen egyedi mezőket is lehet létrehozni, az egyszer megírt pluginok bármelyik projektben újra használhatók. Ezen felül kiváló lehetőség van jogosultsági szintek meghatározására, API-k kezelésére, és még sok minden másra.
Komplexitás
Az általa nyújtott flexibilitásnak köszönhetően eddig minden projekt bármit meg tudtam vele eddig csinálni, amit szerettem volna. Ugyanúgy lehet bele integrálni bármilyen fizetési rendszert, lehet task schedulinget csinálni, és a többi. Egyszer, egy állásinterjún az interjúztató-ekkor még nem használtam az OCTOBER-t-azt mondta, hogy ők komplexebb projekteket is bevállaltak ezzel a rendszerrel, és sikeresen kivitelezték a munkákat.
Programozói tudás
Kétségkívül több kódolást, és fejlesztést igényel, mint egy WordPress weboldal, ahol a weboldalunk vizuális szerkesztők segítségével születik meg. Összeségében véve szerintem nem kell komolyabb, vagy mélyebb programozói tudás hozzá, leginkább a pluginjaink Model-jeiben kell dolgokat, például relationshipeket definiálni.
Fejlesztési idő
A fejlesztési időt hasonlíthatjuk például a Laraveléhez. Ha csak a CMS részéről van szó a projektnek, azt sokkal gyorsabban, kevesebb hibával, és esztétikusan meg lehet vele oldani, mintha egyénileg kellene a hátsó CRUD paneleket elkészíteni.
Az egyedi fejlesztések nagyjából ugyanannyi időbe kerülnek, és ezeket később is újra használhatjuk. Véleményem szerint, amennyiben már vannak előre megírt pluginjaink, akkor még olyan gyorsan is össze lehet vele rakni egy webáruházat, mint WordPressel, vagy egy naptáras foglalási rendszert. Ha pedig a rendszer komplexitása növekszik, akkor sem fogunk akadályba ütközni, legalábbis kevesebb eséllyel.
Bugok, hibák
Ilyenek előfordulnak, viszont kevesebbszer van olyan, hogy valami nem működik, és az ember egyszerűen nem érti, hogy miért nem, ami a WordPress fejlesztés gyakori része. Véleményem szerint nem fordul elő többször, mint mondjuk egy más által készített keretrendszer használatakor.
Konklúzió
Összeségében véve én nagyon meg vagyok elégedve vele, habár szeretném leszögezi, hogy egy CMS-ről beszélünk: egy nagyon specifikus igényekkel bíró projektet még keretrendszerrel sem érdemes megvalósítani, mert ezeknek is előjöhetnek a hátrányai. A legtöbb, kisebb/közepes projektre véleményem szerint megfelel, habár egy eBay-t talán nem ezzel lenne érdemes elkészíteni.