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
    •  A custom menu filename will override the system menu file with the same name
  • Router maps (system router map configurations if any, will ALWAYS override custom/theme router maps! The first match is used)
    • /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
        • /framework/modules/*/definitions
        • /themes/thethemename/modules/*/definitions
      • ​(in v2.6.0patch1 and earlier) the system modules definitions would override any same named custom definitions, this was corrected in v2.6.0patch2
    • Views
      • /themes/thethemename/modules/themodulename/views/themodulename/the-view-name.tpl
  • Common views
    • /themes/thethemename/modules/common/views/file/the-view-name.tpl
  • Administration views (_maintenance, _msg_queue, etc...) (added in v2.6.0patch2)
    • /themes/thethemename/modules/common/views/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 (checkout)
    • /themes/thethemename/modules/ecommerce/views/billing/
  • Billing Calculators (with assoc. configuration views) (added in v2.6.0patch2)
    • /themes/thethemename/modules/ecommerce/billingcalculators/
  • Shipping Calculators (with assoc. configuration views) (added in v2.6.0patch2)
    • /themes/thethemename/modules/ecommerce/shippingcalculators/
Loading Help