cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple modules in one page

Multiple modules in one page

Hi,

 

I want to have a page where different divs will have the content of different modules.

Currently modules are navigated to by a left menu, which will be removed.

 

These are the menu items:

/customer/account/

/customer/account/edit/

/sales/order/history/

/discounts/

/customerdashboard/index/paymentdetails/

/customerdashboard/index/changepassword/

/customerdashboard/deliverydetails/edit/

 

Now I want just a single page with this kind of presentation:

 

The intended layout:

+------------------+
| ------ | ------- |
| module | module  |
|    1   |    2    |
| -----  | ------- |
| module | module  |
|    3   |    4    |
| ------ | ------- |
+------------------+

 

How can I achieve this?

2 REPLIES

Re: Multiple modules in one page

Hello,

 

Have you tried designing a CMS page and then in the layout adding these modules.

Re: Multiple modules in one page

Hello Prateek,

 

Not exactly.

I did create a new .phtml file which will hold all other already created .phtml files.

 

Some come from the customer folder, some come from the sales folder.

Just to be clear, I created my-new-page.phtml which incorporates customer/dashboard/dashboard.phtml and sales/order/history.phtml.

 

I've come to realize that I need to add these pages on my local.xml file. I'll give an example:

 

    <customer_account_index>
        <reference name="customer_account_dashboard">
            <action method="unsetChild"><name>top</name></action>
        </reference>
        <reference name="my.account.wrapper">
            <reference name="customer_account_dashboard">
                <block type="core/template" name="customer.calendar" as="customer.calendar" template="customer/account/dashboard/customer.calendar.phtml"/>
                <block type="core/template" name="customer.calendar.inactive" as="customer.calendar.inactive" template="customer/account/dashboard/customer.calendar.inactive.phtml"/>
                <block type="core/template" name="customer.calendar.switch.link" as="customer.calendar.switch.link" template="customer/account/dashboard/customer.calendar.switch.link.phtml"/>
                <block type="core/template" name="customer.calendar.inactive.link" as="customer.calendar.inactive.link" template="customer/account/dashboard/customer.calendar.inactive.link.phtml"/>
            </reference>
        </reference>
        <reference name="my.account.wrapper">
            <block type="sales/order_history" name="sales.order.history">
                <block type="core/text_list" name="sales.order.history.info" as="info" translate="label">
                    <label>Order History Info</label>
                </block>
            </block>
            <block type="customer/account_dashboard" name="customer.account.link.back" template="customer/account/link/back.phtml"/>
        </reference>
        <reference name="my.account.wrapper">
            <block type="core/template" name="customer_your_discounts" template="customer/account/dashboard/discounts.phtml">
                <block type="enterprise_reward/customer_reward_info" name="customer.reward.info.godt" template="reward/customer/reward/info.phtml"/>
                <block type="enterprise_reward/customer_reward_history" name="customer.reward.history.godt" template="reward/customer/reward/history.phtml"/>
                <block type="discounts/discounts" name="customer.price.rules" template="reward/pricerules.phtml"/>
                <block type="discounts/discounts" name="customer.checkout.cart.coupon" template="customer/account/dashboard/coupon.phtml"/>
            </block>
        </reference>
    </customer_account_index>

I then have a sales.xml (on frontend/base/default/) which has, for example this:

    <sales_order_history translate="label">
        <label>Customer My Account Order History</label>
        <update handle="customer_account"/>
        <reference name="my.account.wrapper">
            <block type="sales/order_history" name="sales.order.history">
                <block type="core/text_list" name="sales.order.history.info" as="info" translate="label">
                    <label>Order History Info</label>
                </block>
            </block>
            <block type="customer/account_dashboard" name="customer.account.link.back" template="customer/account/link/back.phtml"/>
        </reference>
    </sales_order_history>

I tried previously to copy this sales.xml code to my local.xml but that didn't work so I ended up copying (from sales.xml) the part which I pasted in my local.xml example, namely this specific part:

<reference name="my.account.wrapper">
            <block type="sales/order_history" name="sales.order.history">
                <block type="core/text_list" name="sales.order.history.info" as="info" translate="label">
                    <label>Order History Info</label>
                </block>
            </block>
            <block type="customer/account_dashboard" name="customer.account.link.back" template="customer/account/link/back.phtml"/>
        </reference>

This works, however I'm not sure I should be doing this in this way.

 

Why doesn't my initial approach work but the new one does? Is it because I'm setting my custumer/account to incorporate in the wrapper the orders history instead of having a complete new page?

 

I do understand that what I'm doing here is setting my 'content' to have all these modules but maybe your approach makes more sense.

Could you elaborate a little on the differences?

 

Best Regards,