However, sometimes you wont wish your extensions depend on the additional module for certain functionality. Stuff like “overriding” the admin view files can easily be achieved with just a few minor modifications of extended class.
Content of my app\code\community\MyCompany\MyModule\Block\Adminhtml\Catalog\Product\Helper\Form\Gallery\Content.php file.
class MyCompany_MyModule_Block_Adminhtml_Catalog_Product_Helper_Form_Gallery_Content extends Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
{
/**
* This method has been overridden merely for the purpose of setting up a new view file
* to be used in place of the default theme folder.
*
* @see app/code/core/Mage/Core/Block/Mage_Core_Block_Template#fetchView($fileName)
*/
public function fetchView($fileName)
{
extract ($this->_viewVars);
$do = $this->getDirectOutput();
if (!$do) { ob_start(); }
include getcwd().'/app/code/community/MyCompany/MyModule/blocks/Adminhtml/catalog/product/helper/gallery.phtml';
if (!$do) {$html = ob_get_clean(); }
else { $html = ''; }
return $html;
}
}
Which goes inline with the config.xml file entry like:
...
...
In the example below, I am pointing the block to look for my view file within my module folder, and not within some Magento design folder. Basically my gallery.phtml is the same as the original Magento adminhtml view file for the same purpose, but now I can go in and implement my additional stuff in it.
Approach like this can have its advantage in terms of keeping all the required overridden design files in your own module directory.
For those who need it… cheers.




No comments:
Post a Comment
Note: Only a member of this blog may post a comment.