Выпадающий список валюты Magento и Символы валют
Я новичок в magento..as в соответствии с моим дизайном мне нужно изменить выпадающую валюту на символы или изображения евро и доллара, которые я создал. Поэтому я хотел бы знать, как я мог бы пойти на это? Мне удалось сменить язык на флаги стран, но я застрял с этой проблемой валюты. Пожалуйста, поделитесь своим мнением по этому поводу.
Я также хотел знать, как заменить "Добавить в список желаний" и "Добавить для сравнения" и заменить его изображениями или значками, созданными мной. Пожалуйста, проводи меня внутрь в связи с этим, а также как добавить "отправить другу электронное письмо" в виде изображения или значка в строке "Добавить в список пожеланий"?
Спасибо
Крис
3 answers
В вашем шаблоне тем/каталоге/currency.phtml измените код на этот (он основан на теме RWD):
<?php
/**
* Currency switcher
*
* @see Mage_Directory_Block_Currency
*/
?>
<?php if($this->getCurrencyCount()>1): ?>
<div class="currency-switcher">
<label for="select-currency"><?php echo $this->__('Your Currency:') ?></label>
<?php foreach ($this->getCurrencies() as $_code => $_name):
// gets the currency symbol for each currency
$symbol = Mage::app()->getLocale()->currency($_code)->getSymbol();
?>
<a href="<?php echo $this->getSwitchCurrencyUrl($_code) ?>" class="<?php if($_code==$this->getCurrentCurrencyCode()): ?> selected <?php endif; ?>">
<?php echo $symbol; ?>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
Это будет выглядеть так:
Как вы можете видеть, волшебство совершается с помощью этой строки после утверждения foreach
:
$symbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
Или сейчас:
Mage::app()->getLocale()->currency($_code)->getSymbol();
РЕДАКТИРОВАТЬ:
Если вы хотите показать изображения для каждой валюты, есть несколько способов сделать это.
Используйте CSS и фоновые изображения, добавив $_code
в класс тегов a:
<?php foreach ($this->getCurrencies() as $_code => $_name):
// gets the currency symbol for each currency
$symbol = Mage::app()->getLocale()->currency($_code)->getSymbol();
?>
<a href="<?php echo $this->getSwitchCurrencyUrl($_code) ?>" class="<?php if($_code==$this->getCurrentCurrencyCode()): ?> selected <?php endif; ?> <?php echo $_code; ?>">
<?php echo $symbol; ?>
</a>
Затем определите свой css (или в данном случае scss - sass):
.currency-switcher {
.a { // define all a tags
display: block;
width: 25px;
height: 25px;
}
// now define the background image for each currency
.USD {
background-image: url('path-to-your-dollar-image') no-repeat 50% 50%;
}
// now define the rest ...
}
Другой метод заключается в том, чтобы снова напрямую выводить изображения, используя значение $_code
, поэтому ваши изображения должны быть названы правильно, например:
currency_USD.png
и currency_GBP.png
и т.д.. и отредактируйте свой код как таковой:
<?php foreach ($this->getCurrencies() as $_code => $_name):
// define the image
$currency_image = 'path/to/your/image/currency_' . $_code . '.png';
?>
<a href="<?php echo $this->getSwitchCurrencyUrl($_code) ?>" class="<?php if($_code==$this->getCurrentCurrencyCode()): ?> selected <?php endif; ?>">
<?php echo $currency_image; ?>
</a>
<?php endforeach; ?>
Что касается вашего редактирования - пожалуйста, также отредактируйте свой заголовок, чтобы его было легче найти людям, так как теперь у него 2 разных вопроса.
Теперь, как сделать то, что вы хотите, со списком пожеланий и добавить для сравнения ссылки... Возможно, у вас уже есть отдельные классы css для "Auf den Wunschzettel" и "Auf die Vergleichsliste".
Путь к файлу шаблона (на основе темы RWD) /app/design/frontend/rwd/default/template/catalog/product/view/addto.phtml
- в этом вы можете видеть, что классы заданы как link-wishlist
и link-compare
.
Вы можете либо отредактировать ваш шаблон для вывода изображений напрямую или просто используйте методы замены изображений css для замены текста изображением - например: https://css-tricks.com/examples/ImageReplacement/
Код такой, как показано ниже, однако изображение выглядит как неработающая ссылка. Есть какая-нибудь помощь?
<?php if ($block->getCurrencyCount() > 1): ?>
<?php $currencies = $block->getCurrencies(); ?>
<?php $currentCurrencyCode = $block->getCurrentCurrencyCode(); ?>
<?php $id = $block->getIdModifier() ? '-' . $block->getIdModifier() : '' ?>
<div class="switcher currency switcher-currency" id="switcher-currency<?= $block->escapeHtmlAttr($id) ?>">
<strong class="label switcher-label"><span><?= $block->escapeHtml(__('Currency')) ?></span></strong>
<div class="actions dropdown options switcher-options">
<div class="action toggle switcher-trigger"
id="switcher-currency-trigger<?= $block->escapeHtmlAttr($id) ?>"
data-mage-init='{"dropdown":{}}'
data-toggle="dropdown"
data-trigger-keypress-button="true">
<strong class="language-<?= $block->escapeHtml($block->getCurrentCurrencyCode()) ?>">
<span><?= $block->escapeHtml($currentCurrencyCode) ?> - <?= @$block->escapeHtml($currencies[$currentCurrencyCode]) ?></span>
</strong>
</div>
<ul class="dropdown switcher-dropdown" data-target="dropdown">
<?php foreach ($currencies as $_code => $_name): ?>
<?php if ($_code != $currentCurrencyCode): ?>
<li class="currency-<?= $block->escapeHtmlAttr($_code) ?> switcher-option">
<a href="#" data-post='<?= /* @noEscape */ $block->getSwitchCurrencyPostData($_code) ?>'><?= $block->escapeHtml($_code) ?> - <?= $block->escapeHtml($_name) ?></a>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
</div>
</div>
<?php endif; ?>