我遇到了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') ?>
我尝试过为该块使用不同的名称,清除缓存和放大器。重新索引数据,但我没有尝试过任何工作。
为什么它显示不正确,但仍能正常工作?
另一个可能与此无关的问题,我将朋友页面的分享更改为弹出窗口,当我关闭弹出窗口时,标题中的货币下拉列表重复!
答案 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(); ?>