...
Child pages (Children Display) |
---|
excerpt | true |
---|
excerptType | simple |
---|
|
Structure of a plugin
Plugins must follow a given structure so they can be installed correctly. Once at all, all files of a plugin package are packed to an ZIP archive, which later is unpacked from the installation routine of the plugin manager.
...
The name of the ZIP archive file must only contain the plugin some name, for example: linkchecker.zip. This name is not relevant for your folder name at plugin directory.
plugin.xml
Each plugin must have a XML file which contains metadata for the plugin itself and for the installation in the system. Among other things this file is responsible for the folder name in the plugins directory of CONTENIDO. Most important it contains all relevant entries for some special database tables, so the plugin is accessible in the backend (creating menu entries and so on). These tables are: actions, area, files, frame_files and nav_sub.
...
Each plugin must have an UUID to identify it globally. These IDs base on the values for the plugin_name and copyright fields in this file. UUIDs only can be generated on the CONTENIDO website.
Tag general - meta information (required)
This tag contains meta information about the plugin which also are displayed in frontend. The tag has the attribute "active" which should have the value "1".
Tag name | Description | Required? | Example |
---|
plugin_name | Full plugin name. | yes | Code Block |
---|
| <general active="1">
<plugin_name>Linkchecker</plugin_name>
<plugin_foldername>linkchecker</plugin_foldername>
<uuid>428CB6BC-2DE3-284D-34C9-C30C010F6B20</uuid>
<description>Checks intern and extern links to valid</description>
<author>Frederic Schneider (4fb)</author>
<copyright>four for business AG</copyright>
<mail>frederic.schneider@4fb.de</mail>
<website>http://www.4fb.de</website>
<version>2.0.1</version>
</general> |
|
plugin_foldername | Name of the plugin folder. | yes |
uuid | The universal Unique ID. | yes |
description | Description of the plugins functions. | no |
author | Author | yes |
copyright | Copyright notice | yes |
mail | Mail address for support | no |
website | Website address for support | no |
version | Version of the plugin | yes |
Tag requirements - requirements for new plugins
Tag name | Description | Available attributes | Example |
---|
contenido | Versions of CONTENIDO | Name | Description |
---|
minversion | First compatible version of CONTENIDO. Required | maxversion | Last compatible version of CONTENIDO |
| Code Block |
---|
| <requirements php="5.2.3">
<contenido minversion="4.9.0" />
<extension name="mysql" />
<class name="cRegister" />
<function name="i18n" />
</requirements> |
|
extension | PHP extensions | Name | Description |
---|
name | Name of the extension |
|
class | PHP classes | Name | Description |
---|
name | Name of the class |
|
function | PHP functions | Name | Description |
---|
name | Name of the function |
|
Tag dependencies - dependencies to other plugins
...
This tag contains information for plugin dependencies. The plugin manager checks if uuid is available in the database and if the required plugin is active.
Tag name | Description | Available attributes | Example |
---|
depend | Dependencies to other plugins | Name | Description |
---|
uuid | The universal Unique ID. Required. | minversion | First compatible version of plugin. | maxversion | Last compatible version of plugin. |
| Code Block |
---|
| <dependencies>
<depend uuid="82b117e94bb2cbcbce4e56b79a7d0c23" minversion="1.0.0" maxversion="1.0.1">Smarty Wrapper</depend>
</dependencies> |
|
Tag contenido - database specific information
...
The order of the XML tags must be the same as listed below.
Tag name | Description | Available attributes | Example |
---|
areas | Managing areas | Name | Description |
---|
parent | Name of the parent area or 0 | relevant | Since CONTENIDO 4.9.10: Show this area on menu (1) or not (0). This attribute is optional. Before version 4.9.10, relevant is at all time active. | menuless | Area has left menu frame (0) or not (1) |
| Code Block |
---|
| <areas>
<area parent="linkchecker" relevant="1" menuless="1">lc_whitelist</area>
</areas> |
|
actions | Managing actions | Name | Description |
---|
area | Name of the area |
| Code Block |
---|
| <actions>
<action area="linkchecker">linkchecker</action>
</actions> |
|
frames | Managing frames | Name | Description |
---|
area | Name of the area | filetype | Type of the file (mostly "main") | name | relative path to frame include file | frameId | Number of the frame (from 1 to 4) |
| Code Block |
---|
| <frames>
<frame area="linkchecker" filetype="main" name="linkchecker/includes/include.linkchecker.php" frameId="4" />
</frames> |
|
nav_main | Managing main navigations |
nonelanguage | html/xml Code Block |
---|
name | Name of the menu (since CONTENIDO 4.9.10, Menu occurs only if nav_sub exists) |
| |
<nav>locationname<<nav name="menuname">pluginname/xml/lang_de_DE.xml;navigation/menuname/main</nav>
</nav_main> |
|
nav_sub | Managing sub navigations |
area, level, navm | Name | Description |
---|
area | Name of the area | level | Navigation level (0 or 1) | navm | Main navigation ID or Main menuname (if nav_main is used, name of this menue must set here) |
| Code Block |
---|
| <nav_sub>
<nav area="linkchecker" level="0" navm="1">linkchecker/xml/lang_de_DE.xml;navigation/content/linkchecker/main</nav>
</nav_sub> |
|
Tag content_types - registration of own content types
This tag contains information to register own content types.
Tag name | Description | Required? | Example |
---|
type | Content type name | yes | Code Block |
---|
| <content_types>
<type>CMS_NAME</type>
</content_types> |
|
plugin_install.sql, plugin_uninstall.sql and update sql files
...
Furthermore, it is only possible to execute the following database operations.
Installation type | Available operations |
---|
Installation | - CREATE TABLE IF NOT EXISTS
INSERT INTO - UPDATE
- ALTER TABLE
|
Uninstall | |
Update | - UPDATE
- ALTER TABLE
- DELETE FROM
- DROP TABLE
|
The prefix placeholder contains the common database table prefix (per default: "con_") following by the chars "pi" for plugin.
...
You can also define version specific update sql files. Format: plugin_update_oldversionnumber_to_newversionnumber.sql. Please replace "oldversionnumber" with your old plugin versioh number without dots, for example "10" for version 1.0 and replace "newversionnumber" with your new plugin version number without dots, for example "11" for version 1.1. Your update file namefilename: plugin_update_10_to_11.sql. With this file your plugin run your update statements, if you have installed plugin version 1.0 and want to updated it with plugin version 1.1.