CMS Plugin Basics | Overview | Documentation (image)

    All KUSoftas CMS plugins are open source software and released under MIT license.

    CMS plugin is software package plugged into CMS. Plugins by default are located in /cms/srv/plugins folder. Plugin software package structure:

    • pluginid. Each plugin has root folder identified by pluginid. Plugin is subsite relative to main site. As it is subsite it has site regular structure:
      • api subsite (service for plugin jQuery Ajax requests) folder containing:
        • class - folder contains class files with API subsite HTTP Request route functions
        • data - api subsite configuration data folder
          • conf_local.xml - subsite configuration xml file
          • pages.xml - subsite pages for HTTP Request service
        • other api subsite inportant files
          • .htaccess - handle HTTP requests
          • index.php - call CMS software
      • data folder containing:
        • files - folder contains plugin management site files
        • images - folder contains plugin management site images
        • program - folder contains plugin data
          • class - php class files to be delegated available to site by class autoload. Any other site program may use delegated classes
          • images - images to be used in delegated to site jQuery plugin and stylesheet
          • plugin - delegated to site template plugins (will be available in any site template)
          • template - delegated to site template (will be available in any site template as include templates)
          • plugin jQuery file (cms-plugin-pluginid.js) - delegated to site plugin main Java Script file and to be available in any site Java Script file
          • plugin CSS file (cms-plugin-pluginid.css) - delegated to site CSS file required for plugin jQuery file
        • skins - folder contains plugin management site skins
        • other plugin subsite files:
          • config (conf_local.xml) - subsite configuration xml file
          • pages (pages.xml) - subsite pages xml file
          • languages (lang.xml) - subsite languages xml file
          • menu (menu.xml) - subsite menu tree xml file
          • plugin metadata file (plugin.xml)
      • other plugin subsite inportant files
        • .htaccess - handle HTTP requests
        • index.php - call CMS software
        • favicon.ico - small image representing subsite

    Plugin must have folowing metadata (file plugin.xml):

    • attributes: id (mandatory), version (optional), date (optional)
    • author (optional)
    • description (optional)
    • keywords (optional)
    • relative path to plugin software folder (optional) - default is "/cms/srv/plugins/pluginid"
    • relative path to plugin data folder (optional) - default is "/cms/data/plugins/pluginid"
    • path to CMS plugin css file delegated to be included into page (optional)
    • path to CMS plugin jQuery js file delegated to be included into page
    • path to CMS plugin template folder delegated to be included into page (optional)
    • path to CMS plugin template plugin folder delegated to be included into page (optional)

    CMS plugins are defined in "/cms/srv/plugins/plugins.xml" file by default. Site may have it's own plugins.xml file defined in CMS tools Setup. Plugin metadata defined in site plugins.xml file may define new CMS plugins or replace/alter default CMS plugins.