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.


