A new installation of ColdMVC will already have a standard library of custom tags available to use inside your views, such as
<c:select />, and
<c:textarea />. These files are all located within
You can create your own custom tags in a ColdMVC application simply by placing a .cfm file inside your application’s
/app/tags folder. For example, if you created a file located at
/app/tags/tony.cfm, you would then have access to that custom tag inside your views and layouts by using
When ColdMVC first loads, it will load any custom tags located within your application’s
/app/tagsfolder, then any custom tags inside
/coldmvc/tagsfolder that haven’t been loaded yet. These custom tags will then be available to all of your views and layouts.
Most of the default custom tags inside ColdMVC simply delegate their functionality to a ColdMVC helper component, so extending the default custom tags can be done by extending the helpers. If you would like to completely override a custom tag that ships with ColdMVC, simply create a custom tag with the same file name inside your application’s
/app/tagsfolder, and ColdMVC will load your custom tag rather than ColdMVC’s custom tag.
By default, ColdMVC will import the custom tags using a “c” prefix. If you would like to change the prefix to something else, such as “foo”, you can do so inside your
/config/config.inifile by setting
tagPrefix=foo. However, it is recommended as a best practice to use the default tag prefix of “c” to provide framework consistency across projects.
In a typical ColdFusion application, you need to import your custom tags into each ColdFusion template using the
<cfimport />tag. However, you do not have to do this inside a ColdMVC application. For each view and layout in your application, ColdMVC will automatically generate a corresponding .cfm file inside your application’s
/.generatedfolder that contains the content of your template along with the
Most of the templates are generated the first time they are requested, with the exception of files beginning with an underscore, which are considered “private” templates by convention and therefore are generated when the application first loads.