Drupal Colourise Theme (EP.3)

สำหรับ Episode 3 ของการแปลง Colourise (free css template) เป็นธีมของ drupal6.x นี้ ก็คงเป็นตอนสุดท้ายที่ผมจะเขียน แต่ไม่ใช่ขั้นตอนสุดท้ายของการพัฒนาธีม แต่หลังจากผ่านขั้นตอนพื้นฐานของการทำธีม drupal ก็จะเป็นเรื่องการตกแต่ง ซึ่งเน้นไปที่ css มากกว่า drupal และผมตั้งใจว่าจะแยกเรื่อง css ออกมาเขียนต่างหาก เพราะมันสามารถเอาไปพัฒนาธีม/เทมเพลตสำหรับ cms ตัวอื่นๆได้เช่นกัน

ขั้นตอนที่เหลือสำหรับ Drupal Colourise Theme ก็คือ กำหนดตำแหน่ง block เพิ่มเติม , เปลี่ยน path ของไฟล์ให้เป็นระเบียบ แล้วก็เพิ่มและเคลียร์สิ่งที่ไม่จำเป็นออกไปจาก css

  1. เพิ่ม block regions ใน footer ในไฟล์ index.html ดั้งเดิมของ colourise ส่วน footer เราจะเห็นใน firebug ว่า มันมี block อยู่ 3 คอลัมน์ และเช่นเคย ผมจะไม่เปลี่ยนโครงสร้างเดิมของ markup และ css เราจึงกำหนดให้มันมี 3 block regions ใน footer โดยเพิ่มลงไปในไฟล์ colourise.info ดังนี้

    regions[footer_1] = Footer Block 1
    regions[footer_2] = Footer Block 2
    regions[footer_3] = Footer Block 3

  2. แสดง footer blocks ในไฟล์ page.tpl.php เช่นเดียวกับการเพิ่มเนื้อหาใน block ด้านข้าง (Right Sidebar) เราก็เติม Footer Block ทั้ง 3 คอลัมน์ได้ดังนี้

    <?php if ($footer_1): ?>
    <div class="col float-left space-sep">
    <?php print $footer_1 ?>
    </div>
    <?php endif; ?>
    <?php if ($footer_2): ?>
    <div class="col float-left">
    <?php print $footer_2 ?>
    </div>
    <?php endif; ?>
    <?php if ($footer_3): ?>
    <div class="col2 float-right">
    <?php print $footer_3 ?>
    </div>
    <?php endif; ?>

  3. ตอนนี้เราก็มี block regions เพิ่มขึ้นมา 3 ที่แล้ว! ก็เอา block ต่างๆของ drupal มาวางได้เลย แต่เนื่องจาก ทั้ง 3 blocks ใช้วิธีการ float ใน css ส่วนที่เป็น เครดิตของเว็บไซต์ด้านล่างจึงลอยตามขึ้นมาด้วย วิธีแก้ง่ายๆ ก็คือ ใส่ clear: both ให้มัน แต่ไม่ต้องเขียน css เพิ่มก็ได้ เพราะมันมี class="clearer" กำหนดให้เป็นตัวเคลียร์ใน Colourise.css อยู่แล้ว เราก็ใส่ class นี้ให้กับ elements ที่ต้องการเคลียร์ตำแหน่งซะ เป็น

    <?php if ($footer_message): ?>
    <!-- เครดิตของเว็บไซต์ -->
    <p class="clearer"><?php print $footer_message ?></p>
    <?php endif; ?>
    <p class="clearer">...</p>

    New Footer Blocks

  4. จัดการ path ของไฟล์ให้เป็นระเบียบ เนื่องจากไฟล์ Colourise.css อยู่ในโฟลเดอร์ images แต่เพื่อความเป็นระเบียบ ผมชอบรวมไฟล์ css ไว้ต่างหาก เพราะบางทีเราต้องเขียนหลายไฟล์ ก็เลยจัดการสร้างโฟลเดอร์ใหม่ ชื่อว่า css ในโฟลเดอร์ธีมของเรา แล้วเอาไฟล์ colourise.css ย้ายไปเก็บไว้ในนั้น (ผมเปลี่ยนชื่อมันเป็น colourise.css แทน Colourise.css แต่จริงๆไม่มีผลอะไร เพียงแต่เป็นความชอบส่วนตัว ที่ไม่อยากเห็นชื่อไฟล์มีตัวอักษรใหญ่) จากนั้นก็เข้าไปแก้ในไฟล์ colourise.info เป็น

    stylesheets[all][] = css/colourise.css

  5. อย่าลืมเปลี่ยน path ของภาพพื้นหลังในไฟล์ css ด้วย เพราะไฟล์รูปภาพที่เราใช้ใน css เขียน path ไว้แบบอ้างอิง เราก็ต้องแก้ path ใหม่ให้มันด้วย ไม่งั้นมันจะไม่แสดงภาพพื้นหลัง เช่น เปลี่ยน background: url(bg.jpg); ให้เป็น background: url(../images/bg.jpg); ซึ่งในไฟล์ colourise.css ก็มีอยู่ 5-6 จุด
  6. งานก่อสร้างเสร็จแล้ว เหลืองานตกแต่งภายใน ผมจะยังไม่พูดถึงการตกแต่งธีมด้วย css หรอกนะครับ เพราะเรื่องมันยาวเกินกว่าจะพล่ามได้จบใน 3 ตอน แต่งานก่อสร้างพื้นฐานของธีม colourise ใน drupal 6 ก็มีหลักๆเท่านี้ ที่เหลือก็แก้ไข css เอาเองได้ และเรายังสามารถต่อเติมธีมได้อีกมาก และหลายๆอย่างผมก็ยังไม่ได้พูดถึง เช่น การเพิ่ม features สำหรับเลย์เอาต์ของธีมในไฟล์ template.php , การสร้างไฟล์ *.tpl.php อื่นๆ เพื่อ markup ของ drupal ให้ได้ดั่งใจเรา รวมถึงการ override ไฟล์ css ของระบบและโมดูลใน drupal ด้วย

เมื่อผมแก้ไขธีม Colourise สำหรับ Drupal 6 ได้สมบูรณ์แล้ว ก็จะเอามาให้ดาวน์โหลดไปใช้ได้ ส่วนไฟล์แนบด้านล่างนี้ คือ ธีมที่ยังไม่ได้เขียน css ใหม่ แต่ก็สามารถเอาไปทดลองปรับแต่ง หรือใช้งานในเว็บไซต์สำหรับทดสอบได้ เหมือนที่ผมเอามาทดลองใช้อยู่ใน webzer ขณะนี้

ที่มา : http://webzer.net/node/53