โมดูล main ของ GCMS เวอร์ชั่น 2.0
โมดูล main เป็นโมดูลสำคัญอันหนึ่งของ GCMS โดยปกติเราจะใช้โมดูลนี้เป็นหน้าหลักของเว็บไซต์ นอกจากนี้ โมดูลนี้ยังเป็นตัวอย่างที่สำคัญสำหรับการออกแบบ หรือดัดแปลงโมดูลด้วยตัวเอง บน GCMS
ถ้าคุณคิดจะดัดแปลง GCMS คุณควรศึกษาโมดูลนี้ให้ดีๆก่อนนะครับ ผมจะอธิบายไฟล์ทีละไฟล์ในโมดูลนี้ละกัน (ในโมดูลอื่นๆ ก็จะมี หรือสามารถมีได้ในลักษณะเดียวกัน)
index.php ไฟล์นี้เป็นไฟล์สำคัญ ทำหน้าที่เป็นหน้าหลักสำหรับการเรียกไฟล์ต่างๆ ผ่าน URL เท่านั้น โดยทั่วๆไปจะต้องมีไฟล์นี้เหมือนๆกันทุกโมดูล
main.php ไฟล์นี้เป็นไฟล์หน้าหลักของโมดูล การแสดงเนื้อหาจะทำผ่านหน้านี้ โดยโค้ดในหน้านี้จะต้องเป็น PHP เท่านั้น และตัวแปร $data จะเป็นตัวแปร ที่เก็บค่า string ที่เป็นเนื้อหาของหน้านี้
<?php
if ( defined( 'MAIN_INIT' ) )
{
$data = 'hello word';
};
?>
ทดลองสร้าง module นี้อย่างง่ายๆดังโค้ดด้านบน หน้าเว็บของโมดูลนี้จะแสดงคำว่า hello word
config.php ไฟล์นี้ภายในโมดูลต่างๆจะเป็นการเก็บค่า config เฉพาะของแต่ละโมดูล ซึ่งจะถูกโหลดเมื่อเรียกโมดูลน้เท่านั้น (อัตโนมัติ) โดยปกติแล้ว ไฟล์นี้จะต้องเก็บค่า config ที่เป็นค่าบนเมนูดังโค้ด
<?php
// ไตเติลของโมดูล
$title = 'GCMS - AJAX CMS';
// รายการที่แสดงบนเมนู
$menu_text = 'หน้าหลัก';
$menu_title = 'หน้าหลักเว็บไซต์ :: Home';
?>
ไฟล์ write.php และ post.php 2 ไฟล์นี้เป็นไฟล์ที่ใช้เขียนและบันทึกการเขียนหน้าเว็บ ถ้าเป็นโมดูลเฉพาะงานก็อาจจะไม่มีไฟล์ 2 ไฟล์นี้ก้ได้ ไฟล์ทั้ง 2 ไฟล์จะทำหน้าที่เขียนและสร้างไฟล์หน้าเพจที่เป็น phpไฟล์บันทึกไว้บน server เพื่อถูกเรียกใช้โดยหน้า main
<?php
// โมดูลเพิ่มเติม เฉพาะของหน้า main
$data .= "\n<hr class=\"hidden\" />\n";
$data .= "<!-- โมดูลข่าว (rss)-->\n";
$data .= "<div class=\"title\"><h2>ข่าว IT.</h2></div>\n";
$data .= "<div class=\"item\"><div id=\"rss-it\"><p style=\"padding:5px;display:block;text-align:center;\">Loading...</p></div></div>\n";
$data .= "<div class=\"title\"><h2>ข่าวบันเทิง.</h2></div>\n";
$data .= "<div class=\"item\"><div id=\"rss-ent\"><p style=\"padding:5px;display:block;text-align:center;\">Loading...</p></div></div>\n";
$data .= "<!-- โมดูลแสดงกระทู้ล่าสุด (webboard/new.php)-->\n";
$data .= "<div class=\"title\"><h2>เว็บบอร์ด</h2></div>\n";
$data .= "<div class=\"item\"><div id=\"webboard-new\"><p style=\"padding:5px;display:block;text-align:center;\">Loading...</p></div></div>\n";
$data .= '<script type="text/javascript">';
$data .= 'webboardnewtime = 0;';
$data .= "webboardNew('webboard',30000);";
$data .= "loadNews('http://www.rssthai.com/rss/it.xml','rss-it');";
$data .= "loadNews('http://www.rssthai.com/rss/entertain.xml','rss-ent');";
$data .= '</script>';
?>
ดูตัวอย่างโค้ดในหน้า document.php กันครับ จะเห็นได้ว่าในโค้ดจะเป็นส่วนแสดงผล rss โดยจะมี javascript ในส่วนสีเทา จะเห็นได้ว่า ข้อความที่จะแสดงผลทั้งหมดจะอยู่ในตัวแปร $data เท่านั้นครับ
สำหรับการเลือกข่าวมาแสดง ก็กำหนดในตัวอักษรสีแดงตาม url ที่ต้องการครับ
สามารถแก้ไขส่วนนี้ได้ตามต้องการครับ
การสร้างโมดูลใหม่ สามารถ copy เอาโฟลเดอร์ที่ต้องการไป แล้วเปลี่ยนเป็นชื่อโมดูลที่ต้องการ และ แก้ไข config.php ภายในโมดูลที่ copy ไปเท่านั้น ก็จะได้โมดูลใหม่แล้วครับ หลังจากนั้น ก็ให้ดัดแปลงโค้ดภายในโมดูลนั้นๆ เอาตามต้องการ (board gallary หรือ โมดูลอื่นๆ ก็สามารถทำได้ในแบบเดียวกัน) อ้อ แล้วก็อย่าลืม copy โฟลเดอร์ชื่อเดียวกันใน skin/ ด้วยนะครับ
ดาวน์โหลดโมดูลอย่างง่าย ไปปรับแต่งกันดูครับ
