====== struct Plugin ====== ---- plugin ---- description: A new structured data plugin author : Anna Dabrowska, Michael Große, Andreas Gohr email : dokuwiki@cosmocode.de type : syntax, admin, action, remote lastupdate : 2024-04-09 compatible : !Frusterick Manners, !Greebo, !Hogfather, !Igor, Jack Jackrum, Kaos depends : sqlite conflicts : discussion, ckgedit similar : data, strata tags : database, sqlite, data downloadurl: https://github.com/cosmocode/dokuwiki-plugin-struct/zipball/master bugtracker : https://github.com/cosmocode/dokuwiki-plugin-struct/issues sourcerepo : https://github.com/cosmocode/dokuwiki-plugin-struct/ donationurl: screenshot_img : ---- ===== Why “struct” instead of “data”? ===== This plugin draws heavy inspiration from the [[Data]] plugin. It basically tries to solve the same problem of assigning structured data to pages and build automatic aggregations from it. So why another plugin? The data plugin proved to be very useful and versatile but had a few shortcomings: * each page defined its own set of structured data * there was no central way to ensure the structured data was consistent over multiple pages * there was no easy way to modify the structured data set for multiple pages * there was no validation for the data entered Last not least this struct plugin is supported by the [[move]] plugin. The [[Bureaucracy]] plugin helped with some of the points but not all of them. So Struct tries to rethink the Data plugin: * structured data is classified in //schemas// * a schema holds a set of //fields// * fields have a specific //type// * types control how the data is displayed and validated * types have specific configuration within the schema * schemas are managed centrally in an admin interface * pages are assigned schemas through //namespace patterns// * changing a schema changes it for all associated pages * the structured data is no longer part of the page syntax * data is only edited via a dedicated form within the standard editor or through [[plugin:struct:inlineedit|inline editing]] * it is possible to create //global// data not attached to any page ((referred to as //lookup// in previous versions of struct)) * global data can be used as data source for [[plugin:struct:type_lookup|lookup dropdowns]] * //serial// data is a collection of data structures belonging to certain pages * all crucial code is covered by automated tests This allows for central management of wanted structured data while keeping the functionality of the data plugin. [[https://www.cosmocode.de/en/open-source/dokuwiki-plugins/|{{ https://www.cosmocode.de/static/img/dokuwiki/dwplugins.png?recache|A CosmoCode Plugin}}]] ===== Installation ===== :!: **External requirements:** This plugin requires the following additional components that must be installed separately: * [[plugin:sqlite|SQLite Plugin]] Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. ===== Usage ===== Please refer to the following pages to learn how to use the plugin: * [[plugin:struct:schemaedit|Schema Editing]] * [[plugin:struct:configuration|Configuration]] * [[plugin:struct:type|Types]] * [[plugin:struct:import|Import/Export]] * [[plugin:struct:csvimport|CSV Import]] * [[plugin:struct:csvexport|CSV Export]] * [[plugin:struct:delete|Delete]] * [[plugin:struct:rename|Rename]] * [[plugin:struct:assignments|Page Data Assignments]] * [[plugin:struct:globaledit|Editing Global Data]] * [[plugin:struct:serialedit|Editing Serial Data]] * [[plugin:struct:aggregation|Aggregation]] * Aggregation Types * [[plugin:struct:aggregation:table|Table]] * [[plugin:struct:aggregation:list|List]] * [[plugin:struct:aggregation:value|Value]] * Aggregation Control * [[plugin:struct:aggregation:filter|Filter Control]] * [[plugin:struct:cloud|Cloud Control]] * [[plugin:struct:filters|Filters]] * [[plugin:struct:inlineedit|Inline Editing]] * [[plugin:struct:csvexport|CSV Export]] * [[plugin:struct:permissions|Permissions]] * [[plugin:struct:devel|Developer Support]] * [[plugin:struct:remote_api|remote API]] * [[plugin:struct:integrations|Struct Integration into other Plugins]] * [[plugin:struct:plugins|Plugins to extend Struct]] * [[plugin:struct:dbinternals|Database internals]] Here a complete overview of [[.struct:aggregation?do=index|all sub-pages]] to struct plugin. ===== Samples ===== * [[plugin:struct:Samples]] ===== Development ===== === Change Log === [[https://github.com/cosmocode/dokuwiki-plugin-struct/commits/master.atom|{{https://raw.githubusercontent.com/legacy-icons/famfamfam-silk/master/dist/png/feed.png?16x16&recache |Subscribe to 'struct Plugin Change Log' by RSS}}]] {{rss>https://github.com/cosmocode/dokuwiki-plugin-struct/commits/master.atom date}} === Known Bugs and Issues === Please report bugs and issues at https://github.com/cosmocode/dokuwiki-plugin-struct/issues