All about Magento E-commerce Store.......MagentoForum: Magento: Show Currency Selector in header

Wednesday, August 24, 2011

Magento: Show Currency Selector in header


Here, I will show you how you can change the location of currency selector to header in Magento.
By default, the currency selector is displayed in the left sidebar. Here, I will show you how you can show it in header just below the language selector.

Create a new phtml file (template/directory/currency-top.phtml) and write the following code in it :-
<?php if($this->getCurrencyCount()>1): ?>
<div class="box language-switcher" style="margin-left:15px">
    <label for="select-language">Your Currency: </label>
        <select name="currency" onchange="changeCurrency(this)">
        <?php foreach ($this->getCurrencies() as $_code => $_name): ?>
            <option value="<?php echo $_code ?>"<?php if($_code==$this->getCurrentCurrencyCode()): ?> selected="selected"<?php endif; ?>>
                <?php echo $_name ?> - <?php echo $_code ?>
            </option>
        <?php endforeach; ?>
        </select>
</div>
<script type="text/javascript">
//<![CDATA[
function changeCurrency(sObject){
    if(sObject.value){
        setLocation('<?php echo $this->helper('directory/url')->getSwitchCurrencyUrl() ?>currency/'+sObject.value);
    }
}
//]]>
</script>
<?php endif; ?>
Add currency_top block after store_language block inside header block of page.xml present around line #66 :-
<block type="page/html_header" name="header" as="header">
    <block type="page/template_links" name="top.links" as="topLinks"/>
    <block type="page/switch" name="store_language" as="store_language" template="page/switch/languages.phtml"/>
    <block type="directory/currency" name="currency_top" template="directory/currency-top.phtml"/>
    <block type="core/text_list" name="top.menu" as="topMenu"/>
</block>
Add getChildHtml('currency_top') below getChildHtml('store_language') intemplate/page/html/header.phtml like below :-
<?php echo $this->getChildHtml('store_language') ?>
<?php echo $this->getChildHtml('currency_top') ?>
That's all. Now, you will be able to see currency selector in the header of your site

No comments:

Post a Comment