פרק 4: HTML בחטף ותבניות (Templates) רשתבואו נתעלל קצת במסמך: "Build-a-Pizza" פוגשת את "Smallville Gazette"במקורו, הסקריפט Bulid-a-Pizza של המאמר הקודם לקח קלט מתוך שדות טופס ובנה עמוד רשת. במקום לשלוח את ה HTML ישירות לדפדפן, נוכל להפנות את סקריפט ה Build-a-Pizza שלנו לייצור את ה HTML שלו בתור משתנה סקאלרי, נגיד, pizzaHTML$. הדרך מכאן להכנסת Bulid-a-Pizza לתוך ה Smallville Gazette בעזרת שימוש בטכניקה של חפש-החלף, שכבר למדנו, קצרה. שילוב של Bulid-a-Pizza לתוך smallville.cgi יוצרת סקריפט ארוך למדי שנוכל להסבירו רק בחלקים, אבל תוכלו לראות את כל הסקריפט כאן. בשלב ראשון, נדביק את הסקריפט Bulid-a-Pizza בסוף הסקיפט Smallville.cgi שראינו קודם, ונעשה שלשה שינויים בסקריפט ה Pizza כדי שיוכל להתאים לסקיפט Smallville: 1. במקום הדפסת הפלט (print ), כל מחרוזות הפלט יושמו לתוך המשתנה pizzaHTML$ לדוגמה: the variable $pizzaHTML. For example, print $theform; נהפך ל: $pizzaHTML.=$theform; בצורה כזו, פלט ה HTML שמיוצר ע"י סקריפט הפיצה נבנה לתוך המשתנה pizzaHTML$ במקום להשלח ישירות לדפדפן. 2. אנו מסירים קריאות ל cgiobject->$header מסקריפט הפיצה בגלל שה header כבר נשלח בראש הסקריפט Smallville. 3. השגרה (routine) העיקרית של סקריפט הפיצה שקוראת לתת השגרות השונות מוכנסת לתת שגרה בעצמה, שתקרא build_a_pizza&. זה בסך הכל מאפשר לנו להריץ את סקריפט הפיצה ע"י קריאה לתת שגרה, שתפעיל את כל הקוד שבונה תוכן לתוך pizzaHTML$. אם נזכר בגלגול הראשון של smallville.cgi, ממש לפני שעשינו חפש-החלף על התאריך המתעדכן ולפני שהדפסנו את התוצאה הסופית, כמה שורות פשוטות הפעילו את ההחלפה ב Build-a-Pizza : #generate pizza form &build_a_pizza; #search-and-replace on pizza form $resultPage=~s/INSERT PIZZA HERE/$pizzaHTML/g; ה smallville.cgi המחודש (הן המידע המתעדכן והן Bulid-a-pizza המשולבים בתוך התבנית של Smallville Gazette) מבוסס בסך הכל על הטכניקה הפשוטה יחסית של חפש-החלף. |