Override/Rewrite Magento core blocks and controllers
After spending many hours in rewriting block and controller of Magento core module, I finally came up with a solution.
Here I am going to rewrite block: Mage/Adminhtml/Block/Sales/Shipment/Grid.php
and controller: Mage/Adminhtml/controllers/Sales/ShipmentController.php
First you will need to make a xml file for your new module at app/etc/modules directory
CompanyName_Adminhtml.xml
<?xml version="1.0"?> | |
<config> | |
<modules> | |
<CompanyName_Adminhtml> | |
<active>true</active> | |
<codePool>local</codePool> | |
</CompanyName_Adminhtml> | |
</modules> | |
</config> |
Then, make folders in your app/code/local directory as follows:
– CompanyName
-> Block
—> Sales
—-> Shipment
——> Grid.php
-> controllers
—> Sales
—-> ShipmentController.php
-> etc
—> config.xml
In etc/config.xml, your code should look like below:
<?xml version="1.0"?> | |
<config> | |
<modules> | |
<CompanyName_Adminhtml> | |
<version>0.1.0</version> | |
</CompanyName_Adminhtml> | |
</modules> | |
<global> | |
<blocks> | |
<adminhtml> | |
<rewrite> | |
<sales_shipment_grid>CompanyName_Adminhtml_Block_Sales_Shipment_Grid</sales_shipment_grid> | |
</rewrite> | |
</adminhtml> | |
</blocks> | |
<routers> | |
<adminhtml> | |
<rewrite> | |
<sales_shipment> | |
<from><![CDATA[#^/admin/sales_shipment/$#]]></from> | |
<to>/admin/sales_shipment/</to> | |
</sales_shipment> | |
</rewrite> | |
</adminhtml> | |
</routers> | |
</global> | |
<admin> | |
<routers> | |
<adminhtml> | |
<args> | |
<modules> | |
<CompanyName_Adminhtml before="Mage_Adminhtml">CompanyName_Adminhtml</CompanyName_Adminhtml> | |
</modules> | |
</args> | |
</adminhtml> | |
</routers> | |
</admin> | |
</config> |
In ShipmentController.php, you should start like this:
require_once("Mage/Adminhtml/controllers/Sales/ShipmentController.php"); | |
class CompanyName_Adminhtml_Sales_ShipmentController extends Mage_Adminhtml_Sales_ShipmentController | |
{ | |
//controller methods goes here.. | |
} |
require_once is necessary as magento is not going to load controllers as it does for blocks and models
In block Grid.php, start the file like below:
class CompanyName_Adminhtml_Block_Sales_Shipment_Grid extends Mage_Adminhtml_Block_Widget_Grid | |
{ | |
// block methods goes here.. | |
} |
That’s it! Now you should get your local Grid.php and ShipmentController.php loading instead of core’s.
eBay to buy Magento
On June 6th, 2011 I got email from magentocommerce that eBay agreed to acquire our darling magento. Whether it is a good news or bad news for the Magento developers? Without any proper documentation or helpful sources, we have fought enough to get our Magento development run flawless. It may be obvious that after eBay acquires Magento, there may be many changes in Magento world, like proper documentation with code examples, good community support (where we can expect working answers to our posted questions) for enterprise edition, leader in the eCommerce market, education of Magento and its training globally, any many more.
Magento will be called as X.Commerce after eBay acquires it. eBay is already attached with Magento since 2010, when it became the magento’s outside investor. eBay saw a great scope of Magento and that is the reason it does not resist itself in acquiring this eCommerce web application giant.
Magento: Get all the values of a Magento EAV for a particular attribute code
If you have ever wondered how to get all the values of any EAV attribute for products in Magento, then this is the workaround for you:
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'color'); //here, "color" is the attribute_code | |
$allOptions = $attribute->getSource()->getAllOptions(true, true); | |
foreach ($allOptions as $instance) { | |
$myArray[$instance['value']] = $instance['label']; | |
} | |
Mage::log($myArray); |
You will get list of all colors in an array called “myArray” in value => label format.
Magento 1.5: Cannot login to admin panel after fresh install
After installing magento 1.5, I tried to login to the admin panel with correct username and password, but it does not let me in without any error message. This is due to cookie problem in magento and can be fixed as below:
Open this file in your favorite editor: app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
Comment lines that says like (probably line number 81 to 83)
$this->getCookie()->getDomain(), | |
$this->getCookie()->isSecure(), | |
$this->getCookie()->getHttponly() |
to
//$this->getCookie()->getDomain(), | |
//$this->getCookie()->isSecure(), | |
//$this->getCookie()->getHttponly() |
Now you could login to your admin panel without any problem.
Welcome to my Blog
Certifications
Honor
Recognition
Contributions
Categories
- Apache (2)
- ChatGPT (1)
- Domain name (2)
- eCommerce (2)
- htaccess (1)
- Humor (3)
- Instagram API (1)
- jQuery (4)
- JSON (1)
- Linux (10)
- Magento (142)
- Magento admin (58)
- Magento Certification (5)
- Magento error (13)
- Magento frontend (68)
- Magento Imagine (2)
- Magento Interview (5)
- Magento Master (2)
- Magento2 (10)
- Mobile (1)
- MySQL (7)
- OpenAI (1)
- OroCRM (2)
- Performance (2)
- PHP (8)
- Prototype JS (3)
- Security (4)
- Wordpress (3)
- XML (2)