I am new in Magento. I am trying to develop a custom module for Magento Admin panel. My codes are as follows
Location : app/etc/modules
Digitab_Brandlogo.xml
<?xml version="1.0" encoding="utf-8"?>
<config>
<modules>
<Digitab_Brandlogo>
<active>true</active>
<codePool>local</codePool>
</Digitab_Brandlogo>
</modules>
</config>
Location : app/code/local/Digitab/Brandlogo/Block/Adminhtml
Brandlogo.php
<?php
class Digitab_Brandlogo_Block_Adminhtml_Brandlogo extends Mage_Adminhtml_Block_Widget_Grid_Container
{
public function __construct()
{
$this->_controller = 'adminhtml_brandlogo';
$this->_blockGroup = 'brandlogo';
$this->_headerText = Mage::helper('brandlogo')->__('Brand Logo Manager');
$this->_addButtonLabel = Mage::helper('brandlogo')->__('Add Brand');
parent::__construct();
}
}
Location: app/code/local/Digitab/Brandlogo/controllers/Adminhtml
BrandlogoController
<?php
class Digitab_Brandlogo_Adminhtml_BrandlogoController extends Mage_Adminhtml_Controller_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
}
location: app/code/local/Digitab/Brandlogo/etc
config.xml
<?xml version="1.0"?>
<config>
<modules>
<digitab_brandlogo>
<version>1.0.0</version>
</digitab_brandlogo>
</modules>
<global>
<models />
<blocks>
<brandlogo>
<class>Digitab_Brandlogo_Block</class>
</brandlogo>
</blocks>
<resources />
<extraconfig />
<helpers>
<digitab_brandlogo>
<class>Digitab_Brandlogo_Helper</class>
</digitab_brandlogo>
</helpers>
</global>
<admin>
<routers>
<digitab_brandlogo>
<use>admin</use>
<args>
<module>Digitab_brandlogo</module>
<frontName>brandlogo</frontName>
</args>
</digitab_brandlogo>
</routers>
</admin>
<adminhtml>
<layout>
<updates>
<brandlogo>
<file>brandlogo.xml</file>
</brandlogo>
</updates>
</layout>
</adminhtml>
</config>
location: app/code/local/Digitab/Brandlogo/etc
adminhtml.xml
<?xml version="1.0"?>
<config>
<menu>
<digitab translate="title" module="digitab_brandlogo">
<title>Digitab</title>
<sort_order>110</sort_order>
<children>
<brandlogo>
<title>Brand Logo</title>
<sort_order>1</sort_order>
<action>brandlogo/adminhtml_brandlogo</action>
</brandlogo>
</children>
</digitab>
</menu>
</config>
location: app/code/local/Digitab/Brandlogo/Helper
Data.php
<?php
class Digitab_Brandlogo_Helper_Data extends Mage_Core_Helper_Abstract
{
}
location: app/design/adminhtml/default/default/layout
brandlogo.xml
<?xml version="1.0"?>
<layout version="0.1.0">
<brandlogo_adminhtml_brandlogo_index>
<reference name="content">
<block type="brandlogo/adminhtml_brandlogo" name="brandlogo" template="test.phtml"/>
</reference>
</brandlogo_adminhtml_brandlogo_index>
</layout>
location:app/design/adminhtml/default/default/template
test.phtml
ABCD
But it is not working. I can see only a blank white page in admin panel while I navigate to 'brandlogo' Menu . Can anyone help me in this regard?? Thanks
Hello @foysal,
In the file: app\code\local\Digitab\Brandlogo\etc\adminhtml.xml you should change the code following:
<?xml version="1.0"?>
<config>
<menu>
<digitab translate="title" module="brandlogo">
<title>Digitab</title>
<sort_order>110</sort_order>
<children>
<brandlogo>
<title>Brand Logo</title>
<sort_order>1</sort_order>
<action>brandlogo/adminhtml_brandlogo</action>
</brandlogo>
</children>
</digitab>
</menu>
</config>Also, to enable developer mode in Magento, you can add the code below into index.php file:
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);Hope you success!
@ACheckout thanks for your reply. But it is not working. Thanks
@foysal try change config.xml following:
<config>
<modules>
<Digitab_Brandlogo>
<version>0.1.0</version>
</Digitab_Brandlogo>
</modules>
<frontend>
<routers>
<brandlogo>
<use>standard</use>
<args>
<module>Digitab_Brandlogo</module>
<frontName>brandlogo</frontName>
</args>
</brandlogo>
</routers>
<layout>
<updates>
<brandlogo>
<file>brandlogo.xml</file>
</brandlogo>
</updates>
</layout>
<translate>
<modules>
<Digitab_Brandlogo>
<files>
<default>Digitab_Brandlogo.csv</default>
</files>
</Digitab_Brandlogo>
</modules>
</translate>
</frontend>
<admin>
<routers>
<brandlogoadmin>
<use>admin</use>
<args>
<module>Digitab_Brandlogo</module>
<frontName>brandlogoadmin</frontName>
</args>
</brandlogoadmin>
</routers>
</admin>
<adminhtml>
<layout>
<updates>
<brandlogo>
<file>brandlogo.xml</file>
</brandlogo>
</updates>
</layout>
<translate>
<modules>
<Digitab_Brandlogo>
<files>
<default>Digitab_Brandlogo.csv</default>
</files>
</Digitab_Brandlogo>
</modules>
</translate>
</adminhtml>
<global>
<models>
<brandlogo>
<class>Digitab_Brandlogo_Model</class>
<resourceModel>brandlogo_mysql4</resourceModel>
</brandlogo>
<brandlogo_mysql4>
<class>Digitab_Brandlogo_Model_Mysql4</class>
<entities>
<brandlogo>
<table>brandlogo</table>
</brandlogo>
</entities>
</brandlogo_mysql4>
</models>
<resources>
<brandlogo_setup>
<setup>
<module>Digitab_Brandlogo</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</brandlogo_setup>
<brandlogo_write>
<connection>
<use>core_write</use>
</connection>
</brandlogo_write>
<brandlogo_read>
<connection>
<use>core_read</use>
</connection>
</brandlogo_read>
</resources>
<blocks>
<brandlogo>
<class>Digitab_Brandlogo_Block</class>
</brandlogo>
</blocks>
<helpers>
<brandlogo>
<class>Digitab_Brandlogo_Helper</class>
</brandlogo>
</helpers>
</global>
</config>
Hello foysal,
You made some mistakes:
+Your Helper wrong
For example in: app/code/local/Digitab/Brandlogo/Block/Adminhtml/Brandlogo.php
Mage::helper('brandlogo') => should be Mage::helper('digitab_brandlogo') because in your config.xml , you declared:
<helpers>
<digitab_brandlogo>
<class>Digitab_Brandlogo_Helper</class>
</digitab_brandlogo>
</helpers>+SUPEE 6788 => router + admin menu
You update the security path SUPEE 6788? You must update this path for your site. Read more here:
https://magento.com/security/patches/supee-6788-technical-details
=> admin router should be change to:
<admin>
<routers>
<adminhtml>
<args>
<modules>
<digitab_brandlogo after="Mage_Adminhtml">Digitab_Brandlogo_Adminhtml</digitab_brandlogo>
</modules>
</args>
</adminhtml>
</routers>
</admin>
The link in Admin menu should be:
<children>
<brandlogo>
<title>Brand Logo</title>
<sort_order>1</sort_order>
<action>adminhtml/brandlogo</action>
</brandlogo>
</children>
+ Your layout and Block
You want to create a grid container? This will be more complicated than only show a text message. You must create Magento Grid: Grid Container, Grid Block, Widget Form Container, Form Block. I had done a series about this. You can read more:
http://www.boolfly.com/magento-brand-extension-part-1/
http://www.boolfly.com/magento-brand-extension-part-2/
http://www.boolfly.com/magento-brand-extension-part-3/
For showing a simple text message, your block should extends from Mage_Adminhtml_Block_Template
#app/code/local/Digitab/Brandlogo/Block/Adminhtml/Brandlogo.php
class Digitab_Brandlogo_Block_Adminhtml_Brandlogo extends Mage_Adminhtml_Block_Template
{
public function _construct()
{
parent::_construct();
//Set template or create block here
//$this->setTemplate('test.phtml');
}
}
In your xml layout: app/design/adminhtml/default/default/layout/brandlogo.xml
<brandlogo_adminhtml_brandlogo_index> => <adminhtml_brandlogo_index>
Note: I tested your code lines on Magento 1.9.2.2 with SUPEE 6788. You can download code from my Dropbox: https://www.dropbox.com/sh/5ygsx4hhhcxh78k/AADAZ-WMRUZ9m-lrosy4Z7jpa?dl=0