ทำ 2 theme ในเวปเดียว :D
blog นี้ย้ายมาจาก kblog เดิมบน mmm ครับ
update 16 สค. 52: ของเดิมผมทำเวป kblog หรือว่าเวปส่วนตัวของผมแป่ะรวมเข้าไปใน mmm แล้วผม theme ส่วนของ kblog ให้เหมือนเป็นคนละเวปกัน(แต่ทั้งหมดอยู่ใต้ domain เดียวกัน) มาตอนหลังผมจับแยก kblog มาทำเป็นเวปที่เห็นอยู่นี้ใหม่ แต่เป็น subdomain ของ macmuemai.com อีกทีนึงครับ
ผมเห็นว่าบทความนี้น่าจะยังเป็นประโยชน์สำหรับคนทำเวปด้วย drupal ที่ต้องการ theme แยก node แต่ละแบบให้ไม่เหมือนกัน จึงเอามาไว้ใน blog ปัจจุบันนี้ด้วย
หลังจากที่ทำ blog ของตัวเองแอบเอาไว้ใน mmm ผมคิดว่า จะใช้ theme เดิมของ mmm เลยก็ดูจะกระไรอยู่ วันนี้เลยลองหาทางศึกษาความเป็นไปได้ว่าจะสามารถจัดการ CSS ให้แตกต่างกันเหมือนคนละ theme ในเวปเดียวกันได้หรือไม่บน drupal.org
ได้มาเจอกระทู้นี้ครับ http://drupal.org/node/451446
ที่ผมได้มาเป็นหลักในการแยก theme ของ node หรือว่าเนื้อหาต่าง ๆ ของ drupal ออกจากกัน แต่เดิมผมพอจะทราบวิธีการวาง layout ของ node แต่ละแบบให้แตกต่างกันได้บ้างแล้ว โดยใช้ page-node-xx.tpl.php (ดูตัวอย่างได้จากหน้า iPhone บนเวปครับ)
แต่ที่ผมอยากได้ขึ้นไปอีกคือ ไม่ใช่แค่ layout ที่เปลี่ยนไป แต่ผมอยากเปลี่ยน CSS หรือว่าหน้าตาของ theme ด้วย =)
เลยมาลงที่การควบคุม theme แบบแยกประเภทของ node ครับ ซึ่งเราจะใช้ selector ว่า
.node-type-MyContentType หรือ
.section-MyContentType
ผมไม่แน่ใจว่าทั้งสองแบบแตกต่างกันอย่างไรนะครับ แต่เขาบังคับการแสดงผลให้เป็นส่วน ๆ ไปตาม content type ที่เราต้องการได้ โดยที่ไม่ไปยุ่งกับ theme ส่วนอื่นของเวป .. ผมเลยเอาตรงนี้มาสร้าง CSS เฉพาะกิจขึ้นมาเพื่อควบคุมส่วนของ Kblog (blog ที่คุณกำลังอ่านอยู่ในตอนนี้) ครับ และนี่เป็นวิธีที่ผมใช้ครับ
- สร้าง node-kblog.tpl.php ใหม่ขึ้นมา โดยการ copy ไฟล์ node.tpl.php แล้วเปลี่ยนโครงสร้างข้างในเล็กน้อย
- จากนั้นผมก็เริ่มลงมือจิ้ม CSS แล้วควบคุมด้วย .node-type-kblog ไม่ก็ .section-kblog เพื่อ theme เฉพาะส่วน content type แบบ Kblog หรือว่า section นี้ครับ ผลที่ได้คือ ได้ CSS ไฟล์เพิ่มจากของเดิมจาก theme ที่ใช้อยู่มาอีกประมาณ 100 บรรทัด :P
เสร็จแล้วก็ได้ออกมาอย่างที่เห็นนี้ครับ ^o^ / ~