ฟิลด์ที่กำหนดเอง¶
MRBS 1.12.2 สามารถตรวจพบคอลัมน์เพิ่มเติมในฐานข้อมูลและนำมาใช้เป็นฟิลด์สำหรับการจอง ห้อง และผู้ใช้ ดังนั้นฟิลด์แบบกำหนดเองจึงเป็นส่วนขยายของสคีมา ไม่ใช่การตั้งค่าที่สร้างคอลัมน์ให้โดยอัตโนมัติ
!!! warning “สำรองก่อน”
สำรองฐานข้อมูลและทดสอบการเปลี่ยนแปลงในอินสแตนซ์ที่ไม่ใช่การใช้งานจริง 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 เมื่อใช้รายการข้อมูลที่เชื่อมโยง คีย์ที่เก็บไว้อาจทำให้ผู้ใช้ประหลาดใจ ดังนั้นควรทดสอบลักษณะการทำงานก่อนใช้งาน
ฟิลด์บังคับ ส่วนตัว และตรวจสอบแล้ว¶
ทำให้ช่องบังคับทุกที่:
หรือเฉพาะในพื้นที่ที่มี ID ฐานข้อมูล 1 และ 3:
กฎบังคับเฉพาะพื้นที่ใช้กับช่อง entry เท่านั้น ต้องทำเครื่องหมายในช่องบังคับก่อนส่ง
รองรับช่องที่กำหนดเองส่วนตัวสำหรับ entry และ users:
สิ่งนี้จะปกป้องค่าเมื่อมีการเปิดใช้งานและกำหนดค่าการจองส่วนตัวเท่านั้น ทดสอบทุกบทบาทที่เกี่ยวข้อง อย่าใช้ความเป็นส่วนตัวของ UI แทนการลดข้อมูลที่ละเอียดอ่อนให้เหลือน้อยที่สุด
ขณะนี้การตรวจสอบความถูกต้องของรูปแบบจำกัดอยู่ที่ช่องข้อความ 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',
);
คำอธิบายตัวเลือกในตัวอย่างนี้ยังคงเหมือนเดิมในทุกภาษาของ UI หากคำบรรยายตัวเลือกที่แปลเป็นสิ่งจำเป็น ให้ออกแบบและทดสอบส่วนขยายเฉพาะไซต์ แทนที่จะสมมติว่า $select_options แปลโดยอัตโนมัติ
เปลี่ยน ลบ และอัปเกรด¶
ก่อนที่จะย่อคอลัมน์หรือเปลี่ยนประเภท ให้ตรวจสอบค่าที่มีอยู่และทดสอบการแปลง ก่อนที่จะลบฟิลด์ ให้ลบการอ้างอิงการกำหนดค่า ปรับใช้การเปลี่ยนแปลงนั้น ยืนยันว่าแอปพลิเคชันทำงาน จากนั้นปล่อยคอลัมน์ผ่านกระบวนการเปลี่ยนแปลงฐานข้อมูลปกติเท่านั้น สำหรับช่องการจอง ให้เปลี่ยนทั้ง entry และ repeat
บันทึกทุกคอลัมน์ที่กำหนดเองในเอกสารประกอบการดำเนินงานของไซต์ และตรวจสอบอีกครั้งหลังจากอัปเกรด MRBS แต่ละครั้ง สคริปต์สคีมามาตรฐาน MRBS ไม่ได้เป็นเจ้าของคอลัมน์เหล่านี้
รายการตรวจสอบการยืนยัน¶
- คำจำกัดความ
entryและrepeatจะเหมือนกันในทุกฟิลด์การจอง - การสร้าง แก้ไข ดู คัดลอก และลบงานการจอง
- สามารถแก้ไขซีรีส์ที่เกิดซ้ำและรายการหนึ่งรายการได้อย่างถูกต้อง
- ค่าเริ่มต้นของฐานข้อมูลจะถูกนำไปใช้กับบันทึกใหม่
- พฤติกรรมที่จำเป็น ส่วนตัว เลือก รายการข้อมูล และการตรวจสอบทำงานตามบทบาทและพื้นที่
- ป้ายกำกับจะปรากฏในทุกภาษาที่กำหนดค่าไว้
- การค้นหา รายงาน อีเมล การส่งออกปฏิทิน และการนำเข้า/ส่งออกจะแสดงค่าที่ปลอดภัย
- การดูแลห้องและผู้ใช้จะแสดงเฉพาะฟิลด์ที่ต้องการเท่านั้น
- ขั้นตอนการสำรองและกู้คืนรวมถึงสคีมาแบบขยาย