Download nu de app en test 10 dagen gratis
Valuta Taal kiezen Selecteer regio

1. Laad veiligheids-scripts

Aan het begin laadt het bluetronix CMS de veiligheidsrelevante scripts. Dit omvat Secure Check, de controle van het aantal oproepen, de voorbereiding of controle van MySQL-parameters en de analyse van GET- en POST-parameters.

Controles waarbij geen databaseverbinding nodig is, worden al op dit punt uitgevoerd.

2. Laad moduleconfiguratie

Indien aanwezig, wordt het bestand /bx_Mod/config_own.php geladen. Gedefinieerde scripts en configuratievariabelen zijn op deze manier al aan het begin van het renderingproces beschikbaar.

3. Sessie starten

Het CMS start de PHP-sessie met @session_start();. Hierbij zijn met name drie sessievariabelen belangrijk: $_SESSION["S_User"] voor de CMS-gebruiker of bewerkingsmodus, $_SESSION["S_Language"] voor de huidige taal en $_SESSION["Web_User"] voor de gebruiker van een frontend-login.

4. Pagina-parameters laden

Vervolgens leest het CMS informatie over de huidige oproep uit de servervariabelen. $domain krijgt de domeinnaam uit $_SERVER["SERVER_NAME"], $FileParameter het aanvraagpad inclusief GET-parameters uit $_SERVER["REQUEST_URI"] en $file het uitvoerende bestandspad uit $_SERVER["PHP_SELF"].

$ReferURL bevat de waarde van $_SERVER["HTTP_REFERER"], voor zover deze is verzonden. Deze kan bijvoorbeeld worden gebruikt bij het herladen van frames of pagina-onderdelen.

5. Databaseverbinding maken

Het CMS maakt automatisch de databaseverbinding. Daarna staan de CMS-database-tabellen ter beschikking voor verdere controles en om de pagina-inhoud te laden.

6. GET- en POST-parameters opnieuw controleren

Na het opbouwen van de databaseverbinding roept het CMS SECUREGetPost(); aan. De doorgegeven GET- en POST-parameters worden opnieuw gecontroleerd en indien nodig aangepast. Nu zijn ook controles mogelijk die database-informatie vereisen.

7. Domein-, Bewerking- en Taalomleidingen

Afhankelijk van de CMS-configuratie, de opgeroepen domeinnaam, de bewerkingsmodus, de gekozen taal en de oproepparameters kan een omleiding plaatsvinden. Mogelijke bestemmingen zijn de hoofddomein, de edit-domein en talen-specifieke domeinen of URL's.

8. HTTPS-omleiding

Als de website zonder HTTPS is opgeroepen, vindt er een omleiding plaats naar de SSL- of HTTPS-versie van de pagina.

9. Centrale PHP-scripts laden

Nu laadt het CMS zijn centrale PHP-functies. Dit omvat bijvoorbeeld BlueSMTPMail() voor het verzenden van e-mails en BlueFormSend() voor de verwerking van formulieren. Andere centrale functies worden eveneens ingeladen.

10. Pagina-gegevens uit 00_site laden

De gegevens van de opgevraagde pagina worden uit de database-tabel 00_site gelezen. Hierbij worden CMS-variabelen zoals $Template vastgesteld.

Daarnaast worden $LayoutHTML en $SitePHP geïnitialiseerd. $LayoutHTML bevat later de volledige HTML-layout, terwijl $SitePHP de PHP-code bevat die direct bij de opgeroepen pagina hoort.

11. Lay-out uit 00_layout laden

De aan de pagina toegewezen layout wordt uit de database-tabel 00_layout geladen en vormt de basis voor de verdere verwerking in $LayoutHTML.

12. Taalafhankelijke JavaScript-bestanden instellen

Als taal-specifieke bestanden aanwezig zijn, kan het CMS de standaardbestanden BxScript.js en BxHeadScript.js vervangen door passende taalvarianten, bijvoorbeeld door BxScript_nl.js of BxScript_en.js.

Bij dit proces worden de scriptmerken __FV_/bx_script/BxScript_own_min.js__ en __FV_/bx_script/BxHeadScript_own_min.js__ in de lay-out aangepast.

13. Header en dynamische inhoud genereren

Nu worden dynamische inhoud en pagina-specifieke PHP-scripts uitgevoerd. DynMenue() genereert dynamische menu's, IncludeModul() voegt geconfigureerde modules in en EditMARK() stelt de bewerkingsmarkeringen van het CMS in.

Met eval($SitePHP) wordt de PHP-code van de huidige pagina uitgevoerd; eval($IncludePHP) voert ingeladen PHP-scripts uit.

14. Wijzigingsparameters voor CSS en JavaScript instellen

Voor CSS- en JavaScript-bestanden wordt een wijzigingsparameter ingesteld. Zo kan de browser bij bijgewerkte bestanden een nieuwe versie laden, in plaats van een verouderd bestand uit zijn cache te gebruiken.

Bijvoorbeeld, uit een bestandsreferentie zoals /css/style.css kan een oproep met een versieparameter zoals /css/style.css?v2026... ontstaan.

15. Donker- of lichtmodus instellen

Het CMS leest de geconfigureerde weergavemodus uit /bx_style/BxSource/CSSEditDarkLight.bx. Afhankelijk van de inhoud van het bestand wordt de donkere of lichte modus in de layout ingesteld.

16. Module-configuratievariabelen in de lay-out instellen

De module-configuratie uit /bx_Mod/config_own.php wordt op de layout toegepast. Als bijvoorbeeld de winkel, zoekfunctie, login of vertaalmodule is uitgeschakeld, kunnen de bijbehorende bedieningselementen automatisch worden verborgen.

Hiervoor worden lay-outmerken zoals __DB_GB_DesktopIconBasket_Display__, __DB_GB_DesktopIconSearch_Display__, __DB_GB_DesktopIconLogin_Display__ of __DB_GB_DesktopIconLang_Display__ vervangen door none.

17. Overige vervangingsmerken verwijderen

Niet vervangen CMS-placeholders worden uit de uiteindelijke HTML verwijderd. Dit betreft onder andere merken volgens de patronen __DB_...__ en __ST_...__ evenals de daarvoor bestemde interne xxx-commentaarmerken.

18. HTML-opmerkingen verwijderen

Het CMS verwijdert vervolgens HTML-commentaar uit $LayoutHTML. Hierdoor wordt onnodige commentaartekst niet aan de browser geleverd.

19. Taalvertaling uitvoeren

Als $_SESSION["S_Language"] niet gelijk is aan $GBMainLang, worden de gemarkeerde teksten in de momenteel gebruikte taal vertaald. De vertalingen komen uit de database-tabel Translation.

Als een benodigde tekst daar nog niet aanwezig is, wordt er een nieuwe vermelding in Translation aangemaakt. Het CMS herkent vertaalbare inhoud aan de labels My Text en My Text.

20. Aansluiting van afbeeldingen via IMG.pl vervangen

Afbeeldingsoproepen en afbeelding bijsnijdingen via IMG.pl worden vervangen door eerder geproduceerde of geoptimaliseerde afbeeldingsbestanden. De voltooide HTML-pagina kan hierdoor direct toegang krijgen tot deze afbeeldingsvarianten.

21. Voltooide pagina weergeven

Na de verwerking wordt $LayoutHTML met de contenttype text/html; charset=utf-8 aan de browser weergegeven, bijvoorbeeld via print $LayoutHTML;.

Voor niet-geactiveerde of interne domeinen wordt de uitvoer gemarkeerd met noindex, nofollow, zodat deze pagina's niet door zoekmachines worden geïndexeerd.

22. Cache schrijven

Na de pagina-uitvoer kan het CMS de voltooide pagina in de cache opslaan. Voorwaarde is dat er geen S_User is ingelogd, de pagina zich niet in de bewerkingsmodus bevindt en caching voor deze pagina is ingeschakeld.

Bij latere aanroepen kan de opgeslagen HTML-pagina worden gebruikt, zonder het volledige renderproces opnieuw uit te voeren.

FAQ

wat klanten ons vaak vragen

Wat is het site-renderingproces?

Met dit wordt in de handleiding de verwerkingsstappen bedoeld waarmee het bluetronix CMS uit pagina- en lay-outgegevens de voltooide HTML-pagina genereert en aan de browser levert.

Welke veiligheidscontroles vinden plaats voor de databaseverbinding?

Voor de databaseverbinding worden onder andere Secure Check, de controle van het aantal oproepen, de voorbereiding van MySQL-parameters en de analyse van GET- en POST-parameters uitgevoerd.

Wanneer wordt de module-configuratie geladen?

Het bestand /bx_Mod/config_own.php wordt, indien aanwezig, al voor de start van de sessie en voor het opbouwen van de databaseverbinding geladen.

Waarvoor worden S_User, S_Language en Web_User gebruikt?

S_User verwijst naar de CMS-gebruiker of bewerkingsmodus, S_Language de huidige taal van de website en Web_User de gebruiker van een frontend-inlog.

Uit welke database-tabellen komen pagina en lay-out?

De pagina-informatie wordt geladen uit 00_site. De bijbehorende lay-out wordt gelezen uit 00_layout en verwerkt in $LayoutHTML.

Wanneer wordt de PHP-code van een pagina uitgevoerd?

Bij het genereren van de header en dynamische inhoud wordt de pagina-eigen code uitgevoerd via eval($SitePHP) en ingesloten PHP-code via eval($IncludePHP).

Wanneer worden taalafhankelijke JavaScript-bestanden gebruikt?

Als passende taalspecifieke versies beschikbaar zijn, kunnen BxScript.js en BxHeadScript.js door de overeenkomstige taalspecifieke bestanden worden vervangen.

Hoe wordt de Dark- of Light-modus bepaald?

Het CMS leest het bestand /bx_style/BxSource/CSSEditDarkLight.bx en stelt op basis van de inhoud de weergavemodus in de lay-out in.

Wanneer worden teksten automatisch vertaald?

Als de huidige taal afwijkt van $GBMainLang, worden de overeenkomstig gemarkeerde teksten vertaald op basis van de vermeldingen in de tabel Translation.

Onder welke voorwaarden wordt de voltooide pagina gecached?

De cache kan worden geschreven als er geen S_User is ingelogd, de pagina zich niet in de bewerkingsmodus bevindt en caching voor deze pagina is ingeschakeld.

CMS