首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Magento:前端的Adminhtml控制器?

Magento:前端的Adminhtml控制器?
EN

Stack Overflow用户
提问于 2015-02-05 04:09:24
回答 1查看 580关注 0票数 1

我正在尝试编写一个模块,允许用户在我们的系统中创建自己的商店(多存储功能)。

我想知道,是否有可能在Magento前端执行adminhtml控制器的功能?

此时,我只需创建文件夹和编辑index.php, .htaccess时,点击保存网站在Magento后端。我需要更多,请帮帮忙。

任何帮助都将不胜感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 08:48:04

我不认为这是个好主意--允许创建自己的商店的人应该有一个管理帐户(您知道可以用受限的权限定义角色吗?)

但要回答这个问题:这是可能的。您必须创建一个模拟登录管理用户的前端控制器,然后转发到adminhtml控制器操作。

示例(未经测试):

代码语言:javascript
代码运行次数:0
运行
复制
public function saveStoreAction()
{
    $adminUser = Mage::getModel('admin/user')->load(ADMIN_USER_ID);
    $adminSession = Mage::getSingleton('admin/session');
    $adminSession->setUser($adminUser);
    $adminSession->setIsFirstPageAfterLogin(false);

    $this->_forward('save', 'store', 'adminhtml');
}

ADMIN_USER_ID是要执行该操作的后端用户的id。这不应该是您自己的具有完全权限的管理帐户,而应该是一个只有必要权限的虚拟帐户,或者一个针对每个用户的真实帐户。

关于_forward():

该方法是在Mage_Core_Controller_Varien_Action中定义的,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
/**
 * Throw control to different action (control and module if was specified).
 *
 * @param string $action
 * @param string|null $controller
 * @param string|null $module
 * @param array|null $params
 */

它操作当前请求对象并将其设置为“未分派”,因此前端控制器将再次尝试寻找合适的动作控制器将其分派给它,这一次根据新的参数。

实际上,我的第一个版本有一个错误,_forward不采用像'adminhtml/store/save'这样的路径作为参数,而是采用相反顺序的独立部分,'save', 'store', 'adminhtml'

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

https://stackoverflow.com/questions/28336058

复制
相关文章

相似问题

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