כך מתנהל תהליך הרינדור באתר ב-bluetronix CMS.
בכל פעם שדף נפתח, ה-bluetronix CMS עובר כמה שלבי עיבוד. בהדרכה הזו תוכל ללמוד על תהליך הרינדור המלא ולגלות מתי מתבצעות בדיקות אבטחה, מתבצע קוד PHP, מוחלפות משתני תבנית ונוצרים דפי HTML גמורים.
1. טען סקריפטי אבטחה
בהתחלה, ה-CMS של bluetronix טוען את הסקריפטים הרלוונטיים לאבטחה. אלו כוללים את Secure Check, בדיקת מספר הקריאות, הכנה או בדיקה של פרמטרי MySQL וכן ניתוח של פרמטרי GET ו-POST.
בדיקות שאינן דורשות חיבור למסד נתונים מתבצעות כבר בשלב זה.
2. טען תצורת מודול
אם קיים, ייטען הקובץ /bx_Mod/config_own.php. סקריפטים ומשתני תצורה שהוגדרו בו יהיו זמינים כבר בתחילת תהליך הרינדור.
3. להתחיל סשן
ה-CMS מתחיל את סשן ה-PHP עם @session_start();. במיוחד שלוש משתני סשן חשובים: $_SESSION["S_User"] עבור משתמש ה-CMS או מצב עריכה, $_SESSION["S_Language"] עבור השפה הנוכחית ו-$_SESSION["Web_User"] עבור משתמש חיבור של צד הלקוח.
4. לטעון פרמטרי עמודים
לאחר מכן, ה-CMS קורא מידע על הקריאה הנוכחית מתוך משתני השרת. $domain מקבל את שם הדומין מתוך $_SERVER["SERVER_NAME"], $FileParameter את נתיב הבקשה כולל פרמטרי GET מתוך $_SERVER["REQUEST_URI"], ו-$file את נתיב הקובץ המבוצע מתוך $_SERVER["PHP_SELF"].
$ReferURL מכיל את הערך של $_SERVER["HTTP_REFERER"], אם הוא נמסר. ניתן להשתמש בו, למשל, בעת טעינת Frames או אזורי דפים.
5. ליצור חיבור למסד נתונים
ה-CMS מקים אוטומטית את חיבור הנתונים. לאחר מכן, טבלאות הנתונים של ה-CMS זמינות לבדיקה נוספת ולטעינת תוכן הדפים.
6. לבדוק מחדש פרמטרי GET ו-POST
לאחר הקמת חיבור הנתונים, ה-CMS מפעיל את SECUREGetPost();. הפרמטרים שנמסרו ב-GET וב-POST נבדקים שוב ומותאמים אם יש צורך. עכשיו אפשר לבצע בדיקות שדורשות מידע מהדאטאבייס.
7. הפניות דומיין, עריכה ושפה
בהתאם להגדות ה-CMS, לדומיין שנמצא בהקראה, למצב העריכה, לשפה הנבחרת ולפרמטרי הקריאה, יכולה להתבצע הפניה. היעדים האפשריים הם הדומיין הראשי, דומיין העריכה ודומיינים או URLs תלויי שפה.
8. הפניית HTTPS
אם האתר נקרא ללא HTTPS, מתבצעת הפניה לגרסה SSL או HTTPS של הדף.
9. לטעון סקריפטים מרכזיים של PHP
עכשיו ה-CMS טוען את הפונקציות הפנימיות שלו ב-PHP. אלו כוללות, לדוגמה, BlueSMTPMail() לשליחת דואר ו-BlueFormSend() לעיבוד טפסים. פונקציות נוספות יוטענו גם כן.
10. לטעון נתוני עמוד מ-00_site
הנתונים של הדף המפורט ייקראו מטבלת הנתונים 00_site. תוך כך ייקבעו משתנים של ה-CMS כמו $Template.
בנוסף, $LayoutHTML ו-$SitePHP יחשבו. $LayoutHTML יכיל לאחר מכן את עיצוב ה-HTML המלא, בעוד $SitePHP יכיל את קוד ה-PHP השייך ישירות לדף שנקרא.
11. לטעון פריסות מ-00_layout
העיצוב המיוחס לדף ייטען מטבלת הנתונים 00_layout ויהווה את הבסיס לעיבוד הנוסף ב-$LayoutHTML.
12. להגדיר קבצי JavaScript תלוויי שפה
אם קיימות קבצים תלויי שפה, ה-CMS יכול להחליף את הקבצים הסטנדרטיים BxScript.js ו-BxHeadScript.js עם גרסאות שפה מתאימות, למשל BxScript_de.js או BxScript_en.js.
בכך מותאמים את תוויות הקובץ __FV_/bx_script/BxScript_own_min.js__ או __FV_/bx_script/BxHeadScript_own_min.js__ ב-LAYOUT.
13. ליצור כותרות ותכנים דינמיים
עכשיו מוחלפים תוכן דינאמי ומסמכי PHP ספציפיים לדף מפעילים. DynMenue() מייצרת תפריטים דינאמיים, IncludeModul() מחברת מודולים מוגדרים ו-EditMARK() מציבה את סמני העריכה של ה-CMS.
באמצעות eval($SitePHP) מתבצע קוד ה-PHP של הדף הנוכחי; eval($IncludePHP) מפעיל סקריפטים נוספיים של PHP.
14. להגדיר פרמטרי שינוי עבור CSS ו-JavaScript
עבור קבצי CSS ו-JavaScript נקבע פרמטר שינויים. כך יכול הדפדפן לטעון גרסה חדשה בקבצים מעודכנים, במקום להשתמש בקובץ ישן מהמטמון שלו.
למשל, הפניה מקובץ כמו /css/style.css יכולה להתבצע עם פרמטר גרסה כמו /css/style.css?v2026....
15. להגדיר מצב כהה או בהיר
ה-CMS קורא את מצב ההצגה המוגדר מ-/bx_style/BxSource/CSSEditDarkLight.bx. בהתבסס על תוכן הקובץ, נקבע מצב כהה או בהיר בעיצוב.
16. להגדיר משתני תצורה של מודול בפריסה
הגדרת המודול מ-/bx_Mod/config_own.php מוחלת על העיצוב. אם, לדוגמה, מודול חנות, חיפוש, כניסה או תרגום מושבתים, ניתן להסתיר אוטומטית את רכיבי הבקרה המתאימים.
על מנת להחליף את תוויות ה-LAYOUT כמו __DB_GB_DesktopIconBasket_Display__, __DB_GB_DesktopIconSearch_Display__, __DB_GB_DesktopIconLogin_Display__ או __DB_GB_DesktopIconLang_Display__ נחליף בnone.
17. להסיר תגים חלופיים שנותרו
תוויות ה-CMS שלא הוחלפו יוסרו מה-HTML הסופי. זה כולל, בין היתר, תוויות בהתאם לדפוסים __DB_...__ ו __ST_...__ כמו גם את תוויות ההערות הפנימיות המיועדות לכך.
18. להסיר תגובות HTML
ה-CMS מסיר לאחר מכן הערות HTML מ-$LayoutHTML. כך טקסט ההערות הלא הכרחי לא נמסר לדפדפן.
19. לבצע תרגום שפה
אם $_SESSION["S_Language"] לא שווה ל- $GBMainLang, הטקסטים המסומנים יתורגמו לשפה הנוכחית בשימוש. התרגומים מגיעים מטבלת הנתונים Translation.
אם טקסט נחוץ לא קיים שם, ייווצר רשומה חדשה ב-Translation. ה-CMS מזהה תוכן שניתן לתרגום באמצעות התגיות My Text ו-My Text.
20. להחליף קריאות תמונה דרך IMG.pl
קריאות תמונה וחתיכות תמונה דרך IMG.pl יוחלפו בקבצי תמונה שהופקו או אופטימיזו מוקדם יותר. כך הדף HTML המוגמר יכול לגשת ישירות לגרסאות תמונה אלה.
21. להציג עמוד מוכן
לאחר סיום העיבוד, $LayoutHTML יימסר לדפדפן עם סוג תוכן text/html; charset=utf-8, למשל דרך print $LayoutHTML;.
לדומיינים שאינם מופעלים או דומיינים פנימיים, הפלט מסומן ב- noindex, nofollow כך שדפים אלו לא ייסרקו על ידי מנועי החיפוש.
22. לכתוב מטמון
לאחר הפקת הדף, ה-CMS יכול לשמור את הדף המוכן בזיכרון המטמון. הדרישה היא שלא יהיה S_User מחובר, שהדף לא נמצא במצב עריכה ושזיכרון המטמון מופעל לדף זה.
בהזמנות מאוחרות ניתן להשתמש בדף ה-HTML ששמור, מבלי לבצע מחדש את תהליך הרינדור המלא.
שאלות נפוצות
מה לקוחות שואלים אותנו לעיתים קרובות
מהו תהליך הרינדור של האתר?
כך מתייחס המדריך לשלבי העיבוד שבהם ה-CMS של bluetronix יוצר את דף ה-HTML המוגמר מנתוני הדפים והעיצוב ומוסר אותו לדפדפן.
אילו בדיקות אבטחה מתבצעות לפני חיבור למסד הנתונים?
לפני חיבור למסד הנתונים מתבצעות בדיקות כמו Secure Check, בדיקת מספר הקריאות, הכנת פרמטרי MySQL וניתוח פרמטרי GET ו-POST.
מתי נטענת תצורת המודול?
הקובץ /bx_Mod/config_own.php ייטען, אם קיים, כבר לפני תחילת הסשן ולפני חיבור למסד הנתונים.
למה משמשים S_User, S_Language ו-Web_User?
S_User מייצג את משתמש ה-CMS או את מצב העריכה, S_Language את השפה הנוכחית של האתר ו-Web_User את המשתמש של חיבור לקצה הקדמי.
מאילו טבלאות במסד הנתונים מגיעים הדף והעיצוב?
נתוני הדף מתקבלים מ-00_site. העיצוב המתאים נקרא מ-00_layout ומעובד ב-$LayoutHTML.
מתי מתבצע קוד PHP של דף?
בעת יצירת הכותרת והתכנים הדינמיים, הקוד של הדף מורץ באמצעות eval($SitePHP) והקוד PHP המובנה באמצעות eval($IncludePHP).
מתי נעשה שימוש בקבצי JavaScript תלויות שפה?
אם קיימות גרסאות שפה מתאימות, ניתן להחליף את BxScript.js ו-BxHeadScript.js בקבצים הספציפיים לשפה המתאימה.
איך נקבע מצב האור או כהה?
ה-CMS קורא את הקובץ /bx_style/BxSource/CSSEditDarkLight.bx ומגדיר את מצב ההצגה בעיצוב בהתאם לתוכנו.
מתי מתורגמים טקסטים אוטומטית?
כאשר השפה הנוכחית שונה מ-$GBMainLang, הטקסטים המיועדים מתורגמים בהתאם לרשומות בטבלת Translation.
באילו תנאים הדף המוגמר נשמר בזיכרון המטמון?
המטמון יכול להיכתב במקרה שאין S_User מחובר, הדף אינו במצב עריכה והמטמון עבור דף זה מופעל.