Magento is an open source ecommerce solution. Magento module development have a certain standard procedures. Let us look in to the new custom module creation.
Create one folder local inside app/code/. This local folder is used for our custom module creation. This folder will not affect any upgrade of magento in future if any.
/app/code |- /core/ |- /community/ |- /local/
Inside this local folder create another folder called as Name Space(Test), inside that folder create another folder, it is usually called as modulename(Mymodule).
App/code/local/Test/Mymodule.
app/code/local/Test/Mymodule/
here Test is our Name Space and Mymodule is our modulename.
How to activate the module?
Create a file Test_Mymodule.xml in app/etc/modules/, this will tell Magento to look for and use our custom module.
true local
create config.xml file in app/code/local/Test/Mymodule/etc
0.1.0 standard Test_Mymodule mymodule mymodule.xml Then create a controller file called as IndexController.php in app/code/local/Test/Mymodule/controllers
inside that file write our indexaction
public function indexAction() { $this->loadLayout(); $this->renderLayout(); }
this will load the layout and render the view file
Create login Action function
public function loginAction() { $session = Mage::getSingleton('customer/session'); if ($session->isLoggedIn()) { // is already login redirect to account page return; } $result = array('success' => false); if ($this->getRequest()->isPost()) { $login_data = $this->getRequest()->getPost('login'); if (empty($login_data['username']) || empty($login_data['password'])) { $result['error'] = Mage::helper('onepagecheckout')->__('Login and password are required.'); } else { try { $session->login($login_data['username'], $login_data['password']); $result['success'] = true; $result['redirect'] = Mage::getUrl('*/*/index'); } catch (Mage_Core_Exception $e) { switch ($e->getCode()) { case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED: $message = Mage::helper('onepagecheckout')->__('Email is not confirmed. Resend confirmation email.', Mage::helper('customer')->getEmailConfirmationUrl($login_data['username'])); break; default: $message = $e->getMessage(); } $result['error'] = $message; $session->setUsername($login_data['username']); } } } $this->_redirect('customer/account/'); //$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result)); }
Now let’s create mymodule.xml file in app/design/frontend/default/default/layout/
Create a template file callled as view.phtml in app/design/frontend/default/default/template/mymodule
this is our login form
create a Block file called as Mymodule.php in app/code/local/Test/Mymodule/Block/ the block folder might not be there, we have to create the same.
type this url in your browser and check the custom login module http://example.com/mymodule where example.com will be your domain name.