Magento模块有两个首页

时间:2014-07-18 14:06:37

标签: magento

我创建了一个Magento模块。它工作得很好。但我的问题是我想创建一个包含多个首页的模块,如:

Page 1:
www.magento.com/part/

Page 2:
www.magento.com/part/view/

在我的部分页面中有一个表单,当我提交此表单时,它会重定向到查看页面,我想显示部分页面中的任何数据。

以下是我的目录结构:

app\code\local\HK\Part\Block
app\code\local\HK\Part\controllers
app\code\local\HK\Part\etc
app\code\local\HK\Part\Helper
app\code\local\HK\Part\Model
app\code\local\HK\Part\sql

app\design\frontend\default\default\layout
app\design\frontend\default\default\template

app\etc\modules

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:0)

假设您已正确设置路由器,则只需在控制器中添加其他操作即可。在您的情况下,viewAction

中应为PartController.php

答案 1 :(得分:0)

基本的Magento URL结构可以按如下方式细分:

<base url>/<module front-name>/<controller>/<action>/<any other params, optional>

所以,从提供的URL结构

base url = http://www.magento.com/
module front name = part
controller = view
action = index (as its the default value, when no action name is provided)

模块前端名称在模块的config.xml文件中定义,如下所示:

<frontend>
    <routers>
        <namespace_custom_module_name>
            <use>standard</use>
            <args>
                <module>Namespace_Custommodule</module>
                <frontName>custom_frontname</frontName>
            </args>
        </namespace_custom_module_name>
    </routers>
</frontend>

custom_frontname标记内的frontName替换为part,这样可以正确设置路由器。

根据第一个示例http://www.magento.com/part/,您必须创建一个带有函数indexAction()的IndexController.php。

对于第二个示例http://www.magento.com/part/view/,您必须创建一个名为PartController.php的控制器,方法名称为indexAction()

您在控制器内创建的每个操作都代表一个页面,因此请明智地使用它。作为最佳实践,使用类似数据的操作始终分组在单个控制器中。

例如,在CRUD应用程序中,列出,添加,编辑,删除,保存所有操作等各种操作通常会添加到单个控制器中。