Topics

Customizing Exponent

Though we strongly recommend you NOT change the 'guts' of Exponent (files inside the /framework folder), you can override most built-in features with custom views, etc... (modified copies) by placing them in the theme folder.  Exponent is designed to be easily customized by the end user.  However, if you edit the files shipped with Exponent, chances are, they will be overwritten when you upgrade the site to the newest version.  Otherwise you're stuck with the old version, or you'll have to perform a pains-taking 'diff' to place your 'customized' edits into the new version.

With that scenario in mind, Exponent is designed to be EASILY customized by the end user. (didn't we already say that?)  The Exponent system first looks in the current theme (the one being used or previewed) folder for models, views, controllers, and other things before it moves on to the system (shipped) versions.  So if you create customized variations of, or additions to the shipped files they will take priority.  Since a theme can only use one framework type, we do NOT use the framework extension for custom templates (e.g., a custom theme view of showall.bootstrap3.tpl will NOT be loaded, it MUST be renamed to showall.tpl)

The following can be customized by placement in the current theme folder:

  • Administration (slingbar) menus
    • /themes/thethemename/modules/administration/menus/the-menu-name.php
  • Router maps (system router map configurations if any, ALWAYS override custom/theme router maps!)
    • /themes/thethemename/router_maps.php
  • Action maps (there is no system action_maps.php)
    • /themes/thethemename/action_maps.php
  • Modules
    • Controllers
      • /themes/thethemename/modules/themodulename/controllers/the-controller-name.php
    • Models
      • /themes/thethemename/modules/themodulename/models/the-model-name.php
    • Model (database table) Definitions
      • /themes/thethemename/modules/themodulename/definitions/the-definition-name.php
      • Definitions files are processed in this order
        • ​/framework/core/definitions
        • /themes/thethemename/modules/*/definitions
        • /framework/modules/*/definitions
      • ​Therefore, the system modules defintions override any same named custom definitions
    • Views
      • /themes/thethemename/modules/themodulename/views/themodulename/the-view-name.tpl
  • Common views
    • /themes/thethemename/modules/common/views/file/the-view-name.tpl
  • Printer friendly theme (view)
    • /themes/thethemename/printer-friendly.php
  • User profile extensions
    • /themes/thethemename/modules/users/extensions/the-user-profile-extension-name.php
    • /themes/thethemename/modules/users/views/extensions/the-user-profile-extension-name.tpl
  • File (attachment) View configs
    • /themes/thethemename/modules/common/views/file/configure/
  • Form Controls
    • /themes/thethemename/controls/
  • Smarty Plugins
    • /themes/thethemename/plugins/
  • Product views/forms
    • /themes/thethemename/modules/ecommerce/products/views/the-product-type/
    • /themes/thethemename/modules/ecommerce/products/views/product/
  • Billing Calculator views/forms
    • /themes/thethemename/modules/ecommerce/views/billing/
Loading Help