Näin Bluetronix CMS:n sivun renderöintiprosessi toimii
Jokaisella sivukäynnillä bluetronix CMS käy läpi useita käsittelyvaiheita. Tässä opetusohjelmassa opit täydellisen renderöintiprosessin ja milloin turvallisuus tarkastuksia tehdään, PHP-skriptejä suoritetaan, asettelumuuttujat korvataan ja valmiit HTML-sivut luodaan.
1. Lataa turvallisuusskriptejä
Aluksi bluetronix CMS lataa turvallisuuteen liittyvät skriptit. Näihin kuuluvat Secure Check, kutsulaskennan tarkistus, MySQL-parametrien valmistelu tai tarkistaminen sekä GET- ja POST-parametrien analysointi.
Tarkistukset, jotka eivät vaadi tietokantayhteyttä, suoritetaan jo tässä vaiheessa.
2. Lataa moduulin konfiguraatio
Jos saatavilla, ladataan tiedosto /bx_Mod/config_own.php. Siinä määriteltyjä skriptejä ja konfiguraatiomuuttujia on näin ollen jo saatavilla renderöintiprosessin alussa.
3. Aloita istunto
CMS aloittaa PHP-istunnon komennolla @session_start();. Erityisesti kolme istuntomuuttujaa ovat tärkeitä: $_SESSION["S_User"] CMS-käyttäjälle tai muokkaustilalle, $_SESSION["S_Language"] nykyiselle kielelle ja $_SESSION["Web_User"] sivuston kirjautuneelle käyttäjälle.
4. Lataa sivuparametrit
Sen jälkeen CMS lukee nykyisestä kutsusta tietoja palvelimuuttujista. $domain saa verkkotunnuksen $_SERVER["SERVER_NAME"]:stä, $FileParameter pyyntöpolun, mukaan lukien GET-parametrit $_SERVER["REQUEST_URI"]:stä ja $file suoritettavan tiedostopolun $_SERVER["PHP_SELF"]:stä.
$ReferURL sisältää arvon $_SERVER["HTTP_REFERER"], mikäli se on välitetty. Sitä voidaan käyttää esimerkiksi kehysten tai sivualueiden lataamisessa.
5. Luo tietokantayhteys
CMS luo automaattisesti tietokantayhteyden. Tämän jälkeen CMS:n tietokantataulut ovat käytettävissä lisätestejä ja sivuosion lataamista varten.
6. Tarkista GET- ja POST-parametrit uudelleen
Tietokantayhteyden luomisen jälkeen CMS kutsuu SECUREGetPost();. Välitetyt GET- ja POST-parametrit tarkistetaan uudelleen ja mukautetaan tarvittaessa. Nyt on myös mahdollista tehdä tarkastuksia, jotka vaativat tietokanta tietoja.
7. Alue-, muokkaus- ja kielisiirrot
Riippuen CMS:n konfiguraatiosta, kutsutusta verkkotunnuksesta, muokkaustilasta, valitusta kielestä ja kutsuparametreistä voi tapahtua uudelleenohjaus. Mahdollisia kohteita ovat pääverkkotunnus, muokkaustunnus sekä kieliriippuvaiset verkkotunnukset tai URL-osoitteet.
8. HTTPS-siirto
Jos verkkosivusto on avattu ilman HTTPS:ää, tapahtuu uudelleenohjaus SSL- tai HTTPS-version sivusta.
9. Lataa keskeiset PHP-skriptit
Nyt CMS lataa keskeiset PHP-toimintonsa. Näihin kuuluvat esimerkiksi BlueSMTPMail() sähköpostin lähettämistä varten ja BlueFormSend() lomakkeiden käsittelyyn. Myös muita keskeisiä toimintoja liitetään.
10. Lataa sivudata 00_site:sta
Pyydetyn sivun tiedot luetaan tietokantataulusta 00_site. Tällöin määritellään CMS-muuttujat kuten $Template.
Lisäksi $LayoutHTML ja $SitePHP alustetaan. $LayoutHTML sisältää myöhemmin täydellisen HTML-asettelun, kun taas $SitePHP sisältää PHP-koodin, joka liittyy suoraan kutsuttuun sivuun.
11. Lataa asettelu 00_layout:sta
Sivulle liittyvä asettelu ladataan tietokantataulusta 00_layout ja se muodostaa perustan lisäkäsittelylle $LayoutHTML:ssa.
12. Aseta kieliriippuvaiset JavaScript-tiedostot
Jos kielikohtaisia tiedostoja on saatavilla, CMS voi korvata oletustiedostot BxScript.js ja BxHeadScript.js sopivilla kieliversioilla, esimerkiksi BxScript_de.js tai BxScript_en.js.
Tässä yhteydessä tiedostomerkinnät __FV_/bx_script/BxScript_own_min.js__ ja __FV_/bx_script/BxHeadScript_own_min.js__ mukautetaan ulkoasussa.
13. Luo otsikot ja dynaamiset sisällöt
Nyt luodaan dynaamisia sisältöjä ja sivukohtaisia PHP-skriptejä suoritetaan. DynMenue() luo dynaamisia valikoita, IncludeModul() liittää konfiguroituja moduuleja ja EditMARK() asettaa CMS:n muokkausmerkit.
Komennolla eval($SitePHP) suoritetaan nykyisen sivun PHP-koodi; eval($IncludePHP) suorittaa liitetyt PHP-skriptit.
14. Aseta muutosparametrit CSS:lle ja JavaScriptille
CSS- ja JavaScript-tiedostoille asetetaan muutosparametri. Näin selain voi ladata uuden version päivitetystä tiedostosta sen sijaan, että se käyttäisi vanhentunutta tiedostoa välimuististaan.
Esimerkiksi tiedostoviitteestä kuten /css/style.css voi syntyä kutsu versiotunnuksen kanssa kuten /css/style.css?v2026....
15. Aseta tumma tai vaalea tila
CMS lukee konfiguroidun esitystilan /bx_style/BxSource/CSSEditDarkLight.bx tiedostosta. Tiedoston sisällöstä riippuen asettelu asetetaan tummassa tai vaaleassa tilassa.
16. Aseta moduulin konfiguraatiomuuttujat asettelussa
Moduulin konfigurointi tiedostosta /bx_Mod/config_own.php sovelletaan asetteluun. Esimerkiksi, jos kauppa, haku, kirjautuminen tai käännösmoduuli on poistettu käytöstä, siihen liittyvät käyttöelementit voidaan automaattisesti piilottaa.
Siksi ulkoasumerkit, kuten __DB_GB_DesktopIconBasket_Display__, __DB_GB_DesktopIconSearch_Display__, __DB_GB_DesktopIconLogin_Display__ tai __DB_GB_DesktopIconLang_Display__ korvataan none:lla.
17. Poista jäljellä olevat varaustunnukset
Korvattuja CMS-paikkoja poistetaan valmiista HTML:stä. Tämä koskee muun muassa merkkejä, jotka seuraavat malleja __DB_...__ ja __ST_...__ sekä niille varattuja sisäisiä xxx-kommenttimerkkejä.
18. Poista HTML-kommentit
CMS poistaa sen jälkeen HTML-kommentit $LayoutHTML:sta. Tällä tavoin tarpeettomia kommentti tekstejä ei toimiteta selaimelle.
19. Suorita kielikäännös
Jos $_SESSION["S_Language"] ei ole yhtä kuin $GBMainLang, merkityt tekstit käännetään nykyiseen käytössä olevaan kieleen. Käännökset saadaan tietokantataulusta Translation.
Jos tarvittava teksti ei vielä ole siellä, luodaan uusi merkintä Translation:iin. CMS tunnistaa käännettävät sisällöt merkkien My Text ja mukaan.My TextKuvaviittaukset ja kuvaparteet IMG.pl kautta korvataan aikaisemmin luoduilla tai optimoiduilla kuvatiedostoilla. Valmis HTML-sivu voi siten suoraan käyttää näitä kuvavaihtoehtoja.
20. Korvataan kuvat IMG.pl:llä
Käsittelyn päätyttyä $LayoutHTML toimitetaan selaimelle sisältötyypillä text/html; charset=utf-8, esimerkiksi komennolla print $LayoutHTML;.
21. Anna valmis sivu
Käsittelyn päätyttyä $LayoutHTML tulostetaan sisältötyypillä text/html; charset=utf-8 selaimelle, esimerkiksi komennolla print $LayoutHTML;.
Ei-aktivoiduille tai sisäisille domaineille tulostus merkitään noindex, nofollow, jotta hakukoneet eivät indeksoisi näitä sivuja.
22. Kirjoita välimuisti
Sivun tulostuksen jälkeen CMS voi tallentaa valmiiksi luotu sivu välimuistiin. Edellytyksenä on, että kukaan S_User ei ole kirjautuneena, sivu ei ole muokkaustilassa ja välimuisti tälle sivulle on aktivoitu.
Myöhemmissä kutsuissa voidaan sitten käyttää tallennettua HTML-sivua ilman, että koko renderöintiprosessia tarvitsee suorittaa uudelleen.
UKK
mitä asiakkaat meiltä usein kysyvät
Mikä on sivun renderöintiprosessi?
Tällä tarkoitetaan oppaassa prosessivaiheita, joilla bluetronix CMS tuottaa sivu- ja asettelutiedoista valmiin HTML-sivun ja tulostaa sen selaimelle.
Mitä turvallisuustarkistuksia tehdään ennen tietokantayhteyttä?
Ennen tietokantayhteyttä suoritetaan muun muassa Secure Check, kutsujen määrä, MySQL-parametrien valmistelu sekä GET- ja POST-parametrien analyysi.
Milloin moduulin määritykset ladataan?
Tiedosto /bx_Mod/config_own.php ladataan, mikäli se on olemassa, jo ennen istunnon alkamista ja ennen tietokantayhteyden luomista.
Mihin S_User, S_Language ja Web_User käytetään?
S_User viittaa CMS-käyttäjään tai muokkaustilaan, S_Language nykyiseen verkkosivun kieleen ja Web_User etu-ikkunan käyttäjään.
Mistä tietokantatauluista sivu ja asettelu tulevat?
Sivutiedot ladataan 00_site:stä. Asiaankuuluva asettelu luetaan 00_layout:sta ja käsitellään $LayoutHTML:ssä.
Milloin sivun PHP-koodi suoritetaan?
Otsikon ja dynaamisten sisältöjen luomisen yhteydessä sivukohtainen koodi suoritetaan komennolla eval($SitePHP) ja liitetty PHP-koodi komennolla eval($IncludePHP).
Milloin kieliriippuvaisia JavaScript-tiedostoja käytetään?
Kun sopivia kieliversioita on saatavilla, BxScript.js ja BxHeadScript.js voidaan korvata vastaavilla kielikohtaisilla tiedostoilla.
Miten tumma tai vaalea tila määritetään?
CMS lukee tiedoston /bx_style/BxSource/CSSEditDarkLight.bx ja määrittää sen sisällön perusteella esitysmoodin asettelussa.
Milloin tekstit käännetään automaattisesti?
Kun nykyinen kieli poikkeaa $GBMainLang:stä, vastaavasti merkittyjä tekstejä käännetään taulukon Translation kirjauksien perusteella.
Millä ehdoilla valmis sivu välimuistutetaan?
Välimuisti voidaan kirjoittaa, jos kukaan S_User ei ole kirjautuneena, sivu ei ole muokkaustilassa ja välimuisti tälle sivulle on aktivoitu.