2d5c6a137764514d48a7ca001d0a7a9084f44887
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.phpregistration 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:cssandtemplate: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.
- Copy this folder into your Kanboard installation as
plugins/Skeleton/. - Reload any page. The word "Skeleton" appears at the top.
- 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
- Copy the folder and rename it, e.g.
plugins/MyPlugin/. The folder name must match the namespace and start with a capital letter. - In
Plugin.php, change the namespace fromKanboard\Plugin\SkeletontoKanboard\Plugin\MyPlugin. - Update the metadata methods (
getPluginName,getPluginDescription,getPluginAuthor,getPluginVersion,getPluginHomepage,getCompatibleVersion). - Update the hook target paths: the lowercase prefix in
'skeleton:layout/header'and theplugins/Skeleton/Asset/...asset paths must match the new plugin name. - Replace
Template/layout/header.phpwith 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.
Languages
PHP
88.1%
JavaScript
6.1%
CSS
5.8%