Picture of נאור בן שושן
נאור בן שושן
2024-05-19

נראות דינמית על פי יום ושעה בשבוע

בתיכלוס

למה שנצטרך הגדרת תוכן בנראות דינמית באתר?

האמת – פשוט. כי כשאנחנו בונים אתר למספר סוגים של משתמשים (שומרי שבת לעומת לא שומרי שבת, משתמשים מחוברים לעומת מנותקים, משתמשים בדרגות צפייה שונות וכד') אנחנו נרצה שחלק מהתוכן יוצג או יוסתר בהתאם להחלטת בעל האתר לגבי אותו משתמש.

קייס סטאדי – צריכים דוגמא? הנה.

במקרה שלנו אנחנו נלמד איך ליצור תוכן דינמי להצגת/הסתרת אזור באתר מכירות ששומר שבת. באתר הזה נרצה שדף התשלום יוסתר בשבת ותוצג במקומו הודעה שאומרת שהאתר לא מוכר מוצרים בשבת. בנוסף, נרצה שבדף הבית יהיה אזור שמציין שאתר זה שומר שבת וניתן רק לגלוש בו אך לא לרכוש (כי אין דף תשלום).

מוכנים? מתחילים!

 
כדי להתחיל אתם צריכים JetEngine וגם את המודול של Dynamic Visibility מופעל.

ראשית נכניס את הסניפט הבא (קיבלתי אותו מקרוקובלוק – יד 1 מרופא) לfunctions.php

לאחר הוספת הסניפט נשמור שינויים ונלך לDynamic Visibility בלשונית "מתקדם" של הקונטיינר שאותו נרצה להסתיר בשבת – בדוגמא שלנו זה יהיה הקונטיינר תוכן של דף התשלום.

נבחר בהסתרה (1) -> נבחר בפרמטר Between (2) -> בבחירת השדה נבחר בMacros (3) -> נבחר בפורמט NH (4) -> ונשים בDate String את הערך now

 
לאחר מכן, נשים בערך את הטווח של היום והשעה שאנחנו צריכים


עכשיו תחזיקו חזק – 516 זה אומר "יום שישי בשעה 16:00" למה? כי בקידוד ISO8601 (שזה בעצם השפה שמבינה את ה516) המספר 5 אומר יום שישי. המספר 2 לדוגמא, אומר יום שלישי. והמספר 0? נכון מאוד! יום ראשון.


אז מה עשינו? אמרנו לתנאי שיסתיר את האלמנט בין יום שישי בשעה 16:00 (הלוא הוא 516) לבין יום שישי בשעה 00:00 (הלוא הוא 524. יום שישי -"5" – בשעה 12 בלילה – "24")


אוקי מגניב.. אפשר להבין שהתנאי עובד על יום שישי בלבד. איך אני מוסיף את יום שבת גם כן? שימו לב

משכפלים את התנאי הקיים (1) כי אנחנו צריכים את אותה החוקיות. רק משנים את הערכים בסוף שיעבדו על יום שבת בלבד (2) – משעה 00 בלילה ועד לשעה 18:00
לא לשכוח לסמן OR בתחתית הסרגל (3) כדי להחיל את ההסתרה אם הלקוח מגיע לדף הזה ביום שישי או ביום שבת ולא גם וגם (כי זה לא כל כך אפשרי :)).


כשקולטים את הפואנטה זה פשוט נכון?

וחידוד קטן למתקדמים – אם תרצו לתפוס את השעה ברמת הדקה – יש להחליף את NH בNHi (עם i קטנה בסוף) ואז להוסיף דקות בסוף השעה. לדוגמא, אם אני רוצה את יום שישי בשעה 16:14 אז אני אכתוב 51614

ולסיכום

למדנו איך לייצר תנאי דינמי להצגת או הסתרת תוכן באתר שבנינו לפי יום מוגדר בשעה ספציפית. למדנו איך לבצע את אותו התנאי בעזרת שפת הקידוד NH וNHi שלקוחה מתוך הדוקומטנציה של PHP ואיך ליישם את הכל בפרמטר מסוג Between ושילוב שני תנאי הBetween בקישוריות של OR על מנת לוודא שהתנאי יופעל למי שמגיע לדף שלנו ביום שישי בשעות השבת או ביום שבת עצמו.

רק התייחסות קטנה למינוס העיקרי פה – הידניות. אנחנו נדרשים להגדיר את השעות בצורה קצת גסה ולא מדויקת ולעדכן את זה בחורף ובקיץ בהתאם לכניסת השבת. 

שיטת עבודה שכזאת מתאימה בצורה מושלמת לHappy Hour שאפשר לעשות באתרי מכירות בשעה קבועה ביום מסוים בשבוע. 

שתפו את המאמר

הוסיפו תגובה

שמך המלא *
תוכן התגובה

הרעיונות והתגובות שלכם:

אין תגובות עדיין...

הוסיפו תגובה

שמך המלא *
תוכן התגובה