Some websites use a specialized footer containing extra information (usually for SEO purposes) on their front page. This is usually done by determining if the current page is the homepage in the footer template and then treating that footer differently. This dynamic logic makes the footer cache unfriendly, as LiteMage will punch a hole for the “footer” block as a public block. This means that whichever version of the footer, specialized or not, LiteMage encounters first will be be the version that is served on every page.
For Example:
<?php $page = Mage::app()->getFrontController()->getRequest()->getRouteName(); $isHomepage = false; if($page == 'cms'){ if('home' == Mage::getSingleton('cms/page')->getIdentifier()){ $isHomePage = true; } } if($isHomepage): ?> <div class="footer_bottom_text_container"> <div class="footer_bottom_text"> <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_bottom_text')->toHtml() ?> </div> </div> <?php endif; ?>
Solution: Have the homepage specially handled so that the “footer” hole will not be punched there. The first step in accomplishing this is to remove the dynamic portion of the footer block to allow the public “footer” ESI block to continue being punched for other pages. Removing this dynamic code will also have the positive side effect of improving footer render time.
<div class="footer_bottom_text_container"> <div class="footer_bottom_text"> <?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_bottom_text')->toHtml() ?> </div> </div>
<remove name="footer"/> <reference name="root"> <block type="page/html_footer" name="homefooter" as="footer" template="page/htm/homefooter.phtml"> ... </block> </reference>
This removed the old footer block and added the newly created homefooter.phtml template for the home page.
Note: The block name used here has to be unique, but the alias must remain the same as to not interfere with any applied logic. Thus, it is important to include:
name="homefooter" as="footer"
Note: Blocks HTML output should remain disabled under System » Cache Management in the Magento Admin Panel.