01 November 2012

Meeting Room Booking System

ผมเจอเอามารวมไว้สองที่ครับ น่าจะทำให้ติดตั้งแล้วสามารถใช้งานได้

โปรแกรม MRBS (Meeting Room Booking System) เวอร์ชั่น 2.0
พัฒนาต่อจาก WebCalendar-1.2.0 (เวอร์ชั่นล่าสุด)
ภาษาไทย: ปรับให้รองรับข้อมูลภาษาไทยแล้ว แต่เมนูโปรแกรมยังเป็นภาษาอังกฤษ
Add=Ons: เพิ่มปฏิทินวันสำคัญ/วันหยุด ปี 2550-2554
รายละเอียด: อ่านไฟล์ README.txt

 mrbs-2.0.zip
ถ้าลงแล้ว errorแบบนี้
Warning: mb_language() [function.mb-language]: Unknown language "Spanish" in C:\xampp\htdocs\WebCalendar\includes\classes\WebCalendar.class on line 872

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\WebCalendar\includes\classes\WebCalendar.class:872) in C:\xampp\htdocs\WebCalendar\login.php on line 151

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\WebCalendar\includes\classes\WebCalendar.class:872) in C:\xampp\htdocs\WebCalendar\login.php on line 157
แก้ที่
in includes/classes/WebCalendar.class on line 872
change
if (mb_language($mb_lang) && mb_internal_encoding(translate('charset'))) {
to
if (@mb_language($mb_lang) && mb_internal_encoding(translate('charset'))) {

----------------------------------------------------------------------------------------------------------------------
credit : http://oilachi.exteen.com/20100521/meeting-room-booking-system-2-0?n=y
----------------------------------------------------------------------------------------------------------------------

Meeting Room Booking System (MRBS)
วิธีติดตั้งก็ไม่ยาก ผู้พัฒนาเค้าเขียนเอกสารประกอบมาค่อนข้างละเอียด
ก็ทำตามนั้นได้เลย
อันดับแรกก็แตก 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"; อยู่ที่ไฟล์ systemdefaults.inc.php
เป็นการเขียน user/pwd ลงไปแบบ hard code ใน systemdefaults.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"] ใน systemdefaults.inc.php ให้หมด
เราก็จะใช้ user/pwd จาก db อย่างเดียว
กลับมาดูที่หน้าตาโปรแกรม จะเห็นว่าช่วงเวลาที่กำหนดมาให้เป็นช่วงละ 30 นาที
ตั้งแต่ 7 โมงเช้าถึง 1 ทุ่ม ถ้าอยากได้มากน้อยกว่านี้ก็ไปแก้ที่ areadefaults.inc.php ที่ตัวแปร
$resolution = 1800; อันนี้เท่ากับ 30 นาที
$morningstarts = 7; เริ่ม 7 โมงเช้า
$eveningends = 19; สิ้นสุดที่ 1 ทุ่ม
ต่อไปมาดูที่ระบบภาษา โปรแกรมเตรียมภาษาและคำแปลมาให้มากมาย
และแน่นอน ภาษาไทย...มันจะไม่มี!!!
ค่าเริ่มต้นมันจะไปที่ lang.en คือภาษาอังกฤษ เราก็จัดการ copy lang.en เป็น lang.th ซะ
แล้วก็ปรับปรุงแก้ไข lang.th ตามใจชอบเลย แปลให้มันตรงๆ ก็แล้วกัน
แล้วกลับไปแก้ที่ systemdefaults.inc.php ตรง
$default_language_tokens แก้จาก "en" เป็น "th"
$disable_automatic_language_changing แก้จาก 0 เป็น 1

เพิ่มเติมครับสำหรับคนที่ต้องการเปลี่ยน theme ให้ไปที่ไฟล์ 
Themes/default/styling.inc
แก้ไขตามใจชอบได้เลยครับ
ต่อไปทดลองใช้งานก็เรียบร้อย..
---------------------------------------------------------------------------
----------------------------------------------------------------------------------------------