README explains

This commit is contained in:
2026-07-01 09:50:16 -03:00
parent 99ff483e44
commit 2f739c8b75

View File

@@ -1,19 +1,28 @@
# Skeleton -- a Kanboard plugin template # TweakDrag -- board drag, touch and column-gap tweaks
A minimal, working Kanboard plugin that you copy and rename as the starting point for a A Kanboard plugin that groups board dragging and spacing tweaks. This first version
real plugin. By itself it does only one trivial thing: it renders the word "Skeleton" at provides two options, both configurable under "Settings -> Tweak Drag":
the top of every page. It changes no data and runs no database migration.
## What it demonstrates - **Drag the board background to scroll** (desktop) -- click and drag on the empty board
background to scroll the columns sideways, like the Trello board canvas.
- **Widen the gap between columns** -- spread the columns further apart, easier to tell
apart and to touch.
- A complete `Plugin.php` registration class with all the metadata Kanboard shows in These options were originally part of the ShrinkVertically plugin and moved here so that
Settings -> Plugins (name, description, author, version, homepage, compatible version). drag/touch behaviour can grow on its own (planned: mobile drag-to-move cards, and a drag
- A template hook (`template:layout:top`) that injects a template into the page. movement threshold so ending a drag does not open the task) without bloating that plugin.
- 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 ## How it works
plugin needs custom CSS or JS.
- The standard plugin directory layout, with stub folders (`Controller/`, `Model/`, - **Drag to scroll**: a small script (`Asset/js/drag-scroll.js`, loaded only when the
`Schema/`, `Locale/`, `Test/`) ready to grow into. option is on) starts a horizontal pan on `#board-container` only when the press lands on
empty background -- pressing a task card, a drag handle or any control is ignored, so
Kanboard's own card and column drag-and-drop keep working unchanged.
- **Column gap**: the board is a table, so the gap is set with `border-spacing` (injected
in the page head from `Template/layout/variable.php` only when the option is on), sized
by the `--td-column-gap` CSS variable. This spreads the columns without shrinking the
cards and keeps each column header aligned with its list. It also adds some spacing at
the left and right edges of the board.
## Requirements ## Requirements
@@ -21,45 +30,19 @@ the top of every page. It changes no data and runs no database migration.
## Installation ## Installation
No build step and no dependencies. Copy this folder into your Kanboard installation as `plugins/TweakDrag/`. The directory
name must be exactly `TweakDrag` (Kanboard derives the plugin namespace from the folder
name). No build step and no database migration.
1. Copy this folder into your Kanboard installation as `plugins/Skeleton/`. ## Settings
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. These settings are global (per Kanboard instance) and admin-only. Go to
"Settings -> Tweak Drag":
## Directory layout - **Column gap in pixels** -- width of the column gap (`--td-column-gap`). Default: 25.
- **Widen the gap between columns** -- toggles the wider gap. Default: on.
``` - **Drag the board background to scroll horizontally** -- toggles the Trello-style
Skeleton/ click-and-drag panning. Desktop (mouse) for now. Default: on.
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 ## License