Okay I've broken this down into steps and you can see where I am stuck:
Step 1 – change column number
The PayPal express review page (our page that PayPal sends the buyer back to in order to review and finally submit their order) is a one column page. Of course we can change the number of columns by overriding the layout in a custom module xml file:
<paypal_express_review>
<!-- maybe other references here -->
<reference name="root">
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
</reference>
<!-- maybe other references here -->
</paypal_express_review>
Step 2 – remove code restricting right-hand column content
Now the right hand column will be present but will be blank – this is because of the following line in app/design/frontend/base/default/layout/paypal.xml
– which we remove:
<remove name="right"/>
Step 3 – add content in xml file
Clearing the cache and refreshing the page will show the default right-hand column content. So if from there we add the following lines (borrowed from app/design/frontend/base/default/layout/checkout.xml
) into the custom module xml file we once again come up with a blank.
<reference name="right">
<action method="unsetChildren"></action>
<block type="page/html_wrapper" name="checkout.progress.wrapper" translate="label">
<label>Checkout Progress Wrapper</label>
<action method="setElementId"><value>checkout-progress-wrapper</value></action>
<block type="checkout/onepage_progress" name="checkout.progress" before="-" template="checkout/onepage/progress.phtml"/>
</block>
</reference>
I know that this is the right method to get the content in that column as I can do it with a custom template, e.g.
<reference name="right">
<action method="unsetChildren"></action>
<block type="page/html" name="custom" template="custom_module/custom.phtml" />
</reference>
Little unsure about the block type
there. Also I am aware that there is the following block in app/design/frontend/base/default/layout/checkout.xml
that isn't being used:
<block type="checkout/onepage_progress" name="root" output="toHtml" template="checkout/onepage/progress.phtml">
<block type="checkout/onepage_payment_info" name="payment_info">
<action method="setInfoTemplate"><method></method><template></template></action>
</block>
</block>
As you can see my knowledge on this is pretty restricted – due more to a lack of documentation than desire (this site was interesting though).
I must stress that this is by no means unachievable so if anyone has suggestions or alas the sought after solution or any insight at all your post is worthy and most welcome. Many thanks
Best Answer
Yes it is possible.
This is what you will need to achieve it.
In your
module.xml
remove all references<remove name="right" />
from thepaypal_express_review
handle and update the template the same as you have done in step 1 and 2.Next you can add the checkout.progress wrapper block into the
right
reference. This block can be found inapp/design/frontend/base/default/layout/checkout.xml
Once you get to the
paypal/express/review/
page you should see that there is a blank column? Why isn't you block showing up? If you inspect the page in the right column you should seeopactity: 0;
. Update your styles to beopacity:1;
and the block should be there.The only issue you may have is getting the change links to work as they are expecting the container to be there already. If not you could look at creating your own template for progress and removing the links. Hope this helps :D