Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| en:entwickler:plugin_manager [2025/08/21 18:18] – [Root plugin folder] mightymcoder | en:entwickler:plugin_manager [2026/02/01 18:48] (current) – [Plugin Manager] mightymcoder | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| plugins in Admidio. | plugins in Admidio. | ||
| + | A Basic //" | ||
| ======== Make your plugin compatible with the Plugin Manager (Admidio 5) ======== | ======== Make your plugin compatible with the Plugin Manager (Admidio 5) ======== | ||
| To make your plugin compatible with the Plugin Manager certain requirements must first be met. These include: | To make your plugin compatible with the Plugin Manager certain requirements must first be met. These include: | ||
| * [[en: | * [[en: | ||
| * A consistent [[en: | * A consistent [[en: | ||
| - | | + | * A [[en: |
| - | | + | |
| * A [[en: | * A [[en: | ||
| * A JSON [[en: | * A JSON [[en: | ||
| ======= Naming conventions ======= | ======= Naming conventions ======= | ||
| - | To use the new plugin namespace // | + | To use the new Plugin Manager |
| - | - No plugin | + | - For better readability file and folder names containing multiple words should follow snake_case (underscore separated) notation. |
| - | - For better readability file and folder names containing multiple words should follow CamelCase notation. | + | - All folder and file names containing multiple words and are placed inside the //classes// folder should follow UpperCamelCase (PascalCase) notation. |
| + | - No plugin file defining a class may contain delimiters such as //" | ||
| ======= Folder structure ======= | ======= Folder structure ======= | ||
| The basic folder structure of any plugin is shown below using the " | The basic folder structure of any plugin is shown below using the " | ||
| Line 289: | Line 289: | ||
| | | ||
| | | ||
| - | ==== Main plugin file ==== | + | ===== Main plugin file ===== |
| Inside the root plugin folder a main plugin file is required. This file can contain plugin-specific logic (similar to Admidio’s module entry files) or simply initialize the [[en: | Inside the root plugin folder a main plugin file is required. This file can contain plugin-specific logic (similar to Admidio’s module entry files) or simply initialize the [[en: | ||
| <code php> | <code php> | ||
| <?php | <?php | ||
| - | use Plugins\Birthday\classes\Birthday; | + | use Birthday\classes\Birthday; |
| /** | /** | ||
| Line 318: | Line 318: | ||
| </ | </ | ||
| - | ==== Plugin configuration file ==== | + | ===== Plugin configuration file ===== |
| Each plugin must provide a JSON configuration file containing basic plugin information and configuration (see: [[en: | Each plugin must provide a JSON configuration file containing basic plugin information and configuration (see: [[en: | ||
| - | ====== Configuration file ====== | + | ======= Configuration file ======= |
| Each plugin has to provide a JSON configuration file. The following table gives an overview of all keys currently available: | Each plugin has to provide a JSON configuration file. The following table gives an overview of all keys currently available: | ||
| Line 333: | Line 333: | ||
| | " | | " | ||
| | " | | " | ||
| + | | " | ||
| + | | " | ||
| + | | " | ||
| | " | | " | ||
| | " | | " | ||
| Line 340: | Line 343: | ||
| <code json> | <code json> | ||
| { | { | ||
| - | | + | |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | " |
| - | " | + | } |
| - | ], | + | }, |
| + | | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ], | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | } ], | ||
| " | " | ||
| " | " | ||
| Line 436: | Line 530: | ||
| </ | </ | ||
| - | ====== Plugin class ====== | + | ======= Plugin class ======= |
| The //Plugin// class extends the basic functionality provided by the abstract class // | The //Plugin// class extends the basic functionality provided by the abstract class // | ||
| Line 474: | Line 568: | ||
| </ | </ | ||
| - | ======= PluginAbstract class ======= | + | ======== PluginAbstract class ======== |
| <WRAP center round todo 60%> | <WRAP center round todo 60%> | ||
| methods documentation | methods documentation | ||
| </ | </ | ||