隐藏Magento参数

时间:2015-09-22 07:01:59

标签: php magento

我的magento网站(不同的商店)有不同的语言,当我切换语言时,我在网址中获取参数(在开始页面上,它在子域名上是okey)

所以我得到了这个:

?___store=default&___from_store=english

我尝试过编辑

app / code / local / Mage / Core / Store.php

languages.phtml

但是我无法让它发挥作用......

2 个答案:

答案 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/enhttp://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;