Code templates provide the 'skeleton' from which Component Architect can generate Joomla components. Each code template consists of folders and files which are used as the basis for multiple components. By the use of specific naming standards for folders and files combined with an extensive code mark-up language, within the code templates, Component Architect is able to provide the flexibility to use component generation for the widest possible range of applications.
The 'mark-up language' is a series of tags within a code template which direct the code generation process,such as
[%%FOREACH FIELD%%]....some code....[%%ENDFOR FIELD%%]
[%%IF GENERATE_CATEGORIES%%] ....some code....[%%ELSE GENERATE_CATEGORIES%%]....some code....[%%ELSE GENERATE_CATEGORIES%%]
These logic statements can be nested to an unlimited extent. Besides logic statements values can also be inserted such as
During the development of Component Architect it was realised that the original idea of just providing Standard code templates to replicate Joomla! functionality, features and MVC structures was already available through several on-line and downloadable products. But as our development had begun based on marked-up code templates we could, in fact, provide a wider range of code templates to meet many more development requirements in Joomla! and even provide non Joomla! code generation or even documentation or testing generation.
The initial outcome from this identification of greater potential are the two additional Professional code templates (Joomla! 3.x Enhanced and Joomla! 3.x Test Data Generator) provided with Component Architect Professional. Further code template development of Component Architect is planned and indeed with Component Architect Professional you can develop you own versions of code templates. Simply take a copy of the code template with Component Architect Professional and all the database information, folder structure and files are replicated so you can modify them at will. Or you can start from scratch and develop your own new code templates.
The Standard code templates provide the capability to generate fully working Joomla! components for specific versions of Joomla!. The functionality and features included in the Standard code templates is based on that of the core components of Joomla. They are coded to combine features from com_content and com_contact which can support a wide range of other components.
Besides the folders, files and code for a component to be generated the Joomla! Standard code templates also provide other extensions to create a full package for a component. This includes:
In line with the change in release methodology by Joomla!, Component Architect will be releasing new Standard code templates for each major (e.g. 3.x and 4.x) release of Joomla!.
Note: for those not yet aware Joomla! is no longer using a Long Term Support (LTS) and Short Term Support (STS) releases system. For further information see the following articles:
The free Component Architect product and the subscription based Component Architect Professional product will include Standard code templates for the following releases of Joomla:
Note: because of the flexibility of Component Architect you can always turn off the generation of those features which may cause problems in earlier releases of Joomla!.
The approach taken by Component Architect, using the flexibility of marked up code templates, extensive component definition and an adaptable code generation process provides the opportunity for almost unlimited scope in the functionality and features that can be automatically included in new components.
A number of enhancements to the Joomla! 3.x Enhanced code template are already being investigated, such as:
Besides development of enhancements to the two additional Professional code templates (Joomla! 3.x Enhanced and Joomla! 3.x Test Data Generator) provided with Component Architect Professional, further development of new code templates is planned. Initial focus will be in developing the following code templates:
Ideas for future code templates include - no development currently planned: