我的magento网站(不同的商店)有不同的语言,当我切换语言时,我在网址中获取参数(在开始页面上,它在子域名上是okey)
所以我得到了这个:
?___store=default&___from_store=english
我尝试过编辑
app / code / local / Mage / Core / Store.php
和
languages.phtml
但是我无法让它发挥作用......
答案 0 :(得分:0)
您需要在系统 - >配置 - >网址的网址选项中将“将商店代码添加到网址”设置为“是”。同时将“使用网络服务器重写”设置为“是”。
然后使用以下代码替换/template/page/switch/languages.phtml中的所有代码:
<?php if(count($this->getStores())>1): ?>
<?php
$stores = array();
$_current = null;
foreach ($this->getStores() as $_lang) {
$_selected = $_selected_option = '';
if ( ($_lang->getId() == $this->getCurrentStoreId()) ) {
$_current = $_lang;
}
}
?>
<div class="form-language">
<label for="select-language"><?php echo $this->__('Your Language:') ?></label>
<select id="select-language" title="<?php echo $this->__('Your Language') ?>" onchange="window.location.href=this.value">
<?php foreach ($this->getStores() as $_lang): ?>
<?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?>
<option value="<?php echo $_lang->getCurrentUrl(false); ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endif; ?>
它会显示这样的网址:http://yourdomain.com/en或http://yourdomain.com/fr(无论你提到的商店视图代码)
答案 1 :(得分:0)
我在
中解决了app / code / local / Mage / Core / Model / Store.php
在函数getCurrentUrl()
中第1160行
return $storeParsedUrl['scheme'] . '://' . $storeParsedUrl['host']. (isset($storeParsedUrl['port']) ? ':' . $storeParsedUrl['port'] : '')
. $storeParsedUrl['path'] . $requestString . ($storeParsedQuery ? '?'.http_build_query($storeParsedQuery, '', '&') : '');
更改为
return $storeParsedUrl['scheme'] . '://' . $storeParsedUrl['host'] . (isset($storeParsedUrl['port']) ? ':' . $storeParsedUrl['port'] : '')
. $storeParsedUrl['path'] . $requestString;