Jak działa proces renderowania strony w bluetronix CMS
Za każdym razem, gdy strona jest wywoływana, system bluetronix CMS przechodzi przez kilka kroków przetwarzania. W tym samouczku poznasz pełny proces renderowania i dowiesz się, kiedy odbywają się kontrole bezpieczeństwa, kiedy uruchamiane są skrypty PHP, jakie zmienne układu są zastępowane i jak generowane są gotowe strony HTML.
1. Ładowanie skryptów zabezpieczeń
Na początku bluetronix CMS ładuje skrypty związane z bezpieczeństwem. Należą do nich Secure Check, sprawdzenie liczby wywołań, przygotowanie oraz weryfikacja parametrów MySQL, a także analiza parametrów GET i POST.
Sprawdzania, które nie wymagają połączenia z bazą danych, są już na tym etapie przeprowadzane.
2. Ładowanie konfiguracji modułu
Jeżeli istnieje, plik /bx_Mod/config_own.php jest ładowany. Skrypty i zmienne konfiguracyjne zdefiniowane w tym pliku są dostępne już na początku procesu renderowania.
Uruchom sesję 3.
CMS uruchamia sesję PHP przy pomocy @session_start();. Szczególnie ważne są trzy zmienne sesji: $_SESSION["S_User"] dla użytkownika CMS lub trybu edycji, $_SESSION["S_Language"] dla aktualnego języka oraz $_SESSION["Web_User"] dla użytkownika logowania w frontendzie.
Załaduj parametry strony 4.
Następnie CMS odczytuje informacje o bieżącym wywołaniu z zmiennych serwera. $domain otrzymuje nazwę domeny z $_SERVER["SERVER_NAME"], $FileParameter ścieżkę żądania wraz z parametrami GET z $_SERVER["REQUEST_URI"], a $file wykonywaną ścieżkę pliku z $_SERVER["PHP_SELF"].
$ReferURL zawiera wartość $_SERVER["HTTP_REFERER"], o ile została przekazana. Może być używana na przykład do ładowania ramek lub sekcji stron.
Nawiąż połączenie z bazą danych 5.
CMS automatycznie nawiązuje połączenie z bazą danych. Po tym dostępne są tabele bazy danych CMS do dalszych analiz i ładowania treści stron.
Ponownie sprawdź parametry GET i POST 6.
Po nawiązaniu połączenia z bazą danych CMS wywołuje SECUREGetPost();. Przekazane parametry GET i POST są ponownie sprawdzane i w razie potrzeby dostosowywane. Teraz możliwe są także kontrole wymagające informacji z bazy danych.
Przekierowania dla domeny, edycji i języka 7.
W zależności od konfiguracji CMS, wywołanej domeny, trybu edycji, wybranego języka i parametrów wywołania może nastąpić przekierowanie. Możliwe cele to główna domena, domena edycyjna oraz domeny lub adresy URL zależne od języka.
Przekierowanie HTTPS 8.
Jeśli strona została wywołana bez HTTPS, następuje przekierowanie na wersję SSL lub HTTPS strony.
Załaduj centralne skrypty PHP 9.
Teraz CMS ładuje swoje centralne funkcje PHP. Należą do nich na przykład BlueSMTPMail() do wysyłania wiadomości i BlueFormSend() do przetwarzania formularzy. Inne centralne funkcje są również włączane.
Załaduj dane strony z 00_site 10.
Dane żądanej strony są odczytywane z tabeli bazy danych 00_site. W tym procesie ustalane są zmienne CMS, takie jak $Template.
Ponadto inicjalizowane są $LayoutHTML i $SitePHP. $LayoutHTML później zawiera pełen układ HTML, podczas gdy $SitePHP zawiera kod PHP, który należy bezpośrednio do wywołanej strony.
Załaduj układ z 00_layout 11.
Związek z układem strony jest ładowany z tabeli bazy danych 00_layout i stanowi podstawę dalszego przetwarzania w $LayoutHTML.
Ustaw pliki JavaScript zależne od języka 12.
Jeśli dostępne są pliki specyficzne dla języka, CMS może zastąpić domyślne pliki BxScript.js i BxHeadScript.js odpowiednimi wariantami językowymi, np. BxScript_de.js lub BxScript_en.js.
W tym celu dostosowane są znaczniki plików __FV_/bx_script/BxScript_own_min.js__ oraz __FV_/bx_script/BxHeadScript_own_min.js__ w układzie.
Generuj nagłówki i dynamiczne treści 13.
Teraz generowane są dynamiczne treści i wykonywane są specyficzne dla strony skrypty PHP. DynMenue() generuje dynamiczne menu, IncludeModul() włącza skonfigurowane moduły, a EditMARK() ustawia znaczniki edycji CMS.
Za pomocą eval($SitePHP) wykonywany jest kod PHP bieżącej strony; eval($IncludePHP) wykonuje zintegrowane skrypty PHP.
Ustaw parametry zmian dla CSS i JavaScript 14.
Dla plików CSS i JavaScript ustalany jest parametr zmiany. W ten sposób przeglądarka może załadować nową wersję zaktualizowanych plików zamiast korzystać ze starych plików z pamięci podręcznej.
Na przykład wywołanie z referencją pliku takiego jak /css/style.css może powstać z użyciem parametru wersji, takiego jak /css/style.css?v2026....
Ustaw tryb ciemny lub jasny 15.
CMS odczytuje skonfigurowany tryb wyświetlania z /bx_style/BxSource/CSSEditDarkLight.bx. W zależności od zawartości pliku tryb ciemny lub jasny jest ustawiany w układzie.
Ustaw zmienne konfiguracyjne modułu w układzie 16.
Konfiguracja modułu z /bx_Mod/config_own.php jest stosowana do układu. Na przykład, jeśli moduł sklepu, wyszukiwania, logowania lub tłumaczenia jest wyłączony, powiązane elementy sterujące mogą być automatycznie ukryte.
Znaczniki układu takie jak __DB_GB_DesktopIconBasket_Display__, __DB_GB_DesktopIconSearch_Display__, __DB_GB_DesktopIconLogin_Display__ lub __DB_GB_DesktopIconLang_Display__ są zastępowane przez none.
Usuń pozostałe znaczniki zastępcze 17.
Nie zastąpione placeholdery CMS są usuwane z gotowego HTML. Dotyczy to między innymi znaczników według wzorców __DB_...__ i __ST_...__ oraz przeznaczonych do tego wewnętrznych znaczników komentarzy xxx.
Usuń komentarze HTML 18.
CMS następnie usuwa komentarze HTML z $LayoutHTML. W ten sposób zbędny tekst komentarza nie jest dostarczany do przeglądarki.
Dokonaj tłumaczenia językowego 19.
Jeśli $_SESSION["S_Language"] nie jest równe $GBMainLang, zaznaczone teksty są tłumaczone na aktualnie używany język. Tłumaczenia pochodzą z tabeli bazy danych Translation.
Jeśli potrzebny tekst nie jest jeszcze dostępny, tworzony jest nowy wpis w Translation. CMS rozpoznaje tłumaczalne treści według znaczników My Text i My Text.
Zamień wywołania obrazów przez IMG.pl 20.
Wywołania obrazów i przycinania obrazów przez IMG.pl są zastępowane wcześniej generowanymi lub zoptymalizowanymi plikami obrazów. Gotowa strona HTML może bezpośrednio uzyskać dostęp do tych wariantów obrazów.
Wydaj gotową stronę 21.
Po zakończeniu przetwarzania $LayoutHTML jest wydawane z typem zawartości text/html; charset=utf-8 do przeglądarki, na przykład poprzez print $LayoutHTML;.
Dla nieaktywowanych lub wewnętrznych domen wyniki będą oznaczone jako noindex, nofollow, aby te strony nie były indeksowane przez wyszukiwarki.
Zapisz pamięć podręczną 22.
Po wygenerowaniu strony CMS może zapisać gotową stronę w pamięci podręcznej. Warunkiem jest, aby żaden S_User nie był zalogowany, strona nie była w trybie edycji, a buforowanie dla tej strony było włączone.
Podczas późniejszych wywołań można używać zapisanej strony HTML, bez ponownego wykonywania pełnego procesu renderowania.
FAQ
co klienci często nas pytają
Czym jest proces renderowania strony?
Tutorial określa tym terminem kroki przetwarzania, w których CMS bluetronix generuje gotową stronę HTML z danych o stronach i układzie, a następnie wydaje ją do przeglądarki.
Jakie kontrole bezpieczeństwa są przeprowadzane przed połączeniem z bazą danych?
Przed połączeniem z bazą danych przeprowadzane są między innymi kontrole Secure Check, sprawdzenie liczby wywołań, przygotowanie parametrów MySQL oraz analiza parametrów GET i POST.
Kiedy ładowana jest konfiguracja modułu?
Plik /bx_Mod/config_own.php jest ładowany, jeśli jest dostępny, już przed rozpoczęciem sesji i przed nawiązaniem połączenia z bazą danych.
Do czego służą S_User, S_Language i Web_User?
S_User odnosi się do użytkownika CMS lub trybu edycji, S_Language do aktualnego języka strony internetowej, a Web_User do użytkownika logowania frontendowego.
Z jakich tabel baz danych pochodzą strona i układ?
Dane strony są ładowane z 00_site. Odpowiedni układ jest odczytywany z 00_layout i przetwarzany w $LayoutHTML.
Kiedy wykonywany jest kod PHP strony?
Podczas generowania nagłówka i dynamicznych treści kod strony jest wykonywany za pomocą eval($SitePHP), a zintegrowany kod PHP za pomocą eval($IncludePHP).
Kiedy używane są pliki JavaScript zależne od języka?
Jeśli są dostępne odpowiednie wersje językowe, pliki BxScript.js i BxHeadScript.js mogą zostać zastąpione odpowiednimi plikami specyficznymi dla danego języka.
Jak określany jest tryb ciemny lub jasny?
CMS odczytuje plik /bx_style/BxSource/CSSEditDarkLight.bx i ustawia tryb wyświetlania w układzie na podstawie jego zawartości.
Kiedy teksty są automatycznie tłumaczone?
Jeśli bieżący język różni się od $GBMainLang, odpowiednio oznaczone teksty są tłumaczone na podstawie wpisów w tabeli Translation.
W jakich warunkach gotowa strona jest buforowana?
Bufor może być zapisany, jeśli żaden S_User nie jest zalogowany, strona nie jest w trybie edycji, a buforowanie dla tej strony zostało włączone.