Magento货币开关在页脚中显示不正确的货币,但在标题中显示正确

时间:2014-05-08 22:23:42

标签: php magento drop-down-menu currency

我遇到了Magento中货币下拉开关的一个奇怪问题。它在标题中显示并正常工作,但页脚中的显示不正确。它正确地更改货币,因为当我在页脚中切换它时标题中的那个更改,但页脚下拉列表显示错误的货币。如果我选择EUR,则显示GBP,如果我选择GBP,则显示EUR!

我在/目录中创建了currency_footer.phtml(与currency_top.phtml相同的位置),我复制了代码,其中包含了它所包含的div类的唯一更改。以下是currency_footer.phtml中的代码:< / p>

<?php
/**
 * Currency switcher
 *
 * @see Mage_Directory_Block_Currency
 */
?>
<?php if($this->getCurrencyCount()>1): ?>
<div class="tm_footer_currency">
<label class="btn"><?php echo $this->__('Currency:') ?></label>
    <select name="currency" title="<?php echo $this->__('Currency') ?>" onchange="setLocation(this.value)">
    <?php foreach ($this->getCurrencies() as $_code => $_name): ?>
        <option value="<?php echo $this->getSwitchCurrencyUrl($_code) ?>"<?php if($_code==$this->getCurrentCurrencyCode()): ?> selected="selected"<?php endif; ?>>
            <?php echo $_code ?>
        </option>
    <?php endforeach; ?>
    </select>

</div>
<?php endif; ?>

在我的xml文档中,我在页脚中添加了块:

    <reference name="footer"><!-- To ADD In Footer -->
        <block type="newsletter/subscribe" name="footer.newsletter" template="newsletter/subscribe.phtml"/>
        <block type="directory/currency" name="currency_end" as="currency_end" template="directory/currency_footer.phtml"/>
    </reference>  

然后在footer.phtml中:

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

我尝试过为该块使用不同的名称,清除缓存和放大器。重新索引数据,但我没有尝试过任何工作。

为什么它显示不正确,但仍能正常工作?

另一个可能与此无关的问题,我将朋友页面的分享更改为弹出窗口,当我关闭弹出窗口时,标题中的货币下拉列表重复!

1 个答案:

答案 0 :(得分:0)

您需要将代码放入<reference>代码中,之后您将调用?php echo $this->getChildHtml('currency_end') ?>中的&lt; footer.phtml

这里是代码

<reference name="footer">
<block type="directory/currency" name="currency_end" as="currency_end" 
template="directory/currency_footer.phtml"/>
</reference>

或者,

在其他程序中,您would not need xml代码并致电below code in footer.phtml 这里的代码是

    <?php echo $this->getLayout()->createBlock('directory/currency')
->setTemplate('directory/currency_footer.phtml')->toHtml(); ?>