เพิ่ม block region ใน drupal

block region คือ กล่องที่วางกำหนดรูปแบบของ theme ใน drupal โดยเราจะเพิ่มเนื้อหาลงไหนส่วนไหนของเว็บก็ขึ้นอยู่กับ block region เนี้ยเละครับว่ามันวางอยู่ตรงไหนบาง โดย theme ก็มีตำแหน่งของ block region แตกต่างกันไปของแต่ละ theme อย่างของ theme Garland ก็จะเป็นดังรูป
drupal

โดยพื้นฐานแล้วจะมีด้วยกัน 5 ส่วนหลักๆ Left sidebar , Right sidebar , Content , Header , Footer ซึ่งเราสามารถนำ block มาวางไว้ตามจุดพวกนี้ได้
drupal

เราดูได้จากไฟล์ .info ในแต่ละ theme ที่เราใช้ อย่างของผมใช้ Garland อยู่ก็จะชื่อว่า garland.info ซึ่งจะอยู่ในโฟรเดอร์ของ theme เปิดเข้าไปเราจะเห็น

regions[left] = Left sidebar
regions[right] = Right sidebarClear cached data
regions[content] = Content
regions[header] = Header
regions[footer] = Footer

สมมติว่าผมจะเพิ่ม block region ในส่วนบนก่อน content ผมก็ตั้งชื่อว่า top content ให้เพิ่มลงไปใน garland.info

regions[top_content] = Top content // ส่วนที่เพิ่มเข้ามา
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer

จากนั้นให้เพิ่มโค็ดด้านล่างไปที่ไฟล์ page.tpl.php ใน theme ที่ใช้งานอยู่ โดยเพิ่มลงตำแหน่งไหนก็ได้อยู่ที่ว่าเราจะให้มันแสดงออกมาตำแหน่งไหนของ theme เรา

<div class="top_content"><?php print $top_content ?></div>

จากนั้นไปที่เมนู Administer >> Site configuration >> Performance คลิกที่ Clear cached data เพื่อทำการล้าง cached ของ theme เรา แล้วไปที่ Administer >> Site building >> Blocks เราก็จะพบกับ Block region ที่เพิ่มเข้ามาและสามารถนำ module ต่างๆมาวางลงไปได้
drupal

บทความแนะนำ
  • Dexa

    อยากสอบถามครับ ผมเพิ่ม block ในส่วนของ header ใน theme Minnelli
    จากนั้น up รูปขึ้นไปแล้ว ปรากฎว่า รูป มันไม่อยู่ตรงกลางของเวปนะคับ
    มีวิธีแก้ไขยังไงบ้างคับ

  • http://www.facebook.com/snappytux อาานท์ กิจเลิศผล

    แก้ไข CSS ครับอาจจะใช้ text-align: center; หรือ margin: 0 auto; ก็ได้

  • Dexa

    แก้ใน style.css รึป่าวคับ
    อยากขอ โค๊ด เต็มๆเลยอะคับ กับ ตำแหน่งที่ต้องแก้
    ลองทำ หลายจุดแล้วไม่ได้ อะคับ ขอบคุณคร๊าบบ

  • http://www.facebook.com/snappytux อาานท์ กิจเลิศผล

    ที่บอกได้แค่นั้นเพราะผมไม่รู้หรอกครับว่า class ที่คุณใช้งานชื่ออะไร ยกตัวอย่างจากในบทความนะครับจะเขียนได้ออกมาแบบนี้
    .top_content{text-align: center;}

    อธิบายคือภายใน div class top_content ทั้งหมดจะอยู่กึ่งกลาง

  • Dexa

    ขอบคุณมากคร๊าบบ จะลองเอาไปทำดูคับ

blog comments powered by Disqus