>> דובר: בואו לשפר את הקורסים בדף הבית כך שהוא מאפשר לעצמנו
לספק כותרות מותאמות אישית לכל אחד מאלה דפים, כך שכל אחד מהם הוא
לא, בפשטות, CS50.
לשם כך, הבה ניישם כמה פונקציות, אחת בשם לדקלם כותרת
ואחד בשם לדקלם תחתונה, כי במקום לדרוש לבד ייקח
טיפול בעיבוד שלנו הכותרות של הדף העליון ותחתונות.
בואו נסתכל.
>> בתוך index.php עכשיו, הודעה כי אני דורש קובץ חדש בשם
Helpers.php.
זה שם ששני התפקידים שלי יוגדר.
מתחת לזה, שים לב שאני עכשיו קורא פונקציה שלדקלם כותרת.
ואני מעביר בויכוח.
>> הסוג של טיעון שמופיע להיות מערך, שבו ב-PHP הוא כונה
עם סוגריים מרובעים.
בפרט, מערך זה הוא מערך אסוציאטיבי ככל שהיא
מקורביו מפתח, כמו כותרת, עם ערך, כמו CS50, ולא להסתמך
על מדדים מספריים בלבד.
מתחת לזה עכשיו יש לנו הרשימה לא מסודרת שלי.
אבל מתחת לזה, יש לנו שיחה לדקלם כותרת תחתונה, התפקיד האחר
זה מוגדר ככל הנראה בHelpers.php.
>> בואו נסתכל לשם עכשיו.
בHelpers.php, שים לב שיש לי, אכן, פונקציה שלדקלם תחתונה
שמטרתו בחיים היא כנראה לקחת כטענתה מערך
קרא נתונים.
עכשיו, אם המשתמש אינו מספק מערך מפורש, את העובדה שיש
סימן שוויון ואחריו ריבוע ריק בסוגריים פירושו שערך ברירת המחדל
של נתונים פשוט להיות מערך ריק.
>> בתוך לדקלם תחתונה, שם לב שאני קורא לפונקציה שנקראת תמצית.
תמצית לוקחת מערך אסוציאטיבי, כמו הנתונים במקרה זה, ולכל
מפתח בזה, מתברר שמפתח ל משתנה מקומי באותו השם.
אז אם היה לי שהמערך אסוציאטיבי מפתח בשם פו, תמצית תבטיח כי
עכשיו יש לנו משתנים מקומי בשם סימן דולר Foo, שהערך שלו הוא
כפי שהיה שב מערך אסוציאטיבי.
>> לבסוף, אני קורא לדרוש Footer.php, אשר במאמר מוסגר, נראה
פשוט אהבתי את זה.
עכשיו, בחזרה בHelpers.php, תבחין כי יש לנו גם לדקלם פינים, אשר
טיעון זהה, מערך בשם ברירת מחדל של נתונים אשר
ערך הוא מערך ריק.
לאחר מכן, אנו קוראים חלץ שוב, כמו בעבר.
ולאחר מכן אנו דורשים header.php, התוכן שהם עכשיו זה.
>> בתוך header.php, שים לב שאנחנו כבר אין כותרת מקודדת קשה.
ועכשיו יש לנו תג H1, גם כן.
בפרט, את הערך של הכותרת הולך להיות מה הערך של
משתנה המקומי בשם הכותרת הוא.
אחרי שעברתי אותו לפונקציה PHP בשם ה-HTML מיוחד תווים, אנחנו הולכים
כדי להשיג שערך ההחזרה, ולאחר מכן לחבר אותו לתוך ה-HTML אני פלט
בדרך של פונקציה זו, בשם אקו.
>> באמת, זה סימון מקוצר עבור קריאה לפונקציה שעלולים
נראה ככה.
אבל זה הרבה יותר נקי, פשוט, כדי לכתוב סוגר פתוח סימן שאלה שווה
לחתום, מבלי אפילו להזכיר PHP.
עכשיו אני הולך לעשות את אותו הדבר בתוך שתג H1, כך שסופו של דבר, אם
משתמש מעביר לפונקציה הכותרת לדקלמי מערך אסוציאטיבי, בתוך
שבם הוא מפתח בשם הכותרת, כי המפתח של המערך אסוציאטיבי יהפוך
משתנה מקומי בשם כותרת סימן דולר.
>> אז אנחנו נעבור שכותרת סימן הדולר משתנה לפונקציה זו, HTML
תווים מיוחדים.
ורק במקרה שיש כל פוטנציאל תווים מסוכנים
שם, כמו סימן חיבור או אחר כגון סמלים, HTML מיוחד תווים יעשו
בטוח שהם שניתנו בטחה בעמוד.
ועל ידי שימוש בשאלת סוגר פתוחה לסמן סימן שוויון, אני ממש
החלפה בחלק זה של דף מה ערך ההחזרה
של ה-HTML הוא התווים.
>> בינתיים, בLectures.php, אני יש להם ערך חדש לכותרת.
לא CS50, אבל הרצאות.
בWeek0.php, יש לי ערך של שבוע 0.
ובWeek1.php, יש לי ערך של שבוע 1.
אז בסופו של היום, את הדף שלי נראה ממש כמו שהיה לפני.
אבל יש לנו עכשיו קיבלתי הרבה, עיצוב הרבה יותר טוב.