Own Router or Controller

To get an own ActionController that can be called like this: http://www.mysexydomain.de/nicefrontname/nicecontrollerprefix/niceactionprefix/ … you have to add the following snippet into the FE or BE section of your config.xml: <frontend> <routers> <sns_documentmaster> <use>standard</use> <args> <module>SNS_Documentmaster</module> <frontName>nicefrontname</frontName> </args> </sns_documentmaster> </routers> </frontend>  

Compress and extract files

With tar On Unix based plattforms you can use the tar command for file compression and also for later uncompression. Compression $> tar -pczf web.tar.gz web/ With -h as the first parameter the real files instead symbolic links are compressed. So you can tar symbolic link targets. To exclude files or folder, you can define –exclude=’fileOFolderPath’ directly […]

Conditions

There are conditional commands for MySQL too. IF/ELSE SELECT FieldA as A, FieldB as B, IF(FieldA = FieldB, ‘equal’, ‘not equal’) as condition, FROM table WHERE this LIKE that Or cascaded: SELECT FieldA as A, FieldB as B, IF(FieldA = FieldB,’FieldA is equal to FieldB’,IF(FieldC = FieldD,’FieldC is equal to FieldD’,’all false’)) as output, FROM […]

Event Observer

The following snippet have to be added to the config.xml under the frontend (for FE-events) – or the adminhtml (for BE-Events) – tag: <events> <event_name> <observers> <observer_unique_config_name> <!– singleton or model –> <type>singleton</type> <class>Namespace_Modul_Model_Modelname</class> <method>functionToCallOnModelClassInstance</method> </observer_unique_config_name> </observers> </event_name> </events>  

Add JavaScript or CSS in Block class

 To add JavaScript or CSS files to the head section of the resulting HTML page, you can add something like this to the _prepareLayout function of a Block class: $headBlock = $this->getLayout()->getBlock(‘head’); $headBlock->addJs(‘somefolder/ask-sheldon.js’); $headBlock->addCss(‘somefolder/ask-sheldon.css’); As you can see, we can use the layout model to get the head block an use its functions to add files. This […]

Automatically load custom product attribute with collection (every time)

You can do this with the following XML in your config.xml: <frontend> <product> <collection> <attributes> <ATTRIBUTECODE/> </attributes> </collection> </product> </frontend> But ATTENTION: This can become a performance issue, because it loads the attribute every time the product collection is loaded! If you added too many attributes, the performance can get worse!