Create simple Module In Back End In magento
thanks to :
http://www.webspeaks.in/2010/08/create-your-first-adminbackend-module.html
Step 1: Declare your shell module and it’s code pool
Create
an xml file /app/etc/modules/Company_Web.xml (You can use any name,
even you can use a single file to declare number of modules).
<?xml version="1.0"?>
<config>
<modules>
<Company_Web>
<active>true</active>
<codePool>local</codePool>
</Company_Web>
</modules>
</config>
Step 2:
Create the basic directory structure under /app/code/core/local/ :-
Company/
|–Web/
| |–Block/
| |–controllers/
| |–etc/
| |–Helper/
| |–sql/
|
Step 3:
Write the front controller in app\code\local\Company\Web\controllers\IndexController.php
<?php
class Company_Web_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
}
Step 4:
Write your backend module controller in app\code\local\Company\Web\controllers\Adminhtml\WebController.php
<?php
class Company_Web_Adminhtml_WebController extends Mage_Adminhtml_Controller_action
{
protected function _initAction() {
$this->loadLayout()
->_setActiveMenu('web/items')
->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
return $this;
}
public function indexAction() {
$this->_initAction()
->renderLayout();
}
}
Step 5:
Write the frontend block file in app\code\local\Company\Web\Block\Web.php
<?php
class Company_Web_Block_Web extends Mage_Core_Block_Template
{
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getWeb()
{
if (!$this->hasData('web')) {
$this->setData('web', Mage::registry('web'));
}
return $this->getData('web');
}
}
Step 6: Now write the following file- app\code\local\Company\Web\Block\Adminhtml\Web.php
<?php
class Company_Web_Block_Adminhtml_Web extends Mage_Adminhtml_Block_Widget_Grid_Container
{
public function __construct()
{
$this->_controller = 'adminhtml_web';
$this->_blockGroup = 'web';
$this->_headerText = Mage::helper('web')->__('Item Manager');
$this->_addButtonLabel = Mage::helper('web')->__('Add Item');
parent::__construct();
}
}
Step 7:
Create the config file as app\code\local\Company\Web\etc\config.xml
<?xml version="1.0"?>
<config>
<modules>
<Company_Web>
<version>0.1.0</version>
</Company_Web>
</modules>
<frontend>
<routers>
<web>
<use>standard</use>
<args>
<module>Company_Web</module>
<frontName>web</frontName>
</args>
</web>
</routers>
<layout>
<updates>
<web>
<file>web.xml</file>
</web>
</updates>
</layout>
</frontend>
<admin>
<routers>
<web>
<use>admin</use>
<args>
<module>Company_Web</module>
<frontName>web</frontName>
</args>
</web>
</routers>
</admin>
<adminhtml>
<menu>
<web module="web">
<title>Web</title>
<sort_order>71</sort_order>
<children>
<items module="web">
<title>Manage Items</title>
<sort_order>0</sort_order>
<action>web/adminhtml_web</action>
</items>
</children>
</web>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<Company_Web>
<title>Web Module</title>
<sort_order>10</sort_order>
</Company_Web>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<web>
<file>web.xml</file>
</web>
</updates>
</layout>
</adminhtml>
<global>
<models>
<web>
<class>Company_Web_Model</class>
<resourceModel>web_mysql4</resourceModel>
</web>
<web_mysql4>
<class>Company_Web_Model_Mysql4</class>
<entities>
<web>
<table>web</table>
</web>
</entities>
</web_mysql4>
</models>
<resources>
<web_setup>
<setup>
<module>Company_Web</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</web_setup>
<web_write>
<connection>
<use>core_write</use>
</connection>
</web_write>
<web_read>
<connection>
<use>core_read</use>
</connection>
</web_read>
</resources>
<blocks>
<web>
<class>Company_Web_Block</class>
</web>
</blocks>
<helpers>
<web>
<class>Company_Web_Helper</class>
</web>
</helpers>
</global>
</config>
Step 8: Now write the helper class app\code\local\Company\Web\Helper\Data.php
<?php
class Company_Web_Helper_Data extends Mage_Core_Helper_Abstract
{
}
Step 9: Create the model class for your module app\code\local\Company\Web\Model\Web.php
<?php
class Company_Web_Model_Web extends Mage_Core_Model_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('web/web');
}
}
Step 10: Now create app\code\local\Company\Web\Model\Mysql4\Web.php
<?php
class Company_Web_Model_Mysql4_Web extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
// Note that the web_id refers to the key field in your database table.
$this->_init('web/web', 'web_id');
}
}
Step 11: Now create the collection class app\code\local\Company\Web\Model\Mysql4\Web\Collection.php
<?php
class Company_Web_Model_Mysql4_Web_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('web/web');
}
}
Step 12: Now add the mysql setup file as app\code\local\Company\Web\sql\web_setup\mysql4-install-0.1.0.php
<?php
$installer = $this;
$installer->startSetup();
$installer->run("
-- DROP TABLE IF EXISTS {$this->getTable('web')};
CREATE TABLE {$this->getTable('web')} (
`web_id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`filename` varchar(255) NOT NULL default '',
`content` text NOT NULL default '',
`status` smallint(6) NOT NULL default '0',
`created_time` datetime NULL,
`update_time` datetime NULL,
PRIMARY KEY (`web_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
");
$installer->endSetup();
Step 13: Add the layout.xml as app\design\frontend\default\default\layout\web.xml
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
</default>
<web_index_index>
<reference name="content">
<block type="web/web" name="web" template="web/web.phtml" />
</reference>
</web_index_index>
</layout>
Step 14: Finally create the template file of your module app\design\frontend\default\default\template\web\web.phtml
<?php echo "Welcome to your custom module...."; ?>
One of the major advantages of Magento web design is that it offers an uncomplicated user interface that helps you to manage the site conveniently.
ReplyDeleteWebsite Designing Company | Web Designing Company India
Thanks for sharing the informative blog regarding the theme and design.
ReplyDeleteSEO Company in Bangalore |SEO Agency in Bangalore | Best SEO Company in Bangalore |Web Development Company in Bangalore |Digital Marketing Company in Bangalore |Web Development Company in Bangalore |Ecommerce Website Development Company in Bangalore |Ecommerce Website Development Company in Bangalore|Mobile App Development Company in Bangalore
This comment has been removed by the author.
ReplyDelete