Kolejność wykonywania PHP: Nagłówek, główna strona i stopka
To samouczek dla programistów ilustruje na podstawie podstawowego układu z bx_Header.html, index.html i bx_Footer.html, kiedy poszczególne skrypty PHP są wykonywane. Dowiesz się, jak zawartość $LayoutHTML rozwija się krok po kroku i gdzie możesz wprowadzać zmiany zależne od strony lub globalne.
Wymagania i cel
W tym samouczku dla programistów powinieneś wiedzieć, jak system CMS bluetronix składa stronę z jej układu, nagłówka, głównej strony i stopki. Pokażemy ci, w jakiej kolejności skrypty PHP tych obszarów są wykonywane oraz które części $LayoutHTML są już załadowane.
W przykładzie podstawowy układ składa się z plików CMS bx_Header.html, index.html i bx_Footer.html. Główna strona index.html reprezentuje aktualnie wywołaną stronę HTML.
Podstawowy układ: Nagłówek, główna strona i stopka
Podstawowy układ określa, w jakiej kolejności trzy obszary są włączane. W pokazanym przykładzie definicję układu znajdziesz w tabeli 00_layout.
Relewantny fragment układu wygląda tak:
__DB_Layout_/bx_Header.html__
<main>
__DB_Layout_Main__
</main>
__DB_Layout_/bx_Footer.html__
Pierwszy zamiennik wstawia bx_Header.html. W obrębie elementu main przez __DB_Layout_Main__ wstawiana jest aktualnie wywoływana strona, w naszym przykładzie index.html. Następnie wstawiany jest bx_Footer.html.
Chociaż definicja układu zawiera wszystkie trzy obszary, odpowiednia zawartość HTML dla kodu PHP poszczególnych obszarów jest wczytywana stopniowo w $LayoutHTML.
1. Kod PHP nagłówka jest wykonywany jako pierwszy.
Otwórz w menedżerze plików plik bx_Header.html. Możesz edytować kod PHP tego obszaru za pomocą Kod PHP.
Nagłówek jest pierwszym ładowanym obszarem strony. Gdy jego kod PHP jest wykonywany, $LayoutHTML zawiera tylko HTML z bx_Header.html.
PHP-Code: bx_Header.html
$LayoutHTML enthält:
bx_Header.html
Możesz tutaj na przykład zastąpić znaczniki nagłówka lub przygotować nawigację. Do właściwej zawartości HTML z index.html lub bx_Footer.html na tym etapie wciąż nie masz dostępu przez $LayoutHTML.
2. Kod PHP głównej strony jest następnie wykonywany
Po nagłówku system CMS ładuje wzywaną główną stronę, tutaj index.html, i wykonuje jej kod PHP. W tym momencie $LayoutHTML zawiera zarówno kod HTML nagłówka, jak i kod HTML głównej strony.
PHP-Code: index.html
$LayoutHTML enthält:
bx_Header.html
index.html
Dzięki temu kod PHP głównej strony może nie tylko zastępować własne znaczniki, ale także zmieniać już istniejące znaczniki w obrębie nagłówka.
Na przykład, jeśli twój nagłówek zawiera znacznik __HeaderClass__, możesz go zastąpić z głównej strony:
$LayoutHTML = str_replace("__HeaderClass__","active",$LayoutHTML);
W ten sposób określona główna strona może na przykład oznaczyć swój element menu jako aktywny w już załadowanym nagłówku.
Stopka nie została jeszcze załadowana w tym momencie. Jej zawartość HTML nie może być zatem wiarygodnie zmieniana przez $LayoutHTML.
3. Kod PHP stopki jest wykonywany na końcu
Na końcu system CMS ładuje bx_Footer.html i wykonuje jego kod PHP. Teraz $LayoutHTML zawiera zawartość HTML wszystkich trzech obszarów.
PHP-Code: bx_Footer.html
$LayoutHTML enthält:
bx_Header.html
index.html
bx_Footer.html
Kod PHP stopki może więc zastępować znaczniki w obrębie nagłówka, głównej strony lub stopki, o ile są one w tym momencie dostępne.
Jeśli zawarte już HTML na przykład zawiera znacznik __MyTitle__, możesz go tam zastąpić:
$LayoutHTML = str_replace("__MyTitle__","My Custom Title",$LayoutHTML);
Stopka nadaje się więc również do wspólnych modyfikacji, które powinny być wykonane dopiero po załadowaniu całej struktury strony.
Kolejność wykonania w skrócie
Decydująca zasada brzmi: PHP może zmieniać przez $LayoutHTML tylko te obszary HTML, które zostały już w tym momencie załadowane.
1. bx_Header.html
PHP sieht: Header
↓
2. index.html
PHP sieht: Header + Hauptseite
↓
3. bx_Footer.html
PHP sieht: Header + Hauptseite + Footer
Jeśli chcesz na przykład zarządzać znacznikami nagłówka z określonej strony, używasz kodu PHP tej głównej strony. Jeśli znacznik ma być zastąpiony we wszystkich trzech już załadowanych obszarach, odpowiedni będzie ostatnio wykonany kod PHP stopki.
Waży przy własnych funkcjach PHP
Jeśli definiujesz własne funkcje PHP w różnych obszarach, upewnij się, że ta sama funkcja nie jest definiowana wielokrotnie podczas wywołania strony. Wybieraj unikalne nazwy funkcji lub sprawdź przed definicją, czy funkcja już istnieje.
if(!function_exists("MyTemplateFunction")) {
function MyTemplateFunction() {
return true;
}
}
Podsumowanie
W naszym podstawowym układzie najpierw wykonywany jest kod PHP z bx_Header.html, następnie kod PHP z index.html, a na końcu kod PHP z bx_Footer.html. Z każdym krokiem HTML zawartość, do której masz dostęp przez $LayoutHTML, się rozszerza.
Umieść swój kod PHP tam, gdzie wymagane obszary HTML są już załadowane: w nagłówku do dostosowań specyficznych dla nagłówka, na stronie głównej do własnych treści oraz wcześniej załadowanego nagłówka lub w stopce do zmian w już złożonym układzie.
FAQ
co klienci często nas pytają
W jakiej kolejności wykonywane są skrypty PHP?
Najpierw wykonywany jest kod PHP z bx_Header.html, następnie kod PHP strony głównej, na przykład index.html, a na końcu kod PHP z bx_Footer.html.
Jakie obszary HTML zawiera $LayoutHTML podczas kodu PHP nagłówka?
Podczas wykonywania kodu PHP nagłówka $LayoutHTML zawiera tylko już załadowaną zawartość HTML z bx_Header.html.
Czy strona główna może zmieniać kod HTML nagłówka?
Tak. Gdy wykonywany jest kod PHP strony głównej, nagłówek i strona główna są już obecne w $LayoutHTML. Dzięki temu możesz na przykład zastąpić wcześniej utworzony w nagłówku znacznik.
Dlaczego kod PHP nagłówka nie może jeszcze zmieniać stopki?
Stopka jest ładowana dopiero po stronie głównej. Jej zawartość HTML nie jest więc jeszcze dostępna w $LayoutHTML podczas kodu PHP nagłówka.
Jakie obszary może zmieniać kod PHP stopki?
W momencie wykonywania stopki $LayoutHTML już zawiera nagłówek, stronę główną i stopkę. Pozostałe znaczniki w tych obszarach mogą być tam zastępowane.
Gdzie mogę zobaczyć układ podstawowego szablonu?
Definicja układu jest pokazana w przykładzie w tabeli 00_layout. Włącza ona bx_Header.html, aktualną stronę główną oraz bx_Footer.html.
Gdzie mogę edytować kod PHP z bx_Header.html?
Wybierz bx_Header.html w menedżerze plików i otwórz Kod PHP.
Co muszę uwzględnić przy własnych funkcjach PHP w nagłówku i stronie głównej?
Własne funkcje nie mogą być definiowane wielokrotnie pod tą samą nazwą podczas jednego wywołania strony. Używaj unikalnych nazw lub sprawdzaj przed definicją za pomocą function_exists(), czy funkcja już istnieje.