ויקיפדיה:מערכת בדיקת פרמטרים – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה
שורה 1: שורה 1:
'''מערכת בדיקת פרמטרים''' מאפשרת להוסיף ל[[ויקיפדיה:תבנית|תבנית]] תיאור של הפרמטרים שהיא מצפה לקבל, ובדרך זו לאתר שימוש שגוי בתבנית (מספר לא נכון של פרמטרים, השמטה של פרמטר שחובה לדווחו ועוד).
== יחידה ==
== יחידה ==
ב[[יחידה:ParamValidator]] ([[יחידה:ParamValidator/תיעוד|תיעוד]]) שתי פונקציות: הפונקציה העיקרית מקבלת frame שהועבר מתבנית. הפונקציה מוצאת את שם התבנית, ובעזרת יחידת [[יחידה:ReadTd]] קוראת את ה- templatedata (מכאן והלאה - TD) של התבנית. אם הקריאה נכשלת, הפונקציה מחזירה שגיאה ויוצאת.
ב[[יחידה:ParamValidator]] ([[יחידה:ParamValidator/תיעוד|תיעוד]]) שתי פונקציות: הפונקציה העיקרית מקבלת frame שהועבר מתבנית. הפונקציה מוצאת את שם התבנית, ובעזרת יחידת [[יחידה:ReadTd]] קוראת את ה- templatedata (מכאן והלאה - TD) של התבנית. אם הקריאה נכשלת, הפונקציה מחזירה שגיאה ויוצאת.
שורה 11: שורה 12:
* פרמטר חובה (required) חסר (בין אם מועבר בלי ערך או לא מועבר כלל)
* פרמטר חובה (required) חסר (בין אם מועבר בלי ערך או לא מועבר כלל)
* פרמטר מסוג לא תואם (למשל פרמטר שמוגדר numeric ומקבל ערך לא ריק שאינו מספר חוקי)
* פרמטר מסוג לא תואם (למשל פרמטר שמוגדר numeric ומקבל ערך לא ריק שאינו מספר חוקי)
היחידה מחזירה טבלת לואה שיכולה להיות ריקה, כאשר אין שגיאות, או להכיל שדות עבור כל אחת מסוגי השגיאות שתוארו, כשבכל שדה רשימת הפרמטרים בהם נמצאה שגיאה.
היחידה מחזירה טבלת [[לואה (שפת תכנות)|לואה]] שיכולה להיות ריקה, כאשר אין שגיאות, או להכיל שדות עבור כל אחת מסוגי השגיאות שתוארו, כשבכל שדה רשימת הפרמטרים בהם נמצאה שגיאה.


הפונקציה השנייה מקבלת frame של תבנית, ופרמטר יחיד בשם options. הפרמטר הזה הוא מחרוזת שאמורה להכיל אובייקט [[JSON]] חוקי, שמתאר את הקונפיגורציה שמגדירה את הבדיקות. הפרטים מתוארים בפסקה הבאה. הפונקציה קוראת לפונציית הבדיקה, ואז "מלחימה" את רשימת השגיאות שנמצאו לקונפיגורציה, ויוצרת מחרוזת יחידה. אם לא נמצאו שגיאות, מחרוזת ריקה. אם נמצאו, האופציות מגדירות בדיוק את המחרוזת. המחרוזת הזו היא הפלט של הפונקציה.
הפונקציה השנייה מקבלת frame של תבנית, ופרמטר יחיד בשם options. הפרמטר הזה הוא מחרוזת שאמורה להכיל אובייקט [[JSON]] חוקי, שמתאר את הקונפיגורציה שמגדירה את הבדיקות. הפרטים מתוארים בפסקה הבאה. הפונקציה קוראת לפונציית הבדיקה, ואז "מלחימה" את רשימת השגיאות שנמצאו לקונפיגורציה, ויוצרת מחרוזת יחידה. אם לא נמצאו שגיאות, מחרוזת ריקה. אם נמצאו, האופציות מגדירות בדיוק את המחרוזת. המחרוזת הזו היא הפלט של הפונקציה.
שורה 18: שורה 19:


== אופציות - תיאור כללי ==
== אופציות - תיאור כללי ==
האופציות הן מחרוזת שמתפרשת לאובייקט JSON חוקי. לאובייקט רמת קינון אחת, כלומר הוא מכיל רשימת שדות עם שמות. ערך כל שדה הוא מחרוזת אחת. רוב המחרוזות מכילות את המחרוזת שיש להחזיר עבור שוג שגיאה מסוים, ועוד כמה שדות שמכילים "הוראות הפעלה" ליחידה. התיאור המדויק נמצא בתיעוד היחידה.
האופציות הן מחרוזת שמתפרשת לאובייקט JSON חוקי. לאובייקט רמת קינון אחת, כלומר הוא מכיל רשימת שדות עם שמות. ערך כל שדה הוא מחרוזת אחת. רוב המחרוזות מכילות את המחרוזת שיש להחזיר עבור סוג שגיאה מסוים, ועוד כמה שדות שמכילים "הוראות הפעלה" ליחידה. התיאור המדויק נמצא בתיעוד היחידה.


== האופציות בשימוש המערכת בוויקיפדיה בעברית ==
== האופציות בשימוש המערכת בוויקיפדיה בעברית ==
(יתכן שהסעיף לא מעודכן - בידקו את העריכה האחרונה של הסעיף מול העריכה האחרונה ב[[תבנית:Pv-options]]).
(יתכן שהסעיף לא מעודכן - בידקו את העריכה האחרונה של הסעיף מול העריכה האחרונה ב[[תבנית:Pv-options]]).
בוויקיפדיה בעברית האופציות נמצאות ב[[תבנית:Pv-options]], והיחידה נקראת או ישירות, בעזרת <syntaxhighlight lang="text" inline>{{#invoke:ParamValidator | validateParams | options = <options>}}</syntaxhighlight> או בצורה הנפוצה יותר <syntaxhighlight lang="text" inline>{{#invoke:פרמטרים | main | options = <options> }}</syntaxhighlight>. אין הבדל בין הצורות - אפשר לחשוב על הצורה השנייה כמו "הפניה" לצורה הראשונה. בשני המקרים מעבירים כפרמטר {{תב|Pv-options}} שמכילה את הקונפיגורציה להפעלה. כשלפעמים מעבירים במקומו את [[תבנית:Pv-options span]] שמכילה אופציות כמעט זהות, כשההבדל טכני, ותלוי בהתנהגות העיצובית של התבנית הנבדקת. התבנית הזו מחזירה מחרוזות שתלויות במרחב השם של הערך הנבדק:
בוויקיפדיה בעברית האופציות נמצאות ב[[תבנית:Pv-options]], והיחידה נקראת או ישירות, בעזרת <syntaxhighlight lang="text" inline>{{#invoke:ParamValidator | validateParams | options = <options>}}</syntaxhighlight> או בצורה הנפוצה יותר <syntaxhighlight lang="text" inline>{{#invoke:פרמטרים | main | options = <options> }}</syntaxhighlight>. אין הבדל בין הצורות - אפשר לחשוב על הצורה השנייה כמו "הפניה" לצורה הראשונה. בשני המקרים מעבירים כפרמטר {{תב|Pv-options}} שמכילה את הקונפיגורציה להפעלה. כשלפעמים מעבירים במקומו את [[תבנית:Pv-options span]] שמכילה אופציות כמעט זהות, כשההבדל טכני, ותלוי בהתנהגות העיצובית של התבנית הנבדקת. התבנית הזו מחזירה מחרוזות שתלויות במרחב השם של הערך הנבדק:
* בכל מרחבי השיחה, התבנית מחזירה אובייקט JSON ריק. כשזה קורה, מערכת הבדיקות לא מבצעת שום בדיקה (אפילו לא מנסה לקרוא את ה-TD), ומחזירה מחרוזת ריקה.
* בכל [[עזרה:מרחב שם|מרחבי השיחה]] התבנית מחזירה אובייקט JSON ריק. כשזה קורה, מערכת הבדיקות לא מבצעת שום בדיקה (אפילו לא מנסה לקרוא את ה-TD), ומחזירה מחרוזת ריקה.
* במרחב הערכים, מרחב פורטל ובמרחב התבניות, המערכת מחזירה סדרת מחרוזות, אחת עבור כל סוג שגיאה שהתגלתה, ומחרוזת נוספת שמוחזרת כאשר יש שגיאה כלשהי. המחרוזות עבור השגיאות הספציפיות מכילות קטגוריה עבור סוג השגיאה, והודעת שגיאה שמכילה את תיאור השגיאה ורשימת הפרמטרים, ובמקרה המיוחד של פרמטרים מספריים שגויים (כלומר לא מוצהרים) עם ערך לא ריק, גם את רשימת הערכים. כמו כן יש הודעה כללית, שמכילה את שם התבנית בה נתגלו שגיאות, כולל קישור, ושתי קטגוריות כלליות: '''[[:קטגוריה:שגיאות פרמטריות]]''', ו"'''קטגוריה:שגיאות פרמטריות בתבנית <שם התבנית>'''". כשהמחרוזת המוחזרת אינה ריקה, היא עטופה באלמנט html ממחלקה מסוימת, שבדרך כלל יש לה מצב תצוגה "מוסתר". מצב התצוגה לא משפיע על הקטגוריות, וכל הקטגוריות שהמערכת מוסיפה הן [[ויקיפדיה:קטגוריות#קטגוריות מוסתרות]].
* במרחב הערכים, מרחב פורטל ובמרחב התבניות, המערכת מחזירה סדרת מחרוזות, אחת עבור כל סוג שגיאה שהתגלתה, ומחרוזת נוספת שמוחזרת כאשר יש שגיאה כלשהי. המחרוזות עבור השגיאות הספציפיות מכילות קטגוריה עבור סוג השגיאה, והודעת שגיאה שמכילה את תיאור השגיאה ורשימת הפרמטרים, ובמקרה המיוחד של פרמטרים מספריים שגויים (כלומר לא מוצהרים) עם ערך לא ריק, גם את רשימת הערכים. כמו כן יש הודעה כללית, שמכילה את שם התבנית בה נתגלו שגיאות, כולל קישור, ושתי קטגוריות כלליות: '''[[:קטגוריה:שגיאות פרמטריות]]''', ו"'''קטגוריה:שגיאות פרמטריות בתבנית <שם התבנית>'''". כשהמחרוזת המוחזרת אינה ריקה, היא עטופה באלמנט html ממחלקה מסוימת, שבדרך כלל יש לה מצב תצוגה "מוסתר". מצב התצוגה לא משפיע על הקטגוריות, וכל הקטגוריות שהמערכת מוסיפה הן [[ויקיפדיה:קטגוריות#קטגוריות מוסתרות]].
* בשאר המרחבים, הודעות השגיאה הן זהות, אבל הקטגוריות לא מופיעות, ואם יש שגיאה כלשהי, נוספת רק קטגוריה אחת: [[:קטגוריה:שגיאות פרמטריות מחוץ למרחב הערכים]].
* בשאר המרחבים, הודעות השגיאה הן זהות, אבל הקטגוריות לא מופיעות, ואם יש שגיאה כלשהי, נוספת רק קטגוריה אחת: [[:קטגוריה:שגיאות פרמטריות מחוץ למרחב הערכים]].

גרסה מ־07:10, 11 בנובמבר 2017

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

יחידה

ביחידה:ParamValidator (תיעוד) שתי פונקציות: הפונקציה העיקרית מקבלת frame שהועבר מתבנית. הפונקציה מוצאת את שם התבנית, ובעזרת יחידת יחידה:ReadTd קוראת את ה- templatedata (מכאן והלאה - TD) של התבנית. אם הקריאה נכשלת, הפונקציה מחזירה שגיאה ויוצאת.

הפונקציה עוברת על הפרמטרים שהועברו לתבנית (בעזרת frame.getParent()), ובודקת אותם מול המידע ב-TD, וכן ההפך, ומייצרת שגיאות שונות:

  • פרמטר עם שם שגוי (כלומר לא מוצהר ב-TD)
  • כנ"ל כשלפרמטר אין ערך
  • פרמטר מספרי (כלומר "מבוסס סדר": כלומר אין סימן = בין שני מקלות) שלא מוצהר ב-TD
  • כנ"ל בלי ערך
  • פרמטר "מיושן" (deprecated)
  • כנ"ל בלי ערך
  • פרמטר חובה (required) חסר (בין אם מועבר בלי ערך או לא מועבר כלל)
  • פרמטר מסוג לא תואם (למשל פרמטר שמוגדר numeric ומקבל ערך לא ריק שאינו מספר חוקי)

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

הפונקציה השנייה מקבלת frame של תבנית, ופרמטר יחיד בשם options. הפרמטר הזה הוא מחרוזת שאמורה להכיל אובייקט JSON חוקי, שמתאר את הקונפיגורציה שמגדירה את הבדיקות. הפרטים מתוארים בפסקה הבאה. הפונקציה קוראת לפונציית הבדיקה, ואז "מלחימה" את רשימת השגיאות שנמצאו לקונפיגורציה, ויוצרת מחרוזת יחידה. אם לא נמצאו שגיאות, מחרוזת ריקה. אם נמצאו, האופציות מגדירות בדיוק את המחרוזת. המחרוזת הזו היא הפלט של הפונקציה.

פעולת ה"הלחמה" מורכבת משני שלבים: קודם כל, עבור כל שגיאה שנמצאה, המחרוזת שמוגדרת עבור השגיאה נוספת לתוצאה (המחרוזת יכולה להיות ריקה, אם רוצים להתעלם מסוגי שגיאה מסוימים), ואז מוחלפים "מאקרואים" מסוימים (כלומר מחרוזות מוגדרות מראש - לרשימה מלאה ראו בתיעוד היחידה) בערכים מחושבים, כמו שם התבנית הנבדקת, או רשימת הפרמטרים בהם נתגלתה שגיאה בבדיקה המתאימה, או רשימת ערכיהם.

אופציות - תיאור כללי

האופציות הן מחרוזת שמתפרשת לאובייקט JSON חוקי. לאובייקט רמת קינון אחת, כלומר הוא מכיל רשימת שדות עם שמות. ערך כל שדה הוא מחרוזת אחת. רוב המחרוזות מכילות את המחרוזת שיש להחזיר עבור סוג שגיאה מסוים, ועוד כמה שדות שמכילים "הוראות הפעלה" ליחידה. התיאור המדויק נמצא בתיעוד היחידה.

האופציות בשימוש המערכת בוויקיפדיה בעברית

(יתכן שהסעיף לא מעודכן - בידקו את העריכה האחרונה של הסעיף מול העריכה האחרונה בתבנית:Pv-options). בוויקיפדיה בעברית האופציות נמצאות בתבנית:Pv-options, והיחידה נקראת או ישירות, בעזרת {{#invoke:ParamValidator | validateParams | options = <options>}} או בצורה הנפוצה יותר {{#invoke:פרמטרים | main | options = <options> }}. אין הבדל בין הצורות - אפשר לחשוב על הצורה השנייה כמו "הפניה" לצורה הראשונה. בשני המקרים מעבירים כפרמטר {{Pv-options}} שמכילה את הקונפיגורציה להפעלה. כשלפעמים מעבירים במקומו את תבנית:Pv-options span שמכילה אופציות כמעט זהות, כשההבדל טכני, ותלוי בהתנהגות העיצובית של התבנית הנבדקת. התבנית הזו מחזירה מחרוזות שתלויות במרחב השם של הערך הנבדק:

  • בכל מרחבי השיחה התבנית מחזירה אובייקט JSON ריק. כשזה קורה, מערכת הבדיקות לא מבצעת שום בדיקה (אפילו לא מנסה לקרוא את ה-TD), ומחזירה מחרוזת ריקה.
  • במרחב הערכים, מרחב פורטל ובמרחב התבניות, המערכת מחזירה סדרת מחרוזות, אחת עבור כל סוג שגיאה שהתגלתה, ומחרוזת נוספת שמוחזרת כאשר יש שגיאה כלשהי. המחרוזות עבור השגיאות הספציפיות מכילות קטגוריה עבור סוג השגיאה, והודעת שגיאה שמכילה את תיאור השגיאה ורשימת הפרמטרים, ובמקרה המיוחד של פרמטרים מספריים שגויים (כלומר לא מוצהרים) עם ערך לא ריק, גם את רשימת הערכים. כמו כן יש הודעה כללית, שמכילה את שם התבנית בה נתגלו שגיאות, כולל קישור, ושתי קטגוריות כלליות: קטגוריה:שגיאות פרמטריות, ו"קטגוריה:שגיאות פרמטריות בתבנית <שם התבנית>". כשהמחרוזת המוחזרת אינה ריקה, היא עטופה באלמנט html ממחלקה מסוימת, שבדרך כלל יש לה מצב תצוגה "מוסתר". מצב התצוגה לא משפיע על הקטגוריות, וכל הקטגוריות שהמערכת מוסיפה הן ויקיפדיה:קטגוריות#קטגוריות מוסתרות.
  • בשאר המרחבים, הודעות השגיאה הן זהות, אבל הקטגוריות לא מופיעות, ואם יש שגיאה כלשהי, נוספת רק קטגוריה אחת: קטגוריה:שגיאות פרמטריות מחוץ למרחב הערכים.

כאשר מערכת הבדיקה מחזירה מחרוזת לא ריקה, חלק מפעולת ה"הלחמה" שתוארה בסעיפים הקודמים היא עטיפת התוצאה באלמנט מסוים. בוויקיפדיה בעברית זה אלמנט מסוג div או span (תלוי באיזו תבנית משתמשים בקריאה ליחידה), עם מחלקת CSS בשם "paramvalidator-wrapper".

תצוגה וגאדג'טים

כל נושא התצוגה נשלט בעזרת מחלקת ה-CSS שהוזכרה בסעיף הקודם: "paramvalidator-wrapper". מחלקה זו מוגדרת ב-מדיה ויקי:common.css, עם מצב תצוגה מוסתר. בשני מרחבי שם ספציפיים, "מרחב משתמש" ו"מרחב טיוטה", יש הגדרה אחרת למחלקה הזו, ושם היא מוגדרת במצב תצוגה גלוי ו"צף", כלומר ההודעה מוצגת במקום קבוע בדף, בלי להיות מושפעת מהמיקום של האלמנט שמכיל אותה, או למצב הגלילה.

במדיה ויקי:Common.js יש קטע קוד שדואג, כאשר אלמנט מהמחלקה הזו נמצא בדף במצב תצוגה גלוי, להוסיף לו כפתורים להסתרת ההודעה, ולסימון התבנית בה נמצאו שגיאות. אם דף מסוים מכיל מספר תבניות שנמצאות תחת מערכת הבדיקות שיש בהן שגיאות, ההודעות ה"צפות" מוצגות זו על גבי זו, ויש לסגור כל הודעה כדי לקרוא את ההודעה שמתחתה. כדי להקל, במקרה שדף מכיל מספר הודעות, נוסף כפתור "סגור הכל" שסוגר את כולן.

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

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

אלמנטים מוסתרים

מדובר באלמנטים שמשתמשים בתשתית ה"הסתרה" בוויקיפדיה בעברית. אלמנטים אלו נראים בדרך כלל כך:

כותרת האלמנט המוסתר
תוכן האלמנט המוסתר - עשוי להכיל תבנית שנמצאת במערכת הבדיקות

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