简体   繁体   中英

How to call Magento block in phtml template?

i need to display some more links in footer. i created those links in magento admin as static blocks (id = sample_links ).

and then i added following code page.xml file

<reference name="foot_lnk">  
<block type="cms/block" name="sample_block" before="-">
      <action method="setBlockId"><block_id>sample_links</block_id></action>
    </block>
</reference>

i called this one in footer.phtml as,

<?php echo $this->getChildHtml('foot_lnk') ?>

but it does not display the CMS static block content. what is the issue?.

$this->getLayout()->createBlock('cms/block')->setBlockId('my_static_block_name')->toHtml() 

The reference is the block previously defined that you want your block to be inside, eg:

<reference name="footer">
  <block type="cms/block" name="sample_links">
    <action method="setBlockId"><block_id>sample_links</block_id></action>
  </block>
</reference>

Then

<?php echo $this->getChildHtml('sample_links') ?>

You can call a statick block like:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_identifier')->toHtml() ?>

And call a block like:

<?php echo $this->getLayout()->createBlock('sidebar/left')->setTemplate('bannerslider/left.phtml')->tohtml(); ?>

Visit magevn.com to see more usecase to use block in magento.

If you don't want to bother with XML, same as swapnesh's answer, I'm just making it clearer for the php noobs out there (like me)

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('your_identifier')->toHtml() ?>

your_identifier is the code you decide to use when creating your block in CMS > Blocks > Create New Block, second line called "Identifier"

change your reference name to footer

like

<reference name="footer">  

then it will work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM