סדר הביצוע של PHP: כותרת, עמוד ראשי ופוטר
המדריך למפתחים הזה מראה לך באמצעות תבנית בסיסית עם bx_Header.html, index.html ו-bx_Footer.html, מתי הסקריפטים של PHP מבוצעים. תדע כיצד התוכן של $LayoutHTML מתרחב שלב אחרי שלב ואיפה יכול להיווצר שינויים תלויי עמוד או גלובליים.
דרישות ומטרה
בשביל מדריך המפתחים הזה עליך לדעת כיצד מערכת ה-CMS של bluetronix מרכיבה עמוד מהפריסה שלו, מהכותרת, מהעמוד הראשי ומהפוטר. אנחנו נראיך לך, באיזו סדר מתבצעות הסקריפטים PHP של האזורים הללו ואילו חלקים של $LayoutHTML כבר נטענו.
במקרה הזה, הפריסה הבסיסית מורכבת מקבצי ה-CMS bx_Header.html, index.html ו-bx_Footer.html. העמוד הראשי index.html מייצג את עמוד ה-HTML שבו מתקיים הקריאה.
תבנית בסיסית: כותרת, עמוד ראשי ופוטר
הפריסה הבסיסית קובעת באיזה סדר שלושת האזורים יוטענו. בדוגמה המוצגת תמצא את ההגדרה של הפריסה בטבלה 00_layout.
הקטע הרלוונטי של הפריסה נראה כך:
__DB_Layout_/bx_Header.html__
<main>
__DB_Layout_Main__
</main>
__DB_Layout_/bx_Footer.html__
המקום הראשון מחבר את bx_Header.html. בתוך האלמנט main מחובר הדף הנוכחי- __DB_Layout_Main__, במקרה שלנו index.html. לאחר מכן בא bx_Footer.html.
למרות שהגדרת הפריסה כוללת את שלושת האזורים, תוכן ה-HTML עבור הקוד PHP של כל אזור מטען בהדרגה בתוך $LayoutHTML.
1. הקוד של ה-PHP של הכותרת מבוצע קודם
פתח במנהל הקבצים את הקובץ bx_Header.html. באמצעות קוד PHP תוכל לערוך את הקוד PHP של אזור זה.
הכותרת היא האזור הראשון שהוטען בעמוד. בזמן שהקוד PHP שלה מתבצע, $LayoutHTML מכיל רק את ה-HTML מ- bx_Header.html.
PHP-Code: bx_Header.html
$LayoutHTML enthält:
bx_Header.html
כאן תוכל למשל להחליף מנחי כותרת או להכין את הניווט. לתוכן ה-HTML של index.html או bx_Footer.html עדיין לא תוכל לגשת דרך $LayoutHTML.
2. הקוד של ה-PHP של העמוד הראשי מבוצע לאחר מכן
לאחר הכותרת, מערכת ה-CMS טוענת את העמוד הראשי שנקרא, כאן index.html, ומבצעת את הקוד PHP שלה. בשלב זה $LayoutHTML מכיל גם את קוד ה-HTML של הכותרת וגם את קוד ה-HTML של העמוד הראשי.
PHP-Code: index.html
$LayoutHTML enthält:
bx_Header.html
index.html
כך קוד ה-PHP של העמוד הראשי יכול לא רק להחליף מנחי תוכן משלו, אלא גם לשנות מנחי תוכן קיימים בתוך הכותרת.
דוגמה: אם הכותרת שלך כוללת את המנחה __HeaderClass__, תוכל להחליף אותו מהעמוד הראשי:
$LayoutHTML = str_replace("__HeaderClass__","active",$LayoutHTML);
כך עמוד ראשי מסוים יכול למשל לסמן את הפריט בתפריט שלו בתוך הכותרת שכבר הוטענה כמופעל.
הפוטר לא הוטען בשלב זה. תוכן ה-HTML שלו לא ניתן לשינוי בוודאות דרך $LayoutHTML.
3. הקוד PHP של הפוטר מתבצע אחרון
לבסוף, מערכת ה-CMS טוענת את bx_Footer.html ומבצעת את הקוד PHP שלה. עכשיו $LayoutHTML מכיל את תוכן ה-HTML של כל שלושת האזורים.
PHP-Code: bx_Footer.html
$LayoutHTML enthält:
bx_Header.html
index.html
bx_Footer.html
לכן קוד ה-PHP של הפוטר יכול להחליף מנחים בתוך הכותרת, העמוד הראשי או הפוטר, אם הם עדיין קיימים בשלב זה.
אם ה-HTML שכבר הוטען כולל את המנחה __MyTitle__, תוכל להחליף אותו שם:
$LayoutHTML = str_replace("__MyTitle__","My Custom Title",$LayoutHTML);
הפוטר מתאים גם לאדפטציות משותפות שצריכות להתבצע רק לאחר טעינת מבנה העמוד המלא.
סדר הביצוע במבט אחד
הכלל המכריע הוא: PHP יכול לשנות דרך $LayoutHTML רק את אזורי ה-HTML שהוטענו כבר בשלב זה.
1. bx_Header.html
PHP sieht: Header
↓
2. index.html
PHP sieht: Header + Hauptseite
↓
3. bx_Footer.html
PHP sieht: Header + Hauptseite + Footer
אם למשל תרצה לשלוט במנחה כותרת מעמוד מסוים, השתמש בקוד ה-PHP של העמוד הראשי הזה. אם מנחה צריך להיות מוחלף בכל שלושת האזורים שכבר הוטענו, עדיף להשתמש בקוד PHP של הפוטר שהתבצע אחרון.
חשוב במקרים של פונקציות PHP מותאמות
כאשר אתה מגדיר פונקציות PHP משלך באזורים שונים, ודא שפונקציה זהה לא מוגדרת מספר פעמים במהלך קריאה לעמוד. בחר שמות פונקציות ייחודיים או בדוק לפני ההגדרה אם הפונקציה כבר קיימת.
if(!function_exists("MyTemplateFunction")) {
function MyTemplateFunction() {
return true;
}
}
סיכום
בפריסה הבסיסית שלנו, הקוד PHP של bx_Header.html מתבצע ראשון, לאחר מכן הקוד PHP של index.html ולבסוף הקוד PHP של bx_Footer.html. עם כל שלב תוכן ה-HTML שאליו תוכל לגשת דרך $LayoutHTML מתרחב.
מקום את קוד ה-PHP שלך שם, היכן שהאזורים הדרושים ב-HTML כבר נטענים: בכותרת להתאמות ספציפיות לכותרת, בדף הראשי לתוכן משלך ובכותרת שהוטענה קודם או בפוטר לשינויים בעיצוב שכבר הוקם.
שאלות נפוצות
מה לקוחות שואלים אותנו לעיתים קרובות
באיזו סדרה מתבצע הרצת הסקריפטים של PHP?
ראשית, מתבצע קוד ה-PHP מ-bx_Header.html, לאחר מכן קוד ה-PHP של הדף הראשי, לדוגמה index.html, ולבסוף קוד ה-PHP מ-bx_Footer.html.
אילו אזורי HTML מכיל $LayoutHTML במהלך קוד ה-PHP של הכותרת?
במהלך הרצת קוד ה-PHP של הכותרת, $LayoutHTML מכיל רק את התוכן ב-HTML שכבר נטען מ-bx_Header.html.
האם הדף הראשי יכול לשנות את קוד ה-HTML של הכותרת?
כן. כאשר קוד ה-PHP של הדף הראשי מתבצע, הכותרת והדף הראשי כבר נמצאים ב-$LayoutHTML. כך תוכל, לדוגמה, להחליף מקום שהוקם קודם בכותרת.
מדוע קוד ה-PHP של הכותרת עדיין לא יכול לשנות את הפוטר?
הפוטר נטען רק לאחר הדף הראשי. לכן, התוכן ב-HTML שלו עדיין לא קיים ב-$LayoutHTML במהלך קוד ה-PHP של הכותרת.
אילו אזורים יכול קוד ה-PHP של הפוטר לשנות?
ברגע ההרצה של הפוטר, $LayoutHTML כבר מכיל את הכותרת, את הדף הראשי ואת הפוטר. עדיין קיימים מקומות באזורים אלה שניתן להחליף.
איפה אני רואה את מבנה הבסיס של העיצוב?
הגדרת העיצוב מוצגת בדוגמה בטבלה 00_layout. היא כוללת את bx_Header.html, את הדף הראשי הנוכחי ואת bx_Footer.html.
איפה אני יכול לערוך את קוד ה-PHP של bx_Header.html?
בחר bx_Header.html במנהל הקבצים ופתח קוד PHP.
מה עלי לקחת בחשבון עם פונקציות PHP פרטיות בכותרת ובדף הראשי?
פונקציות פרטיות אינן יכולות להיות מוגדרות שוב ושוב במהלך קריאת דף בשם זהה. השתמש בשמות ייחודיים או בדוק לפני ההגדרה עם function_exists(), אם הפונקציה כבר קיימת.