强制删除商店代码?___ store =默认来自URL中的Magento

问题描述:

在magento中,我使用两个商店视图,一个是阿拉伯语,另一个是英语。当我将商店切换到英文时,这个字符串被添加到url(___ store = english)中,用于英语商店view.like对于阿拉伯语是明智的。现在我想删除URL中的?___ store = english和URL中的阿拉伯语?___ store = arabic。强制删除商店代码?___ store =默认来自URL中的Magento

在admin进入系统>配置(从顶部菜单),然后转到左侧菜单中的“Web”。

第一个选项是'将商店代码添加到Urls',将其设置为no。

+1

感谢您的comment.But如果我们不喜欢上面的网址类似这样的格式___店=阿拉伯&___ from_store =默认。因为我需要删除存储参数。 – sakthivel 2014-12-05 05:43:50

要删除此格式:??___店=英语英语和___店=阿拉伯语

在设计文件中找到languages.phtml

/应用程序/设计/前端/默认/模板/页/开关/ languages.phtml

在管线41

echo $_lang->getCurrentUrl()

添加 '假' 作为参数

echo $_lang->getCurrentUrl(false)

实际URL:

http:example.com?___store=english for english and ?___store=arabic

加入$ _lang-假参数之后> getCurrentUrl(假)方法。 URL将会产生像下面

http:example.com?___store=english

然后删除“___店=英语”你需要在控制器动作添加预调度事件参数: 在本地模块config.xml中添加以下代码

 <controller_action_predispatch> 
      <observers> 
       <controller_action_before> 
        <class>marketplace/observer</class> 
        <method>setToControllerActionPreDispatch</method> 
       </controller_action_before> 
      </observers> 
     </controller_action_predispatch> 

在当地观察员

public function setToControllerActionPreDispatch($observer) 
{ 
    $pathInfo = Mage::helper('core/url')->getCurrentUrl();  
    if(strpos($pathInfo, "___store") != ''){  
     $pathInfo = str_replace(array('?___store=arabic', '?___store=default'), '' , $pathInfo); 
     Mage::app()->getResponse()->setRedirect($pathInfo); 
    }   

} 
+0

你告诉我们需要创建本地模块来添加'config.xml&observer'代码吗?或者我们可以将这些代码添加到任何模块中 – fresher 2016-05-19 05:57:02

添加这个方法看着这个和试验后管理员,我的想法是考虑多个Magento'网站',而不是商店。看起来即使排除查询参数,Magento也想将商店名称作为URI的第一个组件。简而言之,我不确定在使用多个“商店”时试图从URL中删除商店组件的想法有多好。

如果使用链接小部件,请使用以下过程。

复印app/code/core/Mage/Catalog/Block/Widget/Link.phpapp/code/local/Mage/Catalog/Block/Widget/Link.php

搜索(在Magento 1.7.x /线100在Magento 1.9.x的线91)

$这 - > _ HREF = $这 - > _ HREF。 $符号。 “___ store =”。$ store->引用代码();

并修改

$此 - > _ HREF = $这个 - > _ HREF;

上传并保存您的更改,您现在不会有您的小部件(动态)插入的链接追加?___ store = default。

信用:DesignHaven

+0

它没有为我工作。 – fresher 2016-05-19 06:14:49

要删除此格式:___商店=英语为英语

步骤1:进入系统 - >配置。然后转到网页标签。您可以看到有一个选项' “将商店代码添加到Urls”将该选项设置为“是”

第2步:/app/design/frontend/base/default/template/page/switch/languages.phtml 觉得这下面的代码:

echo $_lang->getCurrentUrl() 
Add 'false' as parameter 
echo $_lang->getCurrentUrl(false) 

第3步:复制应用程序/代码/核心/法师/目录/座/空间/ Link.php到 应用程序/代码/本地/法师/目录/ Block/Widget/Link.php

Search this line : 
$this->_href = $this->_href . $symbol . "___store=" . $store->getCode(); 


And modify to : 
$this->_href = $this->_href; 

第4步:进入管理面板定位导航系统 - >索引管理>>重新索引数据