Meeting Room Booking System

Meeting Room Booking System

เนื่องจากที่ทำงานมีห้องเยอะมาก แล้วต้องมีการจองไว้ให้ลูกค้าเข้ามาใช้
ปัจจุบันใช้เป็นไฟล์ excel (ไฟล์ออฟฟิศสารพัดประโยชน์)
เพิ่มลบกันกระหน่ำ ระบายสีกันให้พรึ่ด
แล้วต้องแชร์ไฟล์กัน แย่งกันเปิดวุ่นวายมาก
ใช้งานไม่ค่อยสะดวกเท่าไหร่ แถมแฮงบ่อยอีกต่างหาก

เลยจะลองเปลี่ยนเป็น web base ดูบ้าง
ไปหาดูโปรเจ็คใน SourceForge.net ค้นว่า “room booking”
ก็เจออยู่หลายตัว แต่ตัวที่น่าสนใจที่สุดก็คืออันนี้
Meeting Room Booking System (MRBS)
ล่าสุดเป็นเวอร์ชั่น 1.2.3 ออกมาได้เกือบปีนึงแล้ว
เห็นว่าเป็น php คิดว่าน่าจะแก้ไขปรับปรุงได้ง่ายและเร็วที่สุด
และที่สำคัญ จำนวนดาวน์โหลดมันเยอะดี แปลว่าค่อนข้างเป็นที่นิยม
ของเค้าคงดีจริง ก็เลยเอาปลอดภัยไว้ก่อน

วิธีติดตั้งก็ไม่ยาก ผู้พัฒนาเค้าเขียนเอกสารประกอบมาค่อนข้างละเอียด
ก็ทำตามนั้นได้เลย

อันดับแรกก็แตก zip file ลงไปวางไว้บน web server
ผมทำเป็น virtual host เลยต้องไปแก้ httpd.conf ของ Apache นิดหน่อย
เซิร์ฟเวอร์เดียววางมันซะเจ็ดแปดเวบ อาศัย user น้อย มันคงไม่ล่ม

ต่อไปก็สร้าง db ใน mySql ขึ้นมาก้อนนึง ตั้งชื่อว่า mrbs
เอา script ที่เค้าให้มา (tables.my.sql) รันไปปื้ดนึง ก็ได้ table มาเรียบร้อย
เค้ามี sample-data.sql มาให้ด้วย ดีมากเลย ไม่ต้องคิดเอง
(ถ้าใครใช้ PostgreSql ก็ใช้สคริปต์ในไฟล์ tables.pg.sql แทน)

แค่นี้ก็เสร็จเรียบร้อย ถ้าไม่มีอะไรผิดพลาด ก็ใส่ url ตามโดเมนที่เราตั้งไว้
มันควรจะแสดงผลออกมาได้คล้ายๆ ในรูปข้างบน

จากนั้นก็จะปรับแต่งอะไรก็ตามสะดวก

เริ่มที่ไฟล์ config.inc.php อ่านไปแก้ไปได้เลย
มีรายละเอียดและตัวอย่างให้ชัดเจน
ส่วนมากเป็นพวกค่าคงที่ทั้งหลาย ส่วนของ db ถ้าใช้ mySql อยู่แล้วก็ไม่ต้องแก้อะไร
ส่วนพวกตัวแปร $mrbs_admin
$mrbs_admin_email
$mrbs_company
ก็แก้เอาตามความต้องการ

ต่อไปเรื่อง user ถ้าตามค่า default ของโปรแกรม ตรง $auth[“type”] = “config”;
เป็นการเขียน user/pwd ลงไปแบบ hard code ใน config.inc.php
ถ้าไม่ซีเรียสอะไร วิธีนี้ก็สะดวกดี แต่ไม่ค่อยปลอดภัย
จะเห็นว่าเค้าใส่ user/pwd มาให้แล้ว 3 user คือ
administrator/secret
alice/a
bob/b

ถ้าอ่านในไฟล์ AUTHENTICATION จะทราบว่า
user จะมี 3 level คือ
Unknown user
Authenticated user
Administrator

ถ้าเป็น unknow ก็ดูได้หมดว่าห้องไหนใครจอง แต่แก้ไขไม่ได้
authen ก็จะดูได้หมด แต่แก้ได้เฉพาะของตัวเอง
admin ก็ทำได้ทุกอย่างตามระเบียบ

โปรแกรมทำไว้ค่อนข้างดี ทำให้ยืดหยุ่นในการเลือกใช้ระบบ log in มาก
นอกจากจะ hard code ตรงๆ แล้วก็ยังไปลิงค์ใช้กับระบบ user/pwd อื่นได้
อาทิ db, external db, pop3, imap, ldap ฯลฯ

ผมเลือกตามหลักสากลนิยมคือ db ก็จัดการแก้
$auth[“type”] เปลี่ยนจาก “config” เป็น “db” ซะ
แล้วก็ log in เข้าไปด้วย administrator/secret ก่อน
กดเข้าไปที่ลิงค์ User list ระบบจะสร้างตาราง users ให้เราสามารถ add user เข้าไปได้
ให้ add user administrator เป็นคนแรก จากนั้นก็ตามใจเลยครับ
แล้วกลับไป comment ที่บรรทัด $auth[“user”] ใน config.inc.php ให้หมด
เราก็จะใช้ user/pwd จาก db อย่างเดียว

กลับมาดูที่หน้าตาโปรแกรม จะเห็นว่าช่วงเวลาที่กำหนดมาให้เป็นช่วงละ 30 นาที
ตั้งแต่ 7 โมงเช้าถึง 1 ทุ่ม ถ้าอยากได้มากน้อยกว่านี้ก็ไปแก้ที่ config.inc.php ที่ตัวแปร
$resolution = 1800; อันนี้เท่ากับ 30 นาที
$morningstarts = 7; เริ่ม 7 โมงเช้า
$eveningends = 19; สิ้นสุดที่ 1 ทุ่ม

ต่อไปมาดูที่ระบบภาษา โปรแกรมเตรียมภาษาและคำแปลมาให้มากมาย
และแน่นอน ภาษาไทย…มันจะไม่มี!!!
ค่าเริ่มต้นมันจะไปที่ lang.en คือภาษาอังกฤษ เราก็จัดการ copy lang.en เป็น lang.th ซะ
แล้วก็ปรับปรุงแก้ไข lang.th ตามใจชอบเลย แปลให้มันตรงๆ ก็แล้วกัน
แล้วกลับไปแก้ที่ config.inc.php ตรง
$default_language_tokens แก้จาก “en” เป็น “th”
$disable_automatic_language_changing แก้จาก 0 เป็น 1

เป็นอันเสร็จพิธี ต่อไปก็เหลือการทดลองใช้งานให้คล่องก็เรียบร้อย…

อัพเดท (12 Aug. 2008): ช่วงนี้มีคน google เข้ามาเจอหน้านี้บ่อย
แล้วมีปัญหาในการใช้งาน มาโพสถามผม ซึ่งต้องขออภัยจริงๆ ที่หลายๆ กรณีผมช่วยตอบ
หรือแก้ปัญหาให้ไม่ได้ เนื่องจากบล็อกนี้ผมเขียนขึ้นเป็นบันทึกช่วยจำของตัวเองเมื่อกว่า 2 ปีก่อน
ซึ่งทำตามวิธีของตัวเอง สภาพแวดล้อมของตัวเอง ซึ่งถ้าใครอ่านแล้วทำตามได้ก็ยินดีด้วยครับ
ส่วนถ้าติดปัญหา ผมก็จนปัญญาเหมือนกันครับ
วิธีที่ดีที่สุดคือ RTFM

11 thoughts on “Meeting Room Booking System”

  1. รบกวนสอบถามด้วยครับ ผมทำตามทุกอย่างแล้วนะครับ แต่มันขึ้น error ว่า

    Fatal error: Call to undefined function set_magic_quotes_runtime() in C:\AppServ\www\web\config.inc.php on line 440

    มันเป็นเพราะอะไรเหรอครับ รบกวนด้วยครับ

  2. ต้องขอโทษจริงๆ ครับ ผมไม่ได้ใช้ appserv
    แล้วก็ไม่ได้รันบน windows ด้วย

    ดีเหมือนกันมีคนมาถาม ทำให้ผมรู้ว่าลิงก์มันผิด (แก้แล้ว)
    แล้วเค้าก็อัพเดทโปรแกรมใหม่เป็นเวอร์ชั่น 1.2.6.1 แล้วด้วย

  3. ขอบคุณครับ สำหรับระบบดีๆแบบนี้้ ว่าแต่ผมขอ Version ใหม่ด้วยคนได้มั้ยครับ
    รบกวนส่งเข้า mail ให้ผมหน่อยนะครับ guitar_aop_solo@hotmail.com

  4. โหลดเอาจาก SourceForge.net เลยครับ ลิงก์อยู่ในบทความแล้ว

  5. แก้เป็นภาษาไทยยังงันอ่ะครับรบกวนช่วนบอกทีครับผม สร้างไฟล์ lang.th ต้องเปลี่ยนค่าตรงไหนบ้างครบ

  6. ลองดูตัวอย่างจากไฟล์ lang.xx อื่นๆ เทียบกับ lang.en ดูนะครับ
    ตอนแก้ผมใช้วิธีสำเนาไฟล์ lang.en มาแก้แล้วบันทึกเป็น lang.th เลย

  7. จะ เพิ่ม/แก้ไขห้องเลือกที่เมนูไหนเหรอครับ

  8. ผมลองใช้เวอร์ชั่นล่าสุด 1.4.2 มันขึ้นเออเร่อตรงส่วนบนของแต่ละหน้า

    [Warning: Server failed to map browser language “” to a Windows locale specifier]

    เป็นเฉพาะ IE นะครับ ลองใช้ Opera Firefox ไม่มีปัญหา
    ไม่ทราบว่าเกิดจากอะไรครับ แก้ไขยังไงดี

  9. ให้ commemnt ทิ้งใน File language.inc
    ในบรรทัด // $locale_warning = “Server failed to map browser language \””.$locale.”\” to a Windows locale specifier”;

    ก็ใช้ได้แล้ว

  10. ผมเลือกตามหลักสากลนิยมคือ db ก็จัดการแก้
    $auth[“type”] เปลี่ยนจาก “config” เป็น “db” ซะ
    แล้วก็ log in เข้าไปด้วย administrator/secret ก่อน
    กดเข้าไปที่ลิงค์ User list ระบบจะสร้างตาราง users ให้เราสามารถ add user เข้าไปได้
    ให้ add user administrator เป็นคนแรก จากนั้นก็ตามใจเลยครับ
    แล้วกลับไป comment ที่บรรทัด $auth[“user”] ใน config.inc.php ให้หมด
    เราก็จะใช้ user/pwd จาก db อย่างเดียว
    ——————–
    ขอโทษนะครับ คือผมจะทำตามด้านบนเนี้ยอะ แต่ไม่ทราบว่าต้องแก้ไฟล์ไหนครับ
    และเขียนชื่อ db ยังไง ขอดูตัวอย่างหน่อยได้ไหมคับ ขอบคุณครับ

  11. แก้ปฎิทินให้เป็นภาษาไทยยังไงครับ

Leave a Reply to หนึ่ง Cancel reply

Your email address will not be published. Required fields are marked *