22
How to Create A Controller in Magento Extension Bippo Commerce Creating your own pages in Magento.

How to create a magento controller in magento extension

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: How to create a magento controller in magento extension

How to Create A Controller in Magento Extension

Bippo Commerce

Creating your own pages in Magento.

Page 2: How to create a magento controller in magento extension

URL Structure

http://demo.bippo.co.id/module/controller/action

Page 3: How to create a magento controller in magento extension

Create Module's etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>

<modules>

<Bippo_MyBanner>

<version>1.0.0</version>

</Bippo_MyBanner>

</modules>

</config>

Page 4: How to create a magento controller in magento extension

Activate in etc/modules/{company}_{module}.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>

<modules>

<Bippo_MyBanner>

<active>true</active>

<codePool>community</codePool>

</Bippo_MyBanner>

</modules>

</config>

Page 5: How to create a magento controller in magento extension

Controller Class PHP Code

class Bippo_MyBanner_DisplayController extends Mage_Core_Controller_Front_Action

{

public function showAction(){

}

}

Bippo/MyBanner/controllers/DisplayController.php

Page 6: How to create a magento controller in magento extension

Router Config

...<frontend> <routers> <mybanner> <use>standard</use> <args> <module>Bippo_MyBanner</module> <frontName>display</frontName> </args> </mybanner> </routers> </frontend>...

Bippo/MyBanner/etc/config.xml

Page 7: How to create a magento controller in magento extension

"Raw" Action

Page 8: How to create a magento controller in magento extension

Test

public function helloAction(){

    echo "Hello World";

}

Page 9: How to create a magento controller in magento extension

Test it

http://localhost/magento/mybanner/display/hello

Page 10: How to create a magento controller in magento extension

Layout-based Action

Page 11: How to create a magento controller in magento extension

Layout Config

<frontend> <layout> <updates> <mybanner> <file>mybanner.xml</file> </mybanner> </updates> </layout> </frontend>

Bippo/MyBanner/etc/config.xml

Page 12: How to create a magento controller in magento extension

Layout XML

<?xml version="1.0" encoding="UTF-8"?><layout version="0.1.0"> <arithmetic_integer_multiply> <reference name="root"> <action method="setTemplate"> <template>page/1column.phtml</template> </action> </reference> <reference name="content"> <block type="core/template" name="arithmetic_integer_multiply" template="arithmetic/integer/multiply.phtml"></block> </reference> </arithmetic_integer_multiply></layout>

bippomybanner.xml

Page 13: How to create a magento controller in magento extension

Load Layout in Action

public function smallAction(){

$this->loadLayout();

$this->renderLayout();

}

Page 14: How to create a magento controller in magento extension

Test

/mybanner/display/small

Page 15: How to create a magento controller in magento extension

Get URL from PHP

<?php echo Mage::getUrl('mybanner/display/small') ?>

Page 16: How to create a magento controller in magento extension

Process Input<form action="<?php echo Mage::getUrl('arithmetic/integer/multiply') ?>"

method="post"> <fieldset> <ul> <li> <label for="int1">Integer 1</label> <input type="text" id="int1" name="int1" /> </li> <li> <label for="int2">Integer 2</label> <input type="text" id="int2" name="int2" /> </li> <li><input type="submit" value="Multiply" /></li> </ul> </fieldset></form>

Page 17: How to create a magento controller in magento extension

Is Form POST ?

$this­>getRequest()­>isPost()

Page 18: How to create a magento controller in magento extension

Process POST Parameters

public function multiplyAction(){ if ($this->getRequest()->isPost()){ $int1 = $this->getRequest()->getPost('int1'); $int2 = $this->getRequest()->getPost('int2'); $result = $int1 * $int2; Mage::getSingleton('customer/session') ->addSuccess("$int1 * $int2 = $result"); } $this->loadLayout(); $this->_initLayoutMessages('customer/session'); $this->renderLayout();}

Page 19: How to create a magento controller in magento extension

Support Messages Block

$this­>_initLayoutMessages('customer/session');

Other choices: adminhtml/session catalog/session checkout/session

Page 20: How to create a magento controller in magento extension

Add Message

    Mage::getSingleton('customer/session')­>addSuccess("$int1 * $int2 = $result");

Page 21: How to create a magento controller in magento extension

Display Message in PHTML Template

echo $this­>getMessagesBlock()­>getGroupedHtml();

Page 22: How to create a magento controller in magento extension

References

http://blog.baobaz.com/en/blog/magento­module­create­your­own­controller