首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento: Storeview Access

Magento: Storeview Access
EN

Stack Overflow用户
提问于 2011-08-09 09:20:20
回答 2查看 1.7K关注 0票数 2

现在的情况:

我有一个直播系统,它运行得很好。我没有测试系统。

我们的直播系统是一个多家商店,在一个网站上有几个商店的浏览量。

问题:

我需要再添加一个商店视图,并在这个livesystem中处理这个问题。如何限制对此商店视图的访问,使任何客户,无论是否登录,都无法看到此商店?这有可能吗?

我只需要一个管理员(我)来访问这个商店视图。

当然,我可以在其他的实体店禁用所有的储物柜,但我不认为这是解决我的问题的好办法。:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-09 14:56:31

如果不希望在语言下拉选择字段中显示当前编辑的存储(视图),请执行以下操作:

customer-group

  • Go

  • 向您的商店添加了一个名为"admins“的新客户组,并记住列表中显示的id。如果尚未完成,则添加一个新的管理员客户,并将其分配给刚创建的系统->存储视图,然后单击StoreView Name -列中的链接(您不希望在前面显示)和click,您将在url /index.php/admin/system_store/editStore/store_id/3/key/,中看到StoreView id。记住,现在编辑文件: app/design/frontend/default/your_shop/template/page/switch/languages.phtml

发自:

代码语言:javascript
复制
<?php if(count($this->getStores())>1): ?>
<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() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option>
    <?php endforeach; ?>
    </select>
</div>
<?php endif; ?>

至:

代码语言:javascript
复制
<?php 
// StoreView-Ids we dont want to show on frontend
$stores = array(3);
// Set admin group id with access to the above storeviews
$frontendAdminGroupId = 5; 
// Get current user group id
$currentGroupId = $this->helper('customer')->getCurrentCustomer()->group_id;
?>
<?php if(count($this->getStores())>1): ?>
<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 foreach ($stores as $_adminStore) : ?>            
            <?php /* Admin Store! */?>
            <?php if($_adminStore == $_lang->getId() ) : ?>
                <?php if($currentGroupId == $frontendAdminGroupId) : ?> 
                    <?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?>
                    <option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option>
                <?php endif; ?>
            <?php else: ?>
            <?php /* Normal User! */?>
                 <?php $_selected = ($_lang->getId() == $this->getCurrentStoreId()) ? ' selected="selected"' : '' ?>
                <option value="<?php echo $_lang->getCurrentUrl() ?>"<?php echo $_selected ?>><?php echo $this->htmlEscape($_lang->getName()) ?></option>
            <?php endif; ?>
        <?php endforeach; ?>    
    <?php endforeach; ?>
    </select>
</div>
<?php endif; ?>

您还必须编辑签出和magento的任何其他部分,其中显示了存储视图的select字段,这只是一半的解决方案。祝你好运:-)

票数 2
EN

Stack Overflow用户

发布于 2011-08-09 14:36:07

如果您使用,您将得到一个临时站点,您可以在那里进行这些更改,然后再将它们推向生产。

或者,您可以像上面所说的@Anton那样创建一个开发站点。您可以使用Magento的导出功能将更改移到。不是一个完整的数据库转储/导入。这样你就不会失去任何客户和订单信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6993936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档