การเรียก Static Blocks ในตำแหน่งก่อน Content

เวลาเราเรียก Static Blocks โดยปรกติแล้ว เราก็จะใช้ Code เรียก Static Blocks

โดย block_id นั้นก็จะเปลี่ยนไป ตามแต่เราต้องการ ว่าจะให้  Block Id ไหน แสดงขึ้นมา  ซึ่ง เราจะสามารถ แทรก Static ได้เฉพาะบริเวณที่เป็นส่วนของ Content หรือเนื้อหา ของ Page นั้นๆ เท่านั้น

[php]{{widget type="cms/widget_block" template="cms/widget/static_block/default.phtml" block_id="1"}}[/php]

การจัด Layout ในหน้าเว็บของ Magento นั้น เราสามารถจัดหน้า ได้ 4 รูปแบบ คือ

  1. 2 Column with Left bar
  2. 2 Column with Right bar
  3. 3 Column
  4. 1 Column

แต่ไม่สามารถจัดหน้าแบบผสมกันได้ เช่นด้านบนสุดเป็น 1 Column เพื่อจะได้ใส่ Slide ใหญ่ๆ ด้านล่าง เป็น 2 Column ดังรูปข้างล่าง แบบนี้จะไม่สามารถทำได้ครับ  เพราะ Code การเรียก Statics Block ต้องอยู่ในส่วนของ Content เท่านั้น

จากภาพ – หากเราแทรก Statics Block โดยผ่านระบบหลังร้าน เราจะสามารถ แทรกเข้ามาได้เฉพาะส่วนที่เป็น content (สีน้ำเงิน) เท่านั้น ในรูปนี้คือ 2 Column with Left bar. ซึ่งเราอาจจะสลับให้ column สีน้ำเงิน มาอยู่ด้านซ้ายก็ได้ โดยจัดใหม่เป็น 2 Column with Right หรือจะจัดเป็น แบบ 1 column เดียวก็ยังได้(ไม่มีแถบสีเขียว)

แต่หากจะจัดหน้าแบบผสม คือ ด้านบนเป็น 1 Coumn (สีแดง)  ด้านล่างเป็น 2 Column แบบนี้ต้องใช้วิธีการแบบที่ผมจะบอกต่อไปนี้ครับ

[cspasswordcode password=’thaishopdesign2012′]

ให้ทำการเปิดไฟล์ header.phtml (app/design/frontend/default/maxblue/template/page/html/header.phtml) ขึ้นมา แล้ววาง code ต่อไปนี้ลงไปที่บรรทัดล่างสุด ของไฟล์ header.phtml นะครับ…

[php]
<?php if ($this->getChildHtml(‘main_slide’)): ?>
<div class="mainSlide">
<?php echo $this->getChildHtml(‘main_slide’)?>
</div>
<?php endif; ?>
[/php]

แทนที่ main_slide ด้วยชื่อ Static Blocks ที่คุณต้องการเรียก

แต่ Blocks ที่เราเรึยก จะยังไม่มานะครับ จนกว่าเรา จะไปสร้าง Static Blocks ชื่อ main_slide และ มีการ code เรียกอีกครั้งในหน้า CMS (สังเกตว่ามี Function If อยู่ด้วย)

เมื่อสร้าง Static Blocks ชือ่ main_slide เรียบร้อยแล้ว ก็ให้เข้าไปที่ CMS > Pages เลือกหน้าที่ต้องการที่จะเรียก Static Blocks แล้วไปที่ Tab : Design

แล้ววาง Code เรียดดังนี้ลงไป

[php]
<reference name="header">
<block type="cms/block" name="main_slide" as="main_slide">
<action method="setBlockId"><id>main_slide</id></action>
</block>
</reference>
[/php]

เป็นอันเรียบร้อยครับ @33
[/cspasswordcode]