Here are a few short hints which become helpful for customizing your generated Module:
- Your model is the real software so do all important changes (like adding or moving table columns) on model level. Do not let your model become obsolete, which means losing lots of advantages.
- Do all cosmetic enhancements by template overriding: placing them in /config/templates/ for example is a good idea for development. If you need display-oriented additional logic, simply create a render plugin encapsulating your efforts in a file which is not affected by the generator.
- Perform logical enhancements in the Domain classes (see classes/*, those file extend classes/Base/*) - take a look at the structure of the component system classes PNObject and PNObjectArray (both in /includes/pnobjlib/ in Zikula) to get to know the methods it provides.
- The file common.php can be easily used to enable/disable specific use cases (like view, display, ...) for particular object types within custom conditions.
- Document your changes to simplify merging process after regeneration (be sure you will need and love it: add some fields later on, get a new generator version fixing some bugs centrally, and so on).
- A version control system gives you another additional level of rollback safety.