Magento Plugin Guidelines
How to install the ISAAC Magento plugin
Each ISAAC Magento plugin is distributed as a .zip file. You can install the plugin by unzipping the package in the Magento root.
cd /path/to/magento unzip /path/to/isaac_module.zip
How to remove the ISAAC Magento plugin
An ISAAC Magento plugin can be removed by removing all files that are included in the .zip file. On Linux you can use the zipinfo tool to automate this, by executing the following command:
rm -f `zipinfo -1 /path/to/isaac_module.zip`
After that, the cache needs to be cleared to make sure that Magento doesn't try to use any of the removed components.
If you only want to know if all files are installed, you can also use the zipinfo tool to find this out, for instance by executing the following shell command:
stat -c %n `zipinfo -1 /path/to/isaac_module.zip`
Tips and Tricks
Possible issues with other extensions and fixes
ISAAC Magento extensions can extend one or more Magento PHP classes to add functionality without "touching" these. When adding another extension or when having other extensions installed, the following issues might occur in rare occasions:
Possible issue: Two extensions extend the same PHP class
Solution: If the functionality of the two classes themselves don't conflict (there are functions with different implementation). The implementation of one of the classes should be changed such that it extends the class of the other extension. This way all functionality is maintained for both extensions.
class Manufacturer1_ModuleA_Block_Layer_Filter_Decimal extends Mage_Catalog_Block_Layer_Filter_Decimal class Manufacturer2_ModuleB_Block_Layer_Filter_Decimal extends Mage_Catalog_Block_Layer_Filter_Decimal
Change the dependancy of one class:
class Manufacturer1_ModuleA_Block_Layer_Filter_Decimal extends Manufacturer2_ModuleB_Block_Layer_Filter_Decimal
class Manufacturer2_ModuleB_Block_Layer_Filter_Decimal extends Manufacturer1_ModuleA_Block_Layer_Filter_Decimal
Additionally it is necessary to define which module should be loaded first by adding dependencies. The module of the top level class should depend on the module of the lower level class (the class that is extended). This is done in app/etc/modules with the <depends> tag as shown below. 'A' represents the top level class and 'B' represents the lower level class.
<config> <modules> <Manufacturer_ModuleA> <active>true</active> <codePool>community</codePool> <depends> <Manufacturer_ModuleB /> </depends> </Manufacturer_ModuleA> </modules> </config>
Possible issue: An already installed extension rewrites a class which a new extensions class extends.
Solution: In this case the class of the new extension should extend the conflicting class of the other extensions.
Additionally it is necessary to make sure that the new extension is loaded after the other extension on which it depends, as shown in the example above.
Possible issues with themes and fixes
Some ISAAC Magento extensions make use of layout files. If the theme you are using contains a layout file that changes the same parts as the ISAAC Magento extension does, the ISAAC Magento extension might not show up.
Solution: change the layout file of your theme such that it doesn't change the same blocks that are changed by the ISAAC Magento extension.
This is ISAAC
ISAAC enables companies using internet technology in their core business processes to reduce costs and increase revenue. We create websites and portals, professional web shops, effective mobile applications and robust middleware. We are crazy about the internet and we love open source. We like to contribute to the OS community using this website.
Visit ISAAC website »