TemplaVoila Framework Extension

The TemplaVoila Framework is now implemented as an extension (extension key: templavoila_framework). This description of some of the core code is mostly for those who are curious. You should be doing all of your adjustments for individual sites in the skins and TypoScript templates not directly in the extension. If you have suggestions on how the extension can be better, please e-mail us at templavoilabusynoggincom.

The Page Object

The framework extension includes code for the TypoScript page object. The items pre-written in this object are pretty minimal, but in case you find reason to need to reset or override lines in the object, here is the code in that object. Use the setup field in the TypoScript template on the root page of the site to write any code to affect this object.

Page & FCE Data Structures Template Files

The framework extension includes the data structures and html templates for its page templates and utility FCEs. Template objects are imported as part of the install process.

The extension does not interfere with the normal operation of TemplaVoila; therefore, you can still create custom page templates and FCE's when needed. However, you will find that doing custom page templates is hardly ever needed because of the flexibility of those within the framework.

JavaScript

Included jQuery Library

The framework uses jQuery for the JavaScript needed to make the modules within a group equal in height. The extension includes the jQuery library by default and sets it to noConflict. Developers may, at times, wish to include the jQuery library in a different manner or eliminate it altogether. In such cases they can this constant to zero:

         enableJQuery = 0

Setting this constant to zero will mean the extension:

  1. will not include the jQuery library
  2. will not set jQuery to noConflict
  3. and will not include the core.js file which has the code for equal height modules

 If you choose to set this constant to zero and want to either use jQuery or have equal height modules, you will need to take care of those items in another manner.

JQuery noConflict

As just mentioned, by default the extension runs jQuery in noConflict mode. This allows a developer to use additional JavaScript libraries or TYPO3 extensions using those libraries without conflict, but it also means that he cannot use the jQuery factory function when writing his jQuery code.

This means writing jQuery code like this:

          jQuery('.myClass').hide();

NOT this:

          $('.myClass').hide();

It is possible to unset this noConflict behavior as well as the inclusion of the jQuery library with the enableJQuery constant described above.

Back-End Translations

Currently English and German are available to the back-end user. If you would like to provide a translation for an additional language, please contact us at templavloila.busynoggin.com.

Core TypoScript

You will not need to edit any of the TypoScript in the extension; however, here is a brief description of the TypoScript objects in the extension's core TypoScript. They are located in this file inside the extension:

  • core_templates -> typoscript -> core_typoscript.ts

dsConfig

This object is included in the data structure of each page template and does the following:

  • indicates whether the main headline should be generated from the page title
  • indicates whether the feature area should bleed or not
  • transfers the values of constants that indicate from which SysFolders generated content should come from

containerWidth

This provides the page with the values of the constants set in the skin for container widths.

moduleGroupSetup

This is a pretty extensive object that is included in the data structures for the module groups. It has to handle a lot of information for the each of the modules including:

  • bleed or no bleed
  • framed or no frame
  • title or no title
  • calculation of the module widths given the distribution
  • and more

Of all the TypoScript objects in the framework, this one will come closest to making your head spin. You do not have to worry about how it works just enjoy what it does.

columnGroupSetup

Similar to the moduleGroupSetup but for use by the column groups.

evaluatedPreCodeFeature and evaluatedPostCodeFeature

Just used to ensure that the preCodeFeature and postCodeFeature objects are inserted only when the feature content is present.