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.