Bevezető

Bevezetés

Az OCMS egy PHP-alapú, webes tartalomkezelő rendszer (Content Management System), amelyet moduláris felépítéssel és rugalmas bővíthetőséggel terveztünk.

Adatbázis-kezelés

Az OCMS elsődlegesen a MySQL adatbázis-kezelő rendszerrel működik. A fejlesztési és tesztelési környezetek kizárólag MySQL-alapú szervereken futottak, és jelenleg is ezen a platformon zajlanak.

Az adatbázis-kapcsolat a PHP PDO (PHP Data Objects) interfészén keresztül valósul meg, amely elméletileg lehetővé teszi más, PDO által támogatott adatbázis-kezelők használatát is, például:

  • Microsoft SQL Server

  • PostgreSQL

  • Oracle

  • Informix

Fontos azonban megjegyezni, hogy ezen adatbázis-rendszerekkel kapcsolatos kompatibilitási tesztek jelenleg nem történtek, így azok használata további validációt igényel.


Template-rendszer

Az OCMS saját fejlesztésű template-megoldást alkalmaz, amelynek központi eleme a HtmlReader osztály.

A sablonfájlok:

  • .tpl kiterjesztésűek

  • tiszta HTML-alapú struktúrát követnek

  • a keretrendszertől függetlenül is megjeleníthetők böngészőben

A template-fájlok speciális, komment-alapú vezérlőelemeket tartalmazhatnak, amelyek a háttérben futó feldolgozást irányítják. A támogatott szerkezeti elemek közé tartoznak:

  • IFDEF – feltételesen megjelenített blokkok

  • LOOP – ismétlődő és egymásba ágyazható blokkok

  • Változók – szöveg, szám vagy tömb típusú adatmegjelenítés

A megközelítés célja a megjelenítési réteg és az alkalmazáslogika egyértelmű szétválasztása.


Moduláris felépítés

Az OCMS alapmodulokon túlmenően opcionálisan aktiválható modulokat is tartalmaz. Ezek a supervisor jogosultságával rendelkező felhasználók által kapcsolhatók be vagy ki.

A modulrendszer biztosítja:

  • a funkcionalitás rugalmas bővíthetőségét

  • az eltérő projektigényekhez való alkalmazkodást

  • a költséghatékony rendszerösszeállítást

A jelenleg leggyakrabban használt modulok:

  • Űrlapkezelő

  • Földrajzi modul

  • Szálláshely-kezelő

  • Csomagajánlat-kezelő

  • Hírkezelő


Jogosultságkezelés

Az adminisztrációs felületen többszintű jogosultsági rendszer működik, amely lehetővé teszi a felhasználók szerepköralapú hozzáférés-szabályozását.


Könyvtárstruktúra

A modulok fájljai funkciójuk szerint elkülönített könyvtárakban találhatók:

  • /admin – adminisztrációs felülethez tartozó fájlok

  • /inc és /includes/public – publikus megjelenítéshez kapcsolódó elemek

  • /includes/common – adminisztrációs és publikus felületen egyaránt használt közös függvények

Ez a szervezés biztosítja az átlátható struktúrát és a karbantarthatóságot.


Fejlesztéstörténet

Az OCMS fejlesztése hivatalosan 2011-ben indult el, és azóta folyamatos fejlesztés és karbantartás alatt áll.

A rendszer folyamatos fejlesztési modell szerint működik, amelynek célja a stabilitás megőrzése mellett az új funkciók és technológiai fejlesztések fokozatos bevezetése. Az egyes kiadások rendszeres karbantartási és funkcionális frissítéseket tartalmaznak.

A fejlesztés egyik alapelve a visszamenőleges kompatibilitás megőrzése. Különös figyelmet fordítunk arra, hogy az új verziók bevezetése ne igényeljen aránytalan mértékű módosítást a meglévő implementációkban, és a rendszerfrissítések hosszú távon is biztonságosan elvégezhetők legyenek.

A rendszer jelenlegi stabil kiadása: 1.7.44.

A verziók bevezetésével kapcsolatos változtatások, fejlesztések és hibajavítások részletes dokumentációja az alábbi oldalon érhető el: Verziótörténet és változásnapló


Az OCMS célkitűzése

Az OCMS elsődleges célja, hogy egyszerre támogassa a fejlesztők, a dizájnerek és az adminisztrátorok hatékony munkavégzését. A rendszer tervezése során kiemelt szempont volt az egyszerű bővíthetőség és az átlátható működés, miközben a teljesítményből sem engedtünk.

Programozói szempont

Az OCMS egyik legfontosabb jellemzője a rugalmas működésmódosítás.

Számos rendszerfüggvény viselkedése módosítható anélkül, hogy az eredeti implementációhoz hozzá kellene nyúlni. A rendszer nem klasszikus PHP osztályöröklésre épít, hanem egy egyedi, könnyen kezelhető helyettesítési mechanizmust alkalmaz.

Ennek előnyei:

  • nincs szükség bonyolult osztályhierarchiák kialakítására

  • egy adott funkció módosításához elegendő csak az érintett függvényhez kapcsolódó kiegészítést elkészíteni

  • a rendszer magja érintetlen marad, így a frissíthetőség biztosított

Ez a megközelítés egyszerűbbé és gyorsabbá teszi az egyedi fejlesztéseket.

Dizájneri szempont

A dizájnerek munkáját a HtmlReader nevű, egyedi fejlesztésű template-rendszer támogatja.

A HtmlReader sablonjai:

  • tiszta HTML fájlok

  • nem tartalmaznak programkódot

  • nem igényelnek PHP-ismeretet

A sablonokban egy minimalista komment-alapú jelölőrendszer használható, amely a háttérben futó PHP feldolgozást vezérli. A jelölőkészlet szándékosan egyszerű és gyorsan elsajátítható.

Ennek eredményeként:

  • a frontend fejlesztés és a backend logika egyértelműen elkülönül

  • a dizájner kizárólag a megjelenésre koncentrálhat

  • nincs szükség template-nyelv tanulására

Adminisztrátori szempont

Az OCMS adminisztrációs felületeit a használhatóság jegyében terveztük.

Jellemzői:

  • letisztult, áttekinthető felépítés

  • logikus menürendszer

  • minimális technikai előismeret igénye

A rendszer alkalmas arra is, hogy olyan felhasználók kezeljék, akik nem rendelkeznek HTML- vagy CSS-ismeretekkel. Több éles projektben a tartalomkarbantartást teljes mértékben nem technikai háttérrel rendelkező személyek végzik.


Rövid technológiai összefoglaló

Az OCMS PHP programnyelven készült, és elsődlegesen MySQL adatbázis-kezelőt használ.

Szerveroldali követelmények

  • PHP: minimum 5.7

  • Tesztelt verziók: 5.7 – 8.2

  • Éles környezetben fut: PHP 8.2 verzión, stabil működéssel

A fejlesztés során alapelv, hogy a kód kompatibilis legyen az aktuális PHP-verziókkal, ugyanakkor megőrizze a visszamenőleges kompatibilitást a minimálisan támogatott verzióig. Ennek köszönhetően a rendszer eltérő verziószintű szerverkörnyezetekben is megbízhatóan üzemeltethető.

Adatbázis

  • MySQL: minimum 5.7

  • Az adatbázis-kapcsolat a PHP PDO (PHP Data Objects) interfészen keresztül valósul meg.

Kliensoldali technológiák

A kliensoldali működés JavaScript-alapú, amely elsősorban a következő könyvtárra épül:

  • jQuery: v3.7.1

A jQuery használata biztosítja a böngészőfüggetlen DOM-kezelést, az eseménykezelést és az aszinkron (AJAX) kommunikáció támogatását.

 

Aloldalak