Storeswitcher(不是 storeview-switcher) - Multistore
-
12-12-2019 - |
题
在我当前的 Magento 项目中 Wein-Partner.at 我必须在一个网站上准备多个商店。
对于不同的商店来说,毫无疑问会有不同的语言,也意味着多种商店视图。然而,语言选择器在我身上消失了,我不知道去哪里。有趣的是,我有一个货币选择器。
有没有办法让我在顶部制作一个“商店选择器”,而不仅仅是一个商店视图选择器?
我是否必须为此启用“将商店代码添加到 URL”?
计划基本如下:
网站 (wein-partner.at) 将在主页上打开,显示主商店。在其下方,如果您单击某个类别,您将进入类别视图,其中包含可供选择的其他标签(区域、价格等)。如果你点击,假设一个地区只有一名酿酒师,你应该被带到酿酒师的子商店,显示他的标志而不是我们的(我目前无法更改商店,所以它总是显示供应商的商店视图)。
除了徽标之外,模板文件与类别视图相同(每个供应商也有自己的商店视图[主要可能是英语、德语、法语和意大利语])。
综上所述,这意味着将有 4 个级别(网站 - 主店 - 商店/商店组 - storeview/store)
编辑01: 到目前为止我发现了这个(app/design/frontend/default/your_theme/template/page/switch)
<?php if(count($this->getGroups())>1): ?>
<div class="store-switcher">
<label for="select-store"><?php echo $this->__('Select Store:') ?></label>
<select id="select-store" title="<?php echo $this->__('Select Store') ?>" onchange="location.href=this.value">
<?php /*foreach ($this->getStores() as $_store): ?>
<option value="<?php echo $_store->getUrl('') ?>"<?php if($_store->getId()==$this->getCurrentStoreId()): ?> selected="selected"<?php endif; ?>><?php echo $_store->getName() ?></option>
<?php endforeach;*/ ?>
<?php foreach ($this->getGroups() as $_group): ?>
<?php $_selected = ($_group->getId()==$this->getCurrentGroupId()) ? ' selected="selected"' : '' ?>
<option value="<?php echo $_group->getHomeUrl() ?>"<?php echo $_selected ?>><?php echo $this->escapeHtml($_group->getName()) ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endif; ?>
解决方案
存储切换器通过布局(XML)文件加载在默认主题中。
app / design / frontend / your_package / your_theme / layout / page.xml
查找以下文字行:
.<block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>
如果将该行XML复制到所需的位置,则可以添加呼叫以在模板(PHTML)文件中显示:
.<?php echo $this->getChildHtml('store_switcher') ?>
其他提示
定位 page.xml
在 app/design/frontend/base/default/layout
目录。
使用文本编辑器打开文件并查找下面的代码。
<block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>
要在页面标题上显示商店切换器,我们只需更改上述代码的位置即可。这段代码被插入到 page/html_footer
堵塞。剪切并粘贴到下面 page/html_header
堵塞。
<block type="page/html_header" name="header" as="header">
现在要显示商店切换器,请转到 header.phtml
在里面 app/design/frontend/base/default/template/page/html
目录并插入以下代码。
<?php echo $this->getChildHtml('store_switcher') ?>
确保在主题中,如果从基本模板/页面/交换机/文件夹中从新鲜的Magento从新的Magento获取,则可以使用Stores.phtml。
然后确保正确地提交代码!希望它应该正常工作!