วันจันทร์ที่ 14 พฤศจิกายน พ.ศ. 2554

การแสดง title แต่ละหน้าของ maxsite ให้สัมพันธ์กับเนื้อหา

การแสดง title แต่ละหน้าของ maxsite ให้สัมพันธ์กับเนื้อหา สไตล์ narongrit.net
ผมเคยอ่านเจอกระทู้เก่าๆ เกี่ยวกับการแสดง title ให้แตกต่างกันโดยใช้โครง maxsite นี้ ซึ่งถ้าจำไม่ผิด จะต้องเพิ่มไฟล์อีกหลายๆ ไฟล์ และต้องมีการปรับยกใหญ่เลย
ก็เลยเกิดไอเดียว่าน่าจะมีวิธีที่ง่ายกว่านั้น จนเกิดเป็นการปรับแต่งดังที่ผมจะบอกเล่าต่อไปนี้ครับ
ไอเดียผมก็คือว่า ปรับแค่ไฟล์เดียวเลย คือ index.php ที่ path หลักแต่อาศัยดึงข้อมูลจากฐานข้อมูลมาแสดงเพื่อให้ title กับเนื้อหาสัมพันธ์กัน โดยใช้ id และ name เป็นตัวแปรในการเชื่อมโยง 
มาเริ่มวิธีการกันเลยครับ
1. เปิดไฟล์ index.php ที่ path หลักนะครับ ซึ่งเป็นไฟล์ที่คลุมหน้าโมดูลต่างๆ เอาไว้
2. เพิ่มโค้ดดังบรรทัดข้างล่างนี้เข้าไป
เอาไว้้ต่อจากบรรทัด GETMODULE($_GET[name],$_GET[file]);
 
01if ($_GET['name']=='index') { $showtitle='Narongrit.net [ปี2] : หน้าแรก';} 
02elseif ($_GET['name']=='knowledge') { $showtitle='Narongrit.net : บทความ';
03//ดึงข้อมูลกระทู้ 
04$db->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD);
05$Explainselect = $db->fetch($db->select_query("SELECT * FROM ".TB_KNOWLEDGE." WHERE id = '".$_GET[id]."' "));
06$db->closedb ();
07if ($_GET[id]){
08$explain=" เรื่อง ".$Explainselect[topic].""; }
09else {$explain='';}
10}
11elseif ($_GET['name']=='webboard') { $showtitle='Narongrit.net [ปี2] : เวบบอร์ด';
12$db->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD);
13$Explainselect = $db->fetch($db->select_query("SELECT * FROM ".TB_WEBBOARD." WHERE id = '".$_GET[id]."' "));
14$db->closedb ();
15if ($_GET[id]){
16$explain=" เรื่อง ".$Explainselect[topic].""; }
17else {$explain='';}
18}
19elseif ($_GET[name]=="aboutus") { $showtitle="ข้อความเกี่ยวกับเรา";}
20elseif ($_GET[name]=="calendar") { $showtitle="ปฏิทินกิจกรรม";}
21else { $showtitle="ข้อความอื่นๆ ที่ไม่เข้าเงื่อนไขใดๆ"; }
ตัวอย่างด้านบนนี้ ผมยกมาแค่ 2 โมดูลนะครับ หากมีอื่นๆ อีก เช่น ดาวน์โหลด หรือสมาชิก ก็ต้องเพิ่มโค้ดคล้ายๆ กันเข้าไป คือ
 
1elseif ($_GET['name']=='webboard') { $showtitle="ข้อความหรือชื่อโมดูล"';
2$db->connectdb(DB_NAME,DB_USERNAME,DB_PASSWORD);
3$Explainselect = $db->fetch($db->select_query("SELECT * FROM ".ชื่อตารางที่อ้างอิง." WHERE id = '".$_GET[id]."' "));
4$db->closedb ();
5if ($_GET[id]){
6$explain=" เรื่อง ".$Explainselect[topic].""; }
7else {$explain='';}
8}
สำหรับโค้ด elseif นี้ผมแนะนำให้หาอ่านหนังสือ หรือจากเวบต่างๆ ว่าใช้งานยังไง จะวางตรงไหนนะครับ เพราะน่าจะเข้าใจได้ดีกว่าที่ผมอธิบาย
3. ยังไม่จบครับ สำหรับการแสดงผลในส่วนของ title เวบนั้น ก็ต้องเพิ่มโค้ดนี้เข้าไป จากเดิมคือ <TITLE><?=WEB_TITLE;?></TITLE>
ก็แก้ให้เป็นดังนี้ครับ
 
1<title><? echo "".$showtitle."".$explain."" ;?></title>
 จากนั้นก็ลองทดสอบผลได้เลยครับ
ลองสังเกตุจากตัวอย่างเวบผมนี้นะครับ แต่ละหน้าแต่ละโมดูล ข้อความที่ title จะแตกต่างกัน และถ้าคลิกเข้าไปดูบทความหรือกระทู้ต่างๆ ก็จะมีการแสดงหัวข้อของกระทู้หรือบทความนั้นๆ บน web title ด้วย
หวังว่าบทความนี้คงเป็นประโยชน์ต่อหลายๆ ท่านนะครับ มีข้อสงสัย สอบถามได้ที่เวบบอร์ดนะครับ

เขียนและเรียบเรียงโดย
คุณฉุย เว็บ http://www.narongrit.net/
ปรับปรุงเมื่อ 25/2/2552

ไม่มีความคิดเห็น:

แสดงความคิดเห็น