שדות מותאמים אישית¶
MRBS 1.12.2 יכול לגלות עמודות נוספות של מסד נתונים ולהשתמש בהן כשדות להזמנות, חדרים ומשתמשים. שדות מותאמים אישית הם אפוא הרחבות סכימה, לא הגדרות היוצרות עמודות באופן אוטומטי.
תגבה קודם
גבה את מסד הנתונים ובדוק את השינוי במופע שאינו ייצור. MRBS שדרוגים אינם יוצרים, מעבירים או מסירים עמודות ספציפיות לאתר.
היכן שדות מותאמים אישית נתמכים¶
| טבלת מסד נתונים | מַטָרָה | כלל חשוב |
|---|---|---|
entry |
נתונים נוספים עבור הזמנה בודדת | הוסף את העמודה הזהה ל-repeat |
repeat |
נתוני תבנית עבור הזמנה חוזרת | שמור על השם, הסוג, האורך, הביטול וברירת המחדל זהים ל-entry |
room |
מאפייני חדר או משאבים נוספים | מוצג ונערך עם נתוני החדר |
users |
נתוני פרופיל משתמש נוספים | משמש רק עם אימות מסד נתונים |
עמודה entry ללא עמודה repeat זהה גורמת לכישלון פעולות הזמנה חוזרות. התייחס לזוג כשינוי סכימה אחד.
השתמש רק באותיות, מספרים וקווים תחתונים בשם עמודה. לקבלת תאימות עם PostgreSQL, התחל אותו באות או בקו תחתון. העדיפו שמות יציבים באותיות קטנות כגון participant_count או catering.
סוגי מסדי נתונים נתמכים¶
| סוג SQL | MRBS שליטה |
|---|---|
TEXT |
טקסט רב שורות |
VARCHAR |
קלט טקסט או טקסט מרובה שורות, בהתאם לאורכו המרבי |
DATE |
הזנת תאריך |
DECIMAL / NUMERIC |
קלט מספר |
INT |
קלט מספר שלם |
SMALLINT / TINYINT |
תיבת סימון, מתפרשת כערך בוליאני |
השתמש ב-SMALLINT עבור שדות בוליאניים מותאמים אישית ב-PostgreSQL וב-TINYINT ב-MySQL. סוגי עמודות אחרים אינם נתמכים על ידי הטיפול האוטומטי בשדה מותאם אישית.
הוסף שדה לסכימה¶
הדוגמאות מניחות את קידומת הטבלה המוגדרת כברירת מחדל mrbs_. החלף אותו אם ל-$db_tbl_prefix יש ערך אחר.
שדה הזמנה¶
דוגמה זו מוסיפה בחירת קייטרינג אופציונלית:
ALTER TABLE mrbs_entry
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
ALTER TABLE mrbs_repeat
ADD COLUMN catering VARCHAR(32) DEFAULT NULL;
שתי ההצהרות פועלות עם MySQL וPostgreSQL. אמת את ההגדרות המתקבלות בשתי הטבלאות לפני פתיחת טופס ההזמנה.
תיבת סימון חדר¶
ב-MRBS 1.12.2, ברירת המחדל של מסד הנתונים משמשת כאשר נוצרת שורה חדשה. בחר ברירת מחדל בכוונה, במיוחד עבור שדות ותיבות סימון חובה.
תן לשדה תווית מתורגמת¶
ללא עקיפה, MRBS גוזר את התווית משם העמודה. הגדר תווית אחת לכל שפה פעילה ב-config.inc.php:
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['de']['entry.catering'] = 'Verpflegung';
$vocab_override['fr']['entry.catering'] = 'Restauration';
$vocab_override['es']['entry.catering'] = 'Catering';
עבור זוג entry/repeat, הגדר רק entry.catering; אין צורך באסימון repeat.catering. שדות חדר ומשתמש משתמשים באסימונים כגון room.coffee_machine ו-users.phone.
ראה טקסט ותרגומים לעקיפות אוצר מילים, קובצי שפה ודפי עזרה מתורגמים.
בחר את התנהגות הקלט¶
בחירות קבועות¶
$select_options מחליף קלט חופשי ברשימה נבחרת:
$select_options['entry.catering'] = array(
'' => 'Please select',
'c' => 'Coffee',
's' => 'Sandwiches',
'h' => 'Hot lunch',
);
עבור מערך אסוציאטיבי, MRBS מאחסן את המפתח (c) ומציג, מחפש ומדווח על הערך (Coffee). זה מאפשר לשנות את הניסוח מבלי לשכתב את הנתונים המאוחסנים.
הימנע ממפתחות המורכבים מספרות בלבד: PHP ממיר מפתחות מחרוזת דמויי מספרים שלמים למספרים שלמים, כך ש-MRBS עשוי לפרש את המערך כאינדקס. כלול בחירה ריקה כאשר בחירה חובה חייבת להתחיל ללא בחירה.
$select_options נתמך עבור שדות entry.name, entry.description, entry מותאמים אישית ושדות users מותאמים אישית. כתוביות האפשרויות המוגדרות הן מחרוזות ברחבי האתר; ניתן לתרגם את תווית השדה עצמה עם $vocab_override.
הצעות לצד קלט חופשי¶
השתמש ב-$datalist_options להצעות תוך קבלת ערך אחר:
הוא תומך באותם שדות כמו $select_options. עם רשימות נתונים אסוציאטיביות, המפתח המאוחסן יכול להפתיע את המשתמשים, אז בדוק את ההתנהגות לפני השימוש.
שדות חובה, שדות פרטיים ואימות ערכים¶
הפוך שדה לחובה בכל מקום:
או רק באזורים עם מזהי מסד נתונים 1 ו-3:
כללי חובה ספציפיים לאזור חלים רק על שדות entry. יש לסמן תיבת סימון חובה לפני ההגשה.
שדות מותאמים אישית פרטיים נתמכים עבור entry ו-users:
זה מגן על הערך רק כאשר הזמנות פרטיות מופעלות ומוגדרות. בדוק כל תפקיד רלוונטי; אל תשתמש בפרטיות של ממשק המשתמש כתחליף למזעור נתונים רגישים.
אימות הדפוס מוגבל כרגע לשדות טקסט מותאמים אישית users:
$pattern['users.zip_code'] = '^[0-9]{5}(?:-[0-9]{4})?$';
$vocab_override['en']['users.zip_code.oninvalid'] =
'Enter a ZIP code such as 12345 or 12345-6789';
שדות טקסט לכניסה יכולים לכלול מצייני מיקום מתורגמים:
דפוסים בצד הלקוח משפרים משוב אך אינם הופכים שדה למקום בטוח לסודות או סימון לא מהימן.
קביעת סדר השדות¶
הצב שדות הזמנה במפורש בדפי יצירה והצגה:
שדות שאינם רשומים מצורפים בסדר הרגיל שלהם. ניתן למקם שדות מותאמים אישית גם בטופס חיפוש הדוח:
דוגמה מלאה¶
לאחר הוספת catering לשתי טבלאות ההזמנות:
$vocab_override['en']['entry.catering'] = 'Catering';
$vocab_override['de']['entry.catering'] = 'Verpflegung';
$vocab_override['fr']['entry.catering'] = 'Restauration';
$vocab_override['es']['entry.catering'] = 'Catering';
$select_options['entry.catering'] = array(
'' => '—',
'c' => 'Coffee',
's' => 'Sandwiches',
'h' => 'Hot lunch',
);
$is_mandatory_field['entry.catering'] = array(1, 3);
$edit_entry_field_order = array('name', 'catering', 'description');
$report_search_field_order = array(
'report_start',
'report_end',
'catering',
);
כתוביות האפשרויות בדוגמה זו נשארות זהות בכל שפת ממשק משתמש. אם כתוביות אפשרויות מתורגמות הן דרישה, תכנן ובדוק הרחבה ספציפית לאתר במקום להניח ש-$select_options מתרגם אותן באופן אוטומטי.
שנה, הסר ושדרג¶
לפני קיצור עמודה או שינוי הסוג שלה, בדוק את הערכים הקיימים ואת ההמרה. לפני הסרת שדה, הסר את ההפניות אליו מן התצורה, פרוס את השינוי וודא שהיישום פועל. רק לאחר מכן מחק את העמודה בתהליך השינוי הרגיל של מסד הנתונים. בשדות הזמנה יש לשנות גם את entry וגם את repeat.
רשום כל עמודה מותאמת אישית בתיעוד התפעול של האתר ובדוק אותה מחדש לאחר כל שדרוג MRBS. סקריפטים סטנדרטיים של סכימה MRBS אינם הבעלים של עמודות אלה.
רשימת בדיקה לאימות¶
- הגדרות
entryו-repeatזהות עבור כל שדה הזמנה. - יצירה, עריכה, צפייה, העתקה ומחיקה של הזמנה עובדת.
- סדרה חוזרת והתרחשות אחת ניתנת לעריכה נכונה.
- ברירות מחדל של מסד נתונים מוחלות על רשומות חדשות.
- התנהגות נדרשת, פרטית, בחירה, רשימת נתונים ואימות עובדת לפי תפקיד ואזור.
- תוויות מופיעות בכל שפה מוגדרת.
- חיפוש, דוחות, דואר אלקטרוני, ייצוא יומן וייבוא/ייצוא מציגים ערכים בטוחים.
- ניהול חדרים ומשתמשים מציגים רק את השדות המיועדים.
- הליכי גיבוי ושחזור כוללים את הסכימה המורחבת.