Adding functionality - flagbit/Magento-FACTFinder GitHub Wiki
Whenever it is necessary to modify the extension you can use standard Magento rewrites in your own customization module.
Example: According to app/code/community/FACTFinder/{SubmoduleName} create app/code/local/YourName/{SubmoduleName} where you rewrite necessary files.
Create a Handler
Adding functionality is often an important task to fit to the requirements of a shop. In the most cases this should be functionality that uses functions of FACT-Finder, practical building a specific request and doing something with these products, for example showing top-seller products on the start page.
To implement such features it's the best way to create a new Handler class using the existing handlers as an example and implement the data gathering process into it. That handler class should then be initiated from another Model, a Controller or a Block where it's usage is necessary.
If that handler is used on a page where also other handlers may be used, it's the best to init it before the layout is rendered. This way the handler is able to register his need at the facade which will take care to do all FACT-Finder requests at once in parallel.
Templates
To make the FACT-Finder features fit to the shop design it might be necessary to add or overwrite the templates of the extension. In the most cases there will be a highly customized template anyway which overwrites a lot of the basic/default template stuff. With the same way it is of course possible to overwrite or extend the FACT-Finder templates. Although there are not many because in the most cases the default Magento templates are reused.
Overwrite a class
Sometimes there is no other way but to hook into the existing process or overwrite certain behaviours of the extension. In such cases there is no other way but rewrite the necessary class. This is a "standard" technique at Magento which is already documented in the web out there.