# Skeleton -- a Kanboard plugin template A minimal, working Kanboard plugin that you copy and rename as the starting point for a real plugin. By itself it does only one trivial thing: it renders the word "Skeleton" at the top of every page. It changes no data and runs no database migration. ## What it demonstrates - A complete `Plugin.php` registration class with all the metadata Kanboard shows in Settings -> Plugins (name, description, author, version, homepage, compatible version). - A template hook (`template:layout:top`) that injects a template into the page. - Asset hooks (`template:layout:css` and `template:layout:js`) that load a stylesheet and a script. They are empty for now but prove the injection path works -- handy when a real plugin needs custom CSS or JS. - The standard plugin directory layout, with stub folders (`Controller/`, `Model/`, `Schema/`, `Locale/`, `Test/`) ready to grow into. ## Requirements - Kanboard >= 1.2.0 ## Installation No build step and no dependencies. 1. Copy this folder into your Kanboard installation as `plugins/Skeleton/`. 2. Reload any page. The word "Skeleton" appears at the top. 3. Confirm it under Settings -> Plugins. To uninstall, delete `plugins/Skeleton/`. Nothing else is left behind. ## Directory layout ``` Skeleton/ Plugin.php Registration and hook wiring (the only required file). README.md LICENSE AGPL-3.0. Template/ layout/header.php The visible "Skeleton" word. Asset/ css/skeleton.css Loaded via template:layout:css. js/skeleton.js Loaded via template:layout:js. Controller/ Stub for future request handlers. Model/ Stub for future business logic / DB access. Schema/ Stub for future database migrations. Locale/ Stub for future translations (e.g. pt_BR/, fr_FR/). Test/ Stub for future unit tests. ``` ## How to fork this into a new plugin 1. Copy the folder and rename it, e.g. `plugins/MyPlugin/`. The folder name must match the namespace and start with a capital letter. 2. In `Plugin.php`, change the namespace from `Kanboard\Plugin\Skeleton` to `Kanboard\Plugin\MyPlugin`. 3. Update the metadata methods (`getPluginName`, `getPluginDescription`, `getPluginAuthor`, `getPluginVersion`, `getPluginHomepage`, `getCompatibleVersion`). 4. Update the hook target paths: the lowercase prefix in `'skeleton:layout/header'` and the `plugins/Skeleton/Asset/...` asset paths must match the new plugin name. 5. Replace `Template/layout/header.php` with your real template, or attach to a different hook. See the Kanboard plugin hooks documentation for the full list of hook points. ## License AGPL-3.0. See LICENSE.