Takto funguje proces renderovania stránok v bluetronix CMS
Pri každom otvorení stránky prechádza bluetronix CMS viacerými spracovateľskými krokmi. V tomto tutoriále sa dozviete o celom procese renderovania a kedy prebiehajú bezpečnostné kontroly, vykonávajú sa PHP skripty, nahrádzajú sa premenné rozloženia a vytvárajú sa hotové HTML stránky.
1. Načítanie bezpečnostných skriptov
Na začiatku načíta bluetronix CMS bezpečnostne relevantné skripty. Tieto zahŕňajú Secure Check, kontrolu počtu volaní, prípravu alebo kontrolu MySQL parametrov a analýzu GET a POST parametrov.
Kontroly, ktoré nepotrebujú pripojenie k databáze, sa vykonávajú už v tomto momente.
2. Načítanie konfigurácie modulu
Ak je k dispozícii, načíta sa súbor /bx_Mod/config_own.php. Skripty a konfiguračné premenne definované v ňom sú tak už k dispozícii na začiatku procesu vykresľovania.
3. Spustiť reláciu
CMS spúšťa PHP reláciu s @session_start();. Pri tom sú najdôležitejšie tri premenné relácie: $_SESSION["S_User"] pre používateľa CMS alebo režim úprav, $_SESSION["S_Language"] pre aktuálny jazyk a $_SESSION["Web_User"] pre používateľa front-end prihlásenia.
4. Načítať parametre stránok
Potom CMS číta informácie o aktuálnom volaní zo serverových premenných. $domain získava názov domény z $_SERVER["SERVER_NAME"], $FileParameter cestu požiadavky vrátane GET parametrov z $_SERVER["REQUEST_URI"] a $file vykonávaný cestu k súboru z $_SERVER["PHP_SELF"].
$ReferURL obsahuje hodnotu $_SERVER["HTTP_REFERER"], ak bola odovzdaná. Môže sa napríklad použiť pri načítavaní rámcov alebo oblastí stránok.
5. Vytvoriť pripojenie k databáze
CMS automaticky nadväzuje databázové pripojenie. Následne sú tabuľky CMS databázy k dispozícii na ďalšie kontroly a načítanie obsahu stránok.
6. Opätovne skontrolovať GET a POST parametre
Po nadviazaní databázového pripojenia CMS volá SECUREGetPost();. Odovzdané GET a POST parametre sa opäť kontrolujú a podľa potreby prispôsobujú. Teraz sú možné aj kontroly, ktoré vyžadujú databázové informácie.
7. Presmerovania domény, úprav a jazyka
V závislosti od konfigurácie CMS, požiadavky na doménu, editačného režimu, vybraného jazyka a parametrov požiadavky môže dôjsť k presmerovaniu. Možné ciele sú hlavná doména, editačná doména a jazykovo závislé domény alebo URL.
8. Presmerovanie na HTTPS
Ak bola webová stránka volaná bez HTTPS, dôjde k presmerovaniu na SSL alebo HTTPS verziu stránky.
9. Načítať centrálne PHP skripty
CMS teraz načíta svoje centrálne PHP funkcie. Sem patrí napríklad BlueSMTPMail() na odosielanie e-mailov a BlueFormSend() na spracovanie formulárov. Ďalšie centrálne funkcie budú rovnako pridané.
10. Načítať údaje stránky z 00_site
Údaje požadovanej stránky sa čítajú z databázovej tabuľky 00_site. Pri tom sa zistia CMS premenné ako $Template.
Okrem toho sa inicializujú $LayoutHTML a $SitePHP. $LayoutHTML neskôr obsahuje kompletné HTML rozloženie, zatiaľ čo $SitePHP obsahuje PHP kód priamo patriaci k volanej stránke.
11. Načítať rozloženie z 00_layout
Rozloženie priradené k stránke sa načíta z databázovej tabuľky 00_layout a tvorí základ pre ďalšie spracovanie v $LayoutHTML.
12. Nastaviť jazykovo závislé JavaScript súbory
Ak sú prítomné jazykovo špecifické súbory, CMS môže nahradiť štandardné súbory BxScript.js a BxHeadScript.js vhodnými jazykovými variantami, napríklad BxScript_sk.js alebo BxScript_en.js.
Pri tomto sa značky súborov __FV_/bx_script/BxScript_own_min.js__ a __FV_/bx_script/BxHeadScript_own_min.js__ v rozložení upravujú.
13. Vytvoriť hlavičku a dynamický obsah
Teraz sa generujú dynamické obsahy a vykonávajú sa stránkovo špecifické PHP skripty. DynMenue() vytvára dynamické menu, IncludeModul() zahrňuje konfigurované moduly a EditMARK() nastavuje editačné značky CMS.
S eval($SitePHP) sa vykonáva PHP kód aktuálnej stránky; eval($IncludePHP) vykonáva zahrnuté PHP skripty.
14. Nastaviť parametre zmien pre CSS a JavaScript
Pre CSS a JavaScript súbory sa nastavená parameter pre zmenu. Tak môže prehliadač pri aktualizovaných súboroch načítať novú verziu, namiesto použitia zastaralého súboru zo svojej vyrovnávacej pamäte.
Napríklad z odkazu súboru ako /css/style.css môže vzniknúť volanie s verzijným parametrom ako /css/style.css?v2026....
15. Nastaviť tmavý alebo svetlý mód
CMS číta nakonfigurovaný režim zobrazenia z /bx_style/BxSource/CSSEditDarkLight.bx. V závislosti od obsahu súboru sa nastaví tmavý alebo svetlý režim v rozložení.
16. Nastaviť konfiguračné premenne modulu v rozložení
Konfigurácia modulu z /bx_Mod/config_own.php sa aplikuje na rozloženie. Ak sú napríklad obchod, vyhľadávanie, prihlásenie alebo prekladový modul deaktívne, prislúchajúce ovládacie prvky môžu byť automaticky skryté.
Značky rozloženia ako __DB_GB_DesktopIconBasket_Display__, __DB_GB_DesktopIconSearch_Display__, __DB_GB_DesktopIconLogin_Display__ alebo __DB_GB_DesktopIconLang_Display__ sú nahradené none.
17. Odstrániť zvyšné náhradné značky
Nahradené zástupné znaky CMS sa odstránia z hotového HTML. To sa týka najmä značiek podľa vzorov __DB_...__ a __ST_...__ a interných xxx komentárských značiek.
18. Odstrániť HTML komentáre
CMS následne odstráni HTML komentáre z $LayoutHTML. Tým sa zbytočný komentárny text nedoručí prehliadaču.
19. Vykonať jazykový preklad
Ak $_SESSION["S_Language"] nie je rovný $GBMainLang, označené texty sa preložia do aktuálne používaného jazyka. Preklady pochádzajú z databázovej tabuľky Translation.
Ak potrebný text ešte nie je prítomný, vytvorí sa nový záznam v Translation. CMS rozpoznáva prekladateľné obsahy na základe značiek My Text a My Text.
20. Nahradiť obrazové volania cez IMG.pl
Výstupy obrázkov a orezania obrázkov cez IMG.pl budú nahradené predtým vytvorenými alebo optimalizovanými obrazovými súbormi. Hotová HTML stránka tak môže priamo pristupovať k týmto variantám obrázkov.
21. Vygenerovať hotovú stránku
Po dokončení spracovania sa $LayoutHTML odovzdá prehliadaču s typom obsahu text/html; charset=utf-8, napríklad cez print $LayoutHTML;.
Pre neaktívne alebo interné domény je výstup označený noindex, nofollow, aby tieto stránky neboli indexované vyhľadávačmi.
22. Zapísať do cache
Po vygenerovaní stránky môže CMS uložiť dokončenú stránku do cache. Podmienkou je, že nie je prihlásený žiadny S_User, stránka nie je v editačnom režime a caching je pre túto stránku aktivovaný.
Pri neskorších volaniach sa môže použiť uložená HTML stránka, bez toho aby sa znovu vykonal celý proces renderovania.
Často kladené otázky
čo sa nás zákazníci často pýtajú
Čo je proces renderovania stránky?
Týmto termínom sa v návode označujú spracovateľské kroky, ktorými bluetronix CMS generuje hotovú HTML stránku z údajov stránky a rozloženia a posiela ju do prehliadača.
Aké bezpečnostné kontroly sa vykonávajú pred pripojením k databáze?
Pred pripojením k databáze sa vykonáva mimo iného Secure Check, kontrola počtu volaní, príprava MySQL parametrov a analýza GET a POST parametrov.
Kedy sa načítava konfigurácia modulu?
Súbor /bx_Mod/config_own.php sa, ak je k dispozícii, načíta už pred začiatkom relácie a pred vytvorením pripojenia k databáze.
Na čo sa používajú S_User, S_Language a Web_User?
S_User označuje používateľa CMS alebo editačný režim, S_Language je aktuálny jazyk webovej stránky a Web_User je používateľ frontendového prihlásenia.
Z ktorých databázových tabuliek pochádzajú údaje stránky a rozloženia?
Údaje o stránke sa načítavajú z 00_site. Prislúchajúce rozloženie sa číta z 00_layout a spracováva sa v $LayoutHTML.
Kedy sa vykonáva PHP kód stránky?
Pri generovaní hlavičky a dynamických obsahov sa kód stránky vykonáva cez eval($SitePHP) a pripojený PHP kód cez eval($IncludePHP).
Kedy sa používajú jazykovo závislé JavaScript súbory?
Ak sú k dispozícii vhodné jazykové varianty, môžu byť BxScript.js a BxHeadScript.js nahradené odpovedajúcimi jazykovo špecifickými súbormi.
Ako sa určuje tmavý alebo svetlý režim?
CMS načítava súbor /bx_style/BxSource/CSSEditDarkLight.bx a na základe jeho obsahu nastavuje režim zobrazenia v rozložení.
Kedy sú texty automaticky prekladané?
Ak sa aktuálny jazyk líši od $GBMainLang, budú príslušne označené texty preložené na základe záznamov v tabuľke Translation.
Za akých podmienok sa hotová stránka ukladá do cache?
Cache môže byť zapísaná, ak nie je prihlásený žiadny S_User, stránka nie je v editačnom režime a caching pre túto stránku bol aktivovaný.