summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--doc/plugin-metadata.markdown38
-rw-r--r--doc/plugins.markdown1
3 files changed, 41 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 91e09fcc..257668d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,14 +10,14 @@ Breaking changes:
New features:
* Add CSV import for users and tasks
+* Add Task, User and Project metadata for plugin creators
Improvements:
* Allow to change comments sorting
* Add the possibility to append or not custom filters
* Make mail transports pluggable
-* Add Task, User and Project metadata for plugin creators
-* Do not show scroll-bars when a column is collapsed (IE)
+* Do not show scroll-bars when a column is collapsed on Windows systems
Bug fixes:
diff --git a/doc/plugin-metadata.markdown b/doc/plugin-metadata.markdown
new file mode 100644
index 00000000..a01b0ddc
--- /dev/null
+++ b/doc/plugin-metadata.markdown
@@ -0,0 +1,38 @@
+Metadata
+========
+
+You can attach metadata for each project, task and user.
+Metadata are custom fields, it's a key/value table.
+
+By example your plugin can store external information for a task or new settings for a project.
+Basically that allow you to exend the default fields without having to create new tables.
+
+Attach metadata to tasks
+------------------------
+
+```php
+
+// Return a dictionary of metadata (keys/values) for the $task_id
+$this->taskMetadata->getAll($task_id);
+
+// Get a value only for a task
+$this->taskMetadata->get($task_id, 'my_plugin_variable', 'default_value');
+
+// Return true if the metadata my_plugin_variable exists
+$this->taskMetadata->exists($task_id, 'my_plugin_variable');
+
+// Create or update metadata for the task
+$this->taskMetadata->save($task_id, ['my_plugin_variable' => 'something']);
+```
+
+Metadata types
+--------------
+
+- TaskMetadata: `$this->taskMetadata`
+- ProjectMetadata: `$this->projectMetadata`
+- UserMetadata: `$this->userMetadata`
+
+Notes
+-----
+
+- Always prefix the metadata name with your plugin name
diff --git a/doc/plugins.markdown b/doc/plugins.markdown
index 89629a35..0a08fa8e 100644
--- a/doc/plugins.markdown
+++ b/doc/plugins.markdown
@@ -13,6 +13,7 @@ Plugin creators should specify explicitly the compatible versions of Kanboard. I
- [Add schema migrations for plugins](plugin-schema-migrations.markdown)
- [Add mail transports](plugin-mail-transports.markdown)
- [Add notification types](plugin-notifications.markdown)
+- [Attach metadata to users, tasks and projects](plugin-metadata.markdown)
Examples of plugins
-------------------