Így működik a Site-Rendering folyamat a bluetronix CMS-ben
Minden oldalmegnyitáskor a bluetronix CMS több feldolgozási lépést hajt végre. Ebben a tutorialban megismerheted a teljes renderelési folyamatot, és megtudhatod, mikor történnek a biztonsági ellenőrzések, mikor futnak le a PHP szkriptek, mikor cserélődnek le az elrendezésváltozók és mikor keletkeznek a kész HTML-oldalak.
1. Biztonsági szkriptek betöltése
Kezdetben a bluetronix CMS betölti a biztonsági szempontból fontos scripteket. Ezek között szerepel a Secure Check, a hívások számának ellenőrzése, MySQL-paraméterek előkészítése vagy ellenőrzése, valamint a GET- és POST-paraméterek elemzése.
Olyan ellenőrzések, amelyek nem igényelnek adatbázis-kapcsolatot, már ezen a ponton megtörténnek.
2. Modulbeállítások betöltése
Ha létezik, beolvassa a /bx_Mod/config_own.php fájlt. Az abban definiált scriptek és konfigurációs változók már a rendering folyamat elején rendelkezésre állnak.
3. Ülés indítása
A CMS a PHP-ülést a @session_start(); paranccsal indítja. Különösen három ülést változó fontos: $_SESSION["S_User"] a CMS-felhasználóhoz vagy szerkesztői módhoz, $_SESSION["S_Language"] az aktuális nyelvhez, és $_SESSION["Web_User"] a frontend bejelentkezés felhasználójához.
4. Oldalparaméterek betöltése
Ezt követően a CMS információkat olvas ki az aktuális hívásról a szerver változókból. A $domain a domainnevet a $_SERVER["SERVER_NAME"]-ből kapja, a $FileParameter a kérést elérési útját, beleértve a GET-paramétereket a $_SERVER["REQUEST_URI"]-ből, és a $file a végrehajtott fájl elérési útját a $_SERVER["PHP_SELF"]-ből.
$ReferURL tartalmazza a $_SERVER["HTTP_REFERER"] értékét, ha az átadásra került. Például keretek vagy oldalrészek betöltésekor használható.
5. Adatbázis-kapcsolat létrehozása
A CMS automatikusan létrehozza az adatbázis-kapcsolatot. Ezt követően a CMS adatbázistáblái rendelkezésre állnak további ellenőrzésekhez és a lap tartalmának betöltéséhez.
6. GET- és POST-paraméterek újbóli ellenőrzése
Az adatbázis-kapcsolat létrehozása után a CMS meghívja a SECUREGetPost(); függvényt. Az átadott GET- és POST-paramétereket ismételten ellenőrzik és szükség esetén módosítják. Most már olyan ellenőrzések is lehetségesek, amelyek adatbázisinformációkat igényelnek.
7. Domain-, szerkesztési- és nyelvi átirányítások
A CMS konfigurációjától, a hívott domain-től, a módosító módtól, a választott nyelvtől és a hívási paraméterektől függően átirányítás történhet. Lehetséges célok a fődomain, a módosító domain, valamint nyelvfüggő domainek vagy URL-ek.
8. HTTPS-átirányítás
Ha a weboldalt HTTPS nélkül hívták meg, akkor átirányítás történik az SSL- vagy HTTPS-verzióra.
9. Központi PHP-scriptek betöltése
Most a CMS betölti központi PHP-függvényeit. Ide tartozik például a BlueSMTPMail() az e-mailek küldésére és a BlueFormSend() a űrlapok feldolgozásához. További központi funkciók is integrálva lesznek.
10. Oldaladatok betöltése a 00_site-ból
A kért oldal adatai a 00_site adatbázistáblából olvashatók. Itt CMS-változók, mint például $Template kerülnek meghatározásra.
Ezenkívül $LayoutHTML és $SitePHP inicializálva van. A $LayoutHTML később tartalmazza a teljes HTML-elrendezést, míg $SitePHP a hívott oldalhoz közvetlenül tartozó PHP-kódot tartalmaz.
11. Elrendezés betöltése a 00_layout-ból
Az oldalhoz rendelt elrendezést a 00_layout adatbázistáblából töltjük be, amely az alapját képezi a további feldolgozásnak a $LayoutHTML-ben.
12. Nyelvfüggő JavaScript-fájlok beállítása
Ha nyelvspecifikus fájlok állnak rendelkezésre, a CMS a standard fájlokat BxScript.js és BxHeadScript.js a megfelelő nyelvi változatokra cserélheti, például BxScript_de.js vagy BxScript_en.js.
Ezért a fájljelölők __FV_/bx_script/BxScript_own_min.js__ és __FV_/bx_script/BxHeadScript_own_min.js__ a layoutban módosításra kerülnek.
13. Fejlécek és dinamikus tartalom létrehozása
Most dinamikus tartalmak készülnek és oldal-specifikus PHP-szkriptek futnak. A DynMenue() dinamikus menüket hoz létre, az IncludeModul() integrálja a konfigurált modulokat, és a EditMARK() beállítja a CMS szerkesztési márkáit.
A eval($SitePHP) végrehajtja az aktuális oldal PHP-kódját; a eval($IncludePHP) futtatja a beágyazott PHP-szkripteket.
14. Változási paraméterek beállítása CSS-hez és JavaScript-hez
A CSS- és JavaScript-fájlokhoz egy módosítási paraméter kerül beállításra. Így a böngésző a frissített fájlok esetében egy új verziót tölthet le, ahelyett, hogy elavult fájlt használna a gyorsítótárából.
Például egy fájlhivatkozás, mint /css/style.css, egy hívással, például /css/style.css?v2026... alakulhat.
15. Sötét vagy világos mód beállítása
A CMS kiolvassa a konfigurált megjelenítési módot a /bx_style/BxSource/CSSEditDarkLight.bx fájlból. A fájl tartalmától függően a sötét vagy világos módot állítja be az elrendezésben.
16. Modul-konfigurációs változók beállítása az elrendezésben
A /bx_Mod/config_own.php modulkonfigurációja alkalmazásra kerül az elrendezésre. Ha például a bolt, a keresés, a bejelentkezés vagy a fordító modul ki van kapcsolva, a hozzá tartozó kezelőelemek automatikusan elrejtésre kerülnek.
A layoutjelölők, mint például __DB_GB_DesktopIconBasket_Display__, __DB_GB_DesktopIconSearch_Display__, __DB_GB_DesktopIconLogin_Display__ vagy __DB_GB_DesktopIconLang_Display__, none-ra kerülnek cserélésre.
17. Hátralévő helyettesítő címkék eltávolítása
A nem helyettesített CMS helyettesítők eltávolításra kerülnek a végső HTML-ből. Ez érinti többek között a __DB_...__ és __ST_...__ minták szerinti jelölőket, valamint a számukra kijelölt belső xxx-megjegyzéseket.
18. HTML-megjegyzések eltávolítása
A CMS ezt követően eltávolítja a HTML-megjegyzéseket a $LayoutHTML-ből. Így felesleges megjegyzés szöveg nem kerül a böngészőhöz.
19. Nyelvi fordítás elvégzése
Ha $_SESSION["S_Language"] nem egyenlő $GBMainLang-nal, a megjelölt szövegek lefordításra kerülnek a jelenleg használt nyelvre. A fordítások a Translation adatbázistáblából származnak.
Ha a szükséges szöveg még nem létezik ott, egy új bejegyzés kerül létrehozásra a Translation-ben. A CMS a My Text és My Text márkák alapján ismeri fel a fordítható tartalmakat.
20. Kép-hívások lecserélése IMG.pl-re
Képkérések és képvágások a IMG.pl segítségével a korábban létrehozott vagy optimalizált képfájlokkal helyettesítődnek. A kész HTML-oldal így közvetlenül hozzáférhet ezekhez a képváltozatokhoz.
21. Kész oldal kiadása
A feldolgozás befejezését követően a $LayoutHTML a text/html; charset=utf-8 tartalomtípussal kerül a böngészőbe, például a print $LayoutHTML; segítségével.
A nem aktivált vagy belső domainok esetében a kimenetet noindex, nofollow jelzéssel látják el, hogy ezeket az oldalakat a keresőmotorok ne indexeljék.
22. Cache írása
Az oldal kimenete után a CMS eltárolhatja a létrehozott oldalt a gyorsítótárba. A feltétel, hogy ne legyen bejelentkezve S_User, az oldal ne legyen szerkesztési módban, és a gyorsítótárazás engedélyezve legyen az oldalhoz.
Későbbi hívásoknál a tárolt HTML-oldal használható, anélkül, hogy újra végre kellene hajtani a teljes renderelési folyamatot.
GYIK
Miket kérdeznek tőlünk gyakran az ügyfelek?
Mi az oldal renderelési folyamat?
Ezt a folyamatot nevezi így a tutorial, amely a bluetronix CMS által a lap- és elrendezési adatok alapján létrehozott kész HTML-oldal előállítási lépéseit jelenti.
Milyen biztonsági ellenőrzések történnek a adatbázis-kapcsolat előtt?
Az adatbázis-kapcsolat előtt többek között Secure Check, a hívásszám ellenőrzése, a MySQL paraméterek előkészítése és a GET- és POST-paraméterek elemzése zajlik.
Mikor töltődik be a modul konfiguráció?
A fájl /bx_Mod/config_own.php, ha létezik, már a munkamenet megkezdése előtt és az adatbázis-kapcsolat kialakítása előtt betöltődik.
Mire használják az S_User, S_Language és Web_User?
S_User a CMS-felhasználót vagy szerkesztési módot jelöli, S_Language a weboldal aktuális nyelvét, és a Web_User pedig a frontend bejelentkezés felhasználóját.
Milyen adatbázis-táblákból származik az oldal és az elrendezés?
Az oldalak adatai a 00_site-ból töltődnek be. A kapcsolódó elrendezés a 00_layout-ból olvasható és a $LayoutHTML-ban dolgozzák fel.
Mikor hajtják végre egy oldal PHP-kódját?
A fejléc és a dinamikus tartalmak létrehozásakor az oldalhoz tartozó kód a eval($SitePHP) és az összegzett PHP-kód a eval($IncludePHP) segítségével hajtódik végre.
Mikor használják a nyelvfüggő JavaScript-fájlokat?
Ha megfelelő nyelvi változatok állnak rendelkezésre, a BxScript.js és a BxHeadScript.js a megfelelő nyelvspecifikus fájlokkal helyettesíthetők.
Hogyan határozzák meg a sötét vagy világos módot?
A CMS beolvassa a /bx_style/BxSource/CSSEditDarkLight.bx fájlt, és annak tartalma alapján beállítja a megjelenítési módot az elrendezésben.
Mikor fordítják le automatikusan a szövegeket?
Ha az aktuális nyelv eltér a $GBMainLang-tól, a megfelelően megjelölt szövegeket a Translation táblázat bejegyzései alapján fordítják le.
Milyen feltételek mellett tárolják a kész oldalt a gyorsítótárban?
A gyorsítótár akkor írható, ha nincs bejelentkezve S_User, az oldal nem szerkesztési módban van, és a gyorsítótárazás engedélyezve van az oldalhoz.