CINXE.COM
plugin:strata [DokuWiki]
<!DOCTYPE html> <html lang="en" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>plugin:strata [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="noindex,nofollow"/> <meta name="keywords" content="plugin,strata"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/plugin:strata?do=index" title="Sitemap"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Current namespace" href="/feed.php?mode=list&ns=plugin"/> <link rel="edit" title="Edit this page" href="/plugin:strata?do=edit"/> <link rel="alternate" type="text/html" title="Plain HTML" href="/_export/xhtml/plugin:strata"/> <link rel="alternate" type="text/plain" title="Wiki Markup" href="/_export/raw/plugin:strata"/> <link rel="canonical" href="https://www.dokuwiki.org/plugin:strata"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <script >var NS='plugin';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"plugin:strata","namespace":"plugin","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer="defer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" defer="defer"></script> <script src="/lib/exe/js.php?t=dokuwiki&tseed=f1005bad3d81fc9c803c7f93d32a390e&lang=en" defer="defer"></script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="/lib/tpl/dokuwiki/images/favicon.ico" /> <link rel="apple-touch-icon" href="/lib/tpl/dokuwiki/images/apple-touch-icon.png" /> <meta name="verify-v1" content="OVxl3gsCv2MhZqh1cBQyl0JytWXSwXMjyvwc+4w3WtA=" /> <meta name="google-site-verification" content="YhTVK69hW94ZXUtc2zSLPxTkZKbZIn0zK67mz5WQB-E" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-83791-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-83791-1', { 'anonymize_ip': true }); </script> </head> <body> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki showSidebar hasSidebar"> <!-- ********** HEADER ********** --> <header id="dokuwiki__header"><div class="pad group"> <div class="headings group"> <ul class="a11y skip"> <li><a href="#dokuwiki__content">skip to content</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Home [h]"><img src="/lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /><span>DokuWiki</span></a></h1> <p class="claim">It's better when it's simple</p> </div> <div class="tools group"> <!-- USER TOOLS --> <div id="dokuwiki__usertools"> <h3 class="a11y">User Tools</h3> <ul> <li class="action login"><a href="/plugin:strata?do=login&sectok=" title="Log In" rel="nofollow"><span>Log In</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg></a></li> </ul> </div> <!-- SITE TOOLS --> <div id="dokuwiki__sitetools"> <h3 class="a11y">Site Tools</h3> <form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="plugin:strata" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Search" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Search">Search</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <div class="mobileTools"> <form action="/doku.php" method="get" accept-charset="utf-8"><div class="no"><input type="hidden" name="id" value="plugin:strata" /><select name="do" class="edit quickselect" title="Tools"><option value="">Tools</option><optgroup label="Page Tools"><option value="edit">Edit this page</option><option value="revisions">Old revisions</option><option value="backlink">Backlinks</option></optgroup><optgroup label="Site Tools"><option value="recent">Recent Changes</option><option value="media">Media Manager</option><option value="index">Sitemap</option></optgroup><optgroup label="User Tools"><option value="login">Log In</option></optgroup></select><button type="submit">></button></div></form> </div> <ul> <li class="action recent"><a href="/plugin:strata?do=recent" title="Recent Changes [r]" rel="nofollow" accesskey="r">Recent Changes</a></li><li class="action media"><a href="/plugin:strata?do=media&ns=plugin" title="Media Manager" rel="nofollow">Media Manager</a></li><li class="action index"><a href="/plugin:strata?do=index" title="Sitemap [x]" rel="nofollow" accesskey="x">Sitemap</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Trace:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/plugin:strata" class="breadcrumbs" title="plugin:strata">strata</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Sidebar"><div class="pad aside include group"> <h3 class="toggle">Sidebar</h3> <div class="content"><div class="group"> <p> <strong>Learn about DokuWiki</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/features" class="wikilink1" title="features" data-wiki-id="features">Features</a> & <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">reviews</a> </div> </li> <li class="level1"><div class="li"> <a href="/install" class="wikilink1" title="install" data-wiki-id="install">Installation guide</a></div> </li> <li class="level1"><div class="li"> <a href="/manual" class="wikilink1" title="manual" data-wiki-id="manual">User manual</a> & <a href="/wiki:syntax" class="wikilink1" title="wiki:syntax" data-wiki-id="wiki:syntax">syntax</a></div> </li> <li class="level1"><div class="li"> <a href="/changes" class="wikilink1" title="changes" data-wiki-id="changes">Release notes</a></div> </li> <li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq" data-wiki-id="faq">FAQ</a></div> </li> </ul> <p> <strong>Advanced Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/extensions" class="wikilink1" title="extensions" data-wiki-id="extensions">Extensions</a></div> </li> <li class="level1"><div class="li"> <a href="/development" class="wikilink1" title="development" data-wiki-id="development">Development manual</a></div> </li> </ul> <p> <strong>Corporate Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/faq:support" class="wikilink1" title="faq:support" data-wiki-id="faq:support">Get support</a></div> </li> <li class="level1"><div class="li"> <a href="/donate" class="wikilink1" title="donate" data-wiki-id="donate">Donations</a></div> </li> </ul> <p> <strong>Our Community</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/teams:getting_involved" class="wikilink1" title="teams:getting_involved" data-wiki-id="teams:getting_involved">Get involved</a></div> </li> <li class="level1"><div class="li"> <a href="/dokuinstall" class="wikilink1" title="dokuinstall" data-wiki-id="dokuinstall">Users</a></div> </li> <li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org">User forum</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Development mailinglist</a></div> </li> </ul> <hr /> <p> Follow us on <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Mastodon</a> and other <a href="/social" class="wikilink1" title="social" data-wiki-id="social">social networks</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Our Privacy Policy</a> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>plugin:strata</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Table of Contents</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#strata_plugin">Strata Plugin</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#installation">Installation</a></div></li> <li class="level2"><div class="li"><a href="#examples_usage">Examples/Usage</a></div></li> <li class="level2"><div class="li"><a href="#syntax">Syntax</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#data_block">Data Block</a></div></li> <li class="level3"><div class="li"><a href="#tables_and_lists">Tables and Lists</a></div></li> <li class="level3"><div class="li"><a href="#types">Types</a></div></li> <li class="level3"><div class="li"><a href="#aggregates">Aggregates</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#configuration_and_settings">Configuration and Settings</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#database_drivers">Database Drivers</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#faq">FAQ</a></div></li> <li class="level2"><div class="li"><a href="#tutorials">Tutorials</a></div></li> <li class="level2"><div class="li"><a href="#bugs_feature_requests_and_patches">Bugs, Feature Requests and Patches</a></div></li> </ul></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="strata_plugin">Strata Plugin</h1> <div class="level1"> <div class="pluginrepo_entry"><div class="usageInfo"><div class="compatibility"><p class="label">Compatible with DokuWiki</p><div class="versions"><ul><li class="yes">2024-02-06 "Kaos" <strong><span>yes</span></strong></li><li class="yes">2023-04-04 "Jack Jackrum" <strong><span>yes</span></strong></li><li class="">2022-07-31 "Igor" <strong><span>unknown</span></strong></li><li class="">2020-07-29 "Hogfather" <strong><span>unknown</span></strong></li></ul></div></div><ul class="actions"><li><a class="download" href="https://github.com/fkaag71/dokuwiki-strata/zipball/master">Download</a></li><li><a class="bugs" href="https://github.com/fkaag71/dokuwiki-strata/issues">Report bugs</a></li></ul><div class="clearer"></div></div><div class="mainInfo"><p class="description"><a class="media" href="/plugins"><img alt="plugin" class="medialeft" src="/lib/plugins/pluginrepo/images/dwplugin.png" width="60" height="60" /></a> Add and query semi-structured data in your wiki</p></div><div class="metaInfo"><dl><dt>Last updated on</dt><dd>2024-09-27</dd><dt>Provides</dt><dd><a href="/plugins?plugintype=1#extension__table" class="wikilink1" title="List all Syntax plugins">Syntax</a>, <a href="/plugins?plugintype=16#extension__table" class="wikilink1" title="List all Helper plugins">Helper</a>, <a href="/plugins?plugintype=4#extension__table" class="wikilink1" title="List all Action plugins">Action</a></dd><dt>Repository</dt><dd><a class="urlextern" href="https://github.com/fkaag71/dokuwiki-strata/">Source</a></dd><dt>Conflicts with</dt><dd><a href="/plugin:caption" class="wikilink1" title="plugin:caption" data-wiki-id="plugin:caption">caption</a></dd></dl></div><div class="moreInfo"><p class="similar">Similar to <a href="/plugin:data" class="wikilink1" title="plugin:data" data-wiki-id="plugin:data">data</a>, <a href="/plugin:data-au" class="wikilink1" title="plugin:data-au" data-wiki-id="plugin:data-au">data-au</a>, <a href="/plugin:fields" class="wikilink1" title="plugin:fields" data-wiki-id="plugin:fields">fields</a>, <a href="/plugin:json" class="wikilink1" title="plugin:json" data-wiki-id="plugin:json">json</a>, <a href="/plugin:jsoneditor" class="wikilink1" title="plugin:jsoneditor" data-wiki-id="plugin:jsoneditor">jsoneditor</a>, <a href="/plugin:struct" class="wikilink1" title="plugin:struct" data-wiki-id="plugin:struct">struct</a></p><p class="tags">Tagged with <a href="/plugins?plugintag=data#extension__table" class="wikilink1" title="List all plugins with this tag">data</a>, <a href="/plugins?plugintag=database#extension__table" class="wikilink1" title="List all plugins with this tag">database</a>, <a href="/plugins?plugintag=listing#extension__table" class="wikilink1" title="List all plugins with this tag">listing</a>, <a href="/plugins?plugintag=mysql#extension__table" class="wikilink1" title="List all plugins with this tag">mysql</a>, <a href="/plugins?plugintag=postgresql#extension__table" class="wikilink1" title="List all plugins with this tag">postgresql</a>, <a href="/plugins?plugintag=sqlite#extension__table" class="wikilink1" title="List all plugins with this tag">sqlite</a>, <a href="/plugins?plugintag=tables#extension__table" class="wikilink1" title="List all plugins with this tag">tables</a></p></div><div class="authorInfo"><strong>By <a href="mailto:francois%20%5Bdot%5D%20kaag%20%5Bat%5D%20cardynal%20%5Bdot%5D%20fr" class="mail" title="francois [dot] kaag [at] cardynal [dot] fr">François Kaag</a></strong></div></div> <p> This plugin was originally created by <a href="mailto:brend%2Bstrata%20%5Bat%5D%2013w%20%5Bdot%5D%20nl" class="mail" title="brend+strata [at] 13w [dot] nl">Brend Wanders</a>. Although he could not maintain it any longer after 2021, it is still useful, since no other data plugin seems to propose graph based queries that fit extremely well with the Wiki structure. </p> <p> The Strata plugin allows you to add data to your pages, just like the <a href="/plugin:data" class="wikilink1" title="plugin:data" data-wiki-id="plugin:data">data</a> plugin. You can think of this data either as named values attached to the page, or as describing things on the page in a more structured way. </p> <p> Though a little more complex than the <a href="/plugin:data" class="wikilink1" title="plugin:data" data-wiki-id="plugin:data">data</a> plugin, Strata allows you to create tables that combine data from different pages. Strata also supports previewing your edits showing you the correctly changed data, and has a flexible and user-controlled data type display. Finally, you can put multiple data entries on a single page, and have them combined or remain separate depending on how you want to model your data. </p> <p> <strong>Requirements:</strong> </p> <ul> <li class="level1"><div class="li"> Strata requires PHP 5.6.x</div> </li> <li class="level1"><div class="li"> <a href="http://www.php.net/manual/en/ref.pdo-sqlite.php" class="urlextern" title="http://www.php.net/manual/en/ref.pdo-sqlite.php">pdo-sqlite</a> extension for accessing and creating the default data storage</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Strata Plugin] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="strata_plugin" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-1729" /><button type="submit" title="Strata Plugin">Edit</button></div></form></div> <h2 class="sectionedit2" id="installation">Installation</h2> <div class="level2"> <p> Search and install the plugin using the <a href="/plugin:extension" class="wikilink1" title="plugin:extension" data-wiki-id="plugin:extension">Extension Manager</a>. Refer to <a href="/plugins" class="wikilink1" title="plugins" data-wiki-id="plugins">Plugins</a> on how to install plugins manually. </p> <p> After installation, it might be useful to copy the contents <a href="https://github.com/fkaag71/dokuwiki-strata/blob/main/manual.txt" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/blob/main/manual.txt">manual.txt</a> on Github to a wiki page on your installation. This will put the <a href="/plugin:strata:reference_guide" class="wikilink1" title="plugin:strata:reference_guide" data-wiki-id="plugin:strata:reference_guide">reference guide</a> on your own wiki installation, complete with listing of available types and aggregates. </p> <p> Strata followes DokuWiki's <a href="/config:useheading" class="wikilink1" title="config:useheading" data-wiki-id="config:useheading">useheading</a> configuration when displaying links. Changing that setting will also adjust how Strata displays links, which might help with making a lot of the automatically generated listings and links look better. </p> </div> <div class="secedit editbutton_section editbutton_2"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Installation] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="installation" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1730-2454" /><button type="submit" title="Installation">Edit</button></div></form></div> <h2 class="sectionedit3" id="examples_usage">Examples/Usage</h2> <div class="level2"> <p> <em>For a separate page focusing only on examples and troubleshooting, see <a href="/plugin:strata:examples" class="wikilink1" title="plugin:strata:examples" data-wiki-id="plugin:strata:examples">Strata Plugin Examples</a>.</em> </p> <p> Below is a very simple example of how to use Strata. </p> <p> Add data to a page (let's say <code>people:john_doe</code>) with: </p> <pre class="code"><data person> Full Name: John Doe Age: 24 Contact [link]: john.doe@example.org Friends [ref]*: Alice, Bob </data></pre> <p> This will create a data block that looks like: </p> <div class="table sectionedit4"><table class="inline"> <tr class="row0"> <th class="col0 leftalign" colspan="2"> Page Title <em>(person)</em> </th> </tr> <tr class="row1"> <th class="col0 leftalign"> Full Name </th><td class="col1 leftalign"> John Doe </td> </tr> <tr class="row2"> <th class="col0 leftalign"> Age </th><td class="col1 leftalign"> 24 </td> </tr> <tr class="row3"> <th class="col0 leftalign"> Contact </th><td class="col1 leftalign"> <a href="mailto:john%20%5Bdot%5D%20doe%20%5Bat%5D%20example%20%5Bdot%5D%20org" class="mail" title="john [dot] doe [at] example [dot] org">john [dot] doe [at] example [dot] org</a> </td> </tr> <tr class="row4"> <th class="col0 leftalign"> Friends </th><td class="col1 leftalign"> <a href="/plugin:alice" class="wikilink2" title="plugin:alice" rel="nofollow" data-wiki-id="plugin:alice">Alice</a>, <a href="/plugin:bob" class="wikilink2" title="plugin:bob" rel="nofollow" data-wiki-id="plugin:bob">Bob</a> </td> </tr> </table></div> <div class="secedit editbutton_table editbutton_4"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Table] " /><input type="hidden" name="target" value="table" /><input type="hidden" name="hid" value="table" /><input type="hidden" name="range" value="2885-3159" /><button type="submit" title="Table">Edit</button></div></form></div> <p> Later on, you can make a list (to get a table, use <code><table></code> instead) of people with: </p> <pre class="code"><list ?person ?contact> ?person is a: person ?person Contact [link]: ?contact </list></pre> <p> You could also ask for a list of contact links of all people and the contact links of their friends: </p> <pre class="code"><list ?person ?fc> ?person is a: person ?friend is a: person ?person Friends [ref]: ?friend ?friend Contact [link]: ?fc </list></pre> <p> Note that by default, the results will be cached. So if you edit other pages, you'll need to refresh the page with the list yourself, or add <code>~~NOCACHE~~</code> to force dokuwiki to rerender. </p> <p> The next section will go over the syntax in more detail. </p> </div> <div class="secedit editbutton_section editbutton_3"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Examples/Usage] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="examples_usage" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="2455-3839" /><button type="submit" title="Examples/Usage">Edit</button></div></form></div> <h2 class="sectionedit5" id="syntax">Syntax</h2> <div class="level2"> <p> The strata plugin allows you to add data to your pages and to query that data from your pages. The quick guide will get you up and running with some examples of how to enter and query. More advanced uses are discussed in the <a href="/plugin:strata:reference_guide" class="wikilink1" title="plugin:strata:reference_guide" data-wiki-id="plugin:strata:reference_guide">reference guide</a>. </p> <p> A good way to get more experienced is to add some simple data to your wiki, and start querying it. Most error messages are descriptive enough to get some idea of what went wrong. </p> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Syntax] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="syntax" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="3840-4289" /><button type="submit" title="Syntax">Edit</button></div></form></div> <h3 class="sectionedit6" id="data_block">Data Block</h3> <div class="level3"> <p> Data entry is done with <code><data></code> tags. The following example is a data block for Jane Doe. The block is meant to add some extra data to the page it is on (we assume it is on the page <code>persons:jane_doe</code>). The example shows you how to add simple values, how to declare a class, and how to use types. </p> <pre class="code"><data person> Full Name: Jane Maria Doe Birthday [date]: 1982-7-23 </data></pre> <p> <strong>Simple Values</strong>: You add simple values to the data block by adding a line like <code>field: value</code>. The field and value are sometimes called the predicate and object respectively. </p> <p> <strong>Classes</strong>: You can add one or more classes to a data block by placing them in the opening tag. Classes are separated by spaces, so class names declared in this way can not contain spaces. (Note that declaring a class name is effectively the same as adding a <code>is a: person</code> field-value pair to the data block.) </p> <p> <strong>Types</strong>: You can add a <a href="#types" title="plugin:strata ↵" class="wikilink1">type</a> to use by putting the type between <code>[</code> and <code>]</code> after the field name. Types determine how the data is displayed, and how it is stored. </p> <p> The same example, but extended with more features: </p> <pre class="code"><data person> -- Simple field-value pairs Full Name: Jane Maria Doe Address: -- Types and Type Hint Birthday [date]: 1982-7-23 Birthplace [page::places]: Springfield -- Multiple values Contact [link]*: j.doe@example.com, http://www.facebook.com/Jane-Doe Contact [link]: jane.doe@workmail.com </data></pre> <p> <strong>Empty values</strong>: Any field that doesn't have a value is ignored. This way you can quickly write down some fields you want to use, but fill in their values later. </p> <p> <strong>Type hints</strong>: You can change how a <a href="#types" title="plugin:strata ↵" class="wikilink1">type</a> behaves by adding a type hint. Type hints are added by appending them to the type with <code>::</code>. For example <code>[page::places]</code> uses the page type, and will try to resolve values without an explicit namespace as if they were in the <code>places:</code> namespace. For a list of types and their hints, see <a href="#types" title="plugin:strata ↵" class="wikilink1">Types</a>. </p> <p> <strong>Multiple Values</strong>: You can have multiple values with a field. Do this by either putting a <code>*</code> after the field (or after the type, if it has any), or by simply adding the field multiple times. </p> <p> <strong>Comments</strong> All lines that start with double dashes (i.e., <code>--</code>) are ignored. Note that your comments can still be read by anyone viewing the source of the wiki page. </p> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Data Block] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="data_block" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="4290-6647" /><button type="submit" title="Data Block">Edit</button></div></form></div> <h3 class="sectionedit7" id="tables_and_lists">Tables and Lists</h3> <div class="level3"> <p> Queries are written inside <code><table></code> or <code><list></code> tags. You query the data by describing what pattern the data should fit. A simple example that produces a table of all persons and their birthday would be described as follows: </p> <pre class="code"><table ?p "Person" ?b "Birthday"> ?p is a: person ?p Birthday [date]: ?b ?b < 1990-1-1 </table></pre> <p> <strong>Patterns</strong>: You can use variables and literals to describe what data you want to match. The patterns should be written down in lines, with each line formatted like <code>subject field: value</code>. </p> <p> For example, <code>?p is a: person</code> will match any subject that has field <code>is a</code> and value <code>person</code> to variable <code>?p</code>. </p> <p> Variables are indicated with the <code>?</code>. You can use a variable in any spot (except types or type hints). For example <code>?p ?k [date]: 1982-7-23</code> to find out who has what relation to the date 1982-7-23. </p> <p> Literals can be written down verbatim, except for subject literals. These should be enclosed in <code>[[</code> and <code>]]</code>. For example <code>[[persons:jane_doe]] Address: ?a</code> to get the address associated with Jane Doe. </p> <p> <strong>Types</strong>: In a query, you can use <a href="#types" title="plugin:strata ↵" class="wikilink1">types</a>. You can use types for fields and values, and you can use them in the opening tag. Types are 'sticky': if you put <code>?p Birthday [date]: ?b</code> the date type will automatically stick to the <code>?b</code> variable (you could have achieved the same with <code>?p Birthday: ?b [date]</code>). </p> <p> <strong>Comparisons</strong>: You can use normal operators (e.g, <code><</code>, <code>></code>, <code>>=</code>, <code><=</code>, <code>=</code>, <code>!=</code>) to compare values. A variable's type will be taken into account for the comparison. </p> <p> You can only compare variables that are used in a pattern. </p> <p> <strong>Captions</strong>: You can put captions in the opening tag to change the caption of the column. Captions are not displayed by lists, but are still used to add names to the filtering and sorting interface. </p> <pre class="code"><table ?p "Person" ?address@count "# of Addresses" ?address> ?p is a: person optional { ?p Address: ?address } minus { ?p Contact: ?c } group { ?p } sort { ?address (desc) } ui { Person { filter: select } Address { filter: text } } </table></pre> <p> <strong>Aggregates</strong>: Variables can have multiple values (usually through grouping). You can apply an aggregate function to the variable's values by adding it to any variable in the opening tag with <code>@</code>. For example <code>?address@count</code> will apply the count aggregate to the values in <code>?address</code>. For more on aggregates, see <a href="#aggregates" title="plugin:strata ↵" class="wikilink1">Aggregates</a>. </p> <p> <strong>Optional matches</strong>: Normally, all patterns must be matched for the results to be shown. You can use an <code>optional</code> block to indicate that some of the patterns are optional, and need not be matched for the results to be shown. All patterns in an optional block must match for the optional block to be used. If any pattern in the block doesn't match, none of the patterns in the block will be used. </p> <p> You can have multiple optional blocks. You can even have optional blocks inside optional blocks. </p> <p> <strong>Exclusions</strong>: With the <code>minus</code> block, you can declare that the data is not allowed to match certain patterns. In this case, the results are not allowed to have contact information. </p> <p> <strong>Grouping</strong>: By adding a <code>group</code> block zero or more variables can be grouped. This means that all results that have the same value for the grouped variable will be merged, and the ungrouped variables will contain multiple values. You can name one variable per line. If the <code>group</code> is empty <em>all</em> results will be merged into a single result. </p> <p> <strong>Sorting</strong>: By adding <code>sort</code> you can define one or more variables to sort on. You can name one variable per line, and include a direction with <code>(ascending)</code> or <code>(descending)</code> (or their short-hands <code>(asc)</code> and <code>(desc)</code>). </p> <p> <strong>User Interface</strong>: By adding <code>ui</code> you can define how and if the user interface allows filtering (and sorting) on the client. </p> <p> <strong>Comments</strong>: As with a data block, you can use <code>--</code> at the start of a line to add comments. </p> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Tables and Lists] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="tables_and_lists" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="6648-10642" /><button type="submit" title="Tables and Lists">Edit</button></div></form></div> <h3 class="sectionedit8" id="types">Types</h3> <div class="level3"> <p> Types are normally indicated by putting them between <code>[</code> and <code>]</code>. Type hints are noted after the type itself in the following format: <code>[type::hint]</code> </p> <p> On your own wiki, you can get a list of all available types with <code>~~INFO:stratatypes~~</code>. Below are some of the commonly used types: </p> <ul> <li class="level1"><div class="li"> <strong>date</strong> (type hint: different date format)<br/> Stores and displays dates in the YYYY-MM-DD format. The optional hint can give a different format to use (as described by <a href="https://secure.php.net/datetime.createfromformat" class="interwiki iw_phpfn" title="https://secure.php.net/datetime.createfromformat">date_create_from_format</a>). (numeric)</div> </li> <li class="level1"><div class="li"> <strong>image</strong> (type hint: size to scale the image to)<br/> Displays an image. The optional hint is treated as the size to scale the image to. Give the hint in WIDTHxHEIGHT format.</div> </li> <li class="level1"><div class="li"> <strong>link</strong> (type hint: The link title)<br/> Creates a link. This type is multi-purpose: it handles external links, interwiki links, email addresses, windows shares and normal wiki links (basically any link DokuWiki knows of). The optional hint will be used as link title.</div> </li> <li class="level1"><div class="li"> <strong>ref</strong> (type hint: namespace)<br/> References another piece of data or wiki page, and creates a link. An optional hint can be given to change how links are interepreted when saving them: if present, the hint is used as namespace for the link. If the hint ends with a #, all values will be treated as fragments.</div> </li> <li class="level1"><div class="li"> <strong>title</strong> is identical to <strong>ref</strong>, except that the page heading will be used instead of the page name to display the link.</div> </li> <li class="level1"><div class="li"> <strong>wiki</strong><br/> Allows the use of dokuwiki syntax; only non-block syntax is allowed (only links, formatting, etc.; no tables, headers, and other large stuff). The hint is ignored.</div> </li> <li class="level1"><div class="li"> <strong> enum</strong> (type hint: value set name)<br/> Searches the entry in the value set, a <code><data></code> block where rows are in the form <code>label: entry</code>, and displays the label corresponding to the entry, or #NA if no correspondence was found.</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_8"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Types] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="types" /><input type="hidden" name="codeblockOffset" value="4" /><input type="hidden" name="range" value="10643-12502" /><button type="submit" title="Types">Edit</button></div></form></div> <h3 class="sectionedit9" id="aggregates">Aggregates</h3> <div class="level3"> <p> Aggregates are used on displays of variables. They are attached to the variable with <code>@</code>, for example: <code>?x@unique</code> applies the unique aggregate to the values of variables <code>?x</code>. Aggregates can be passed a hint by adding the hint between parenthesis: <code>?variable@aggregate(hint)</code>. </p> <p> On your own wiki, you can get a list of all available aggregates with <code>~~INFO:strataaggregates~~</code>. Below are some commonly used aggregates: </p> <ul> <li class="level1"><div class="li"> <strong>count</strong><br/> Counts the number of items.</div> </li> <li class="level1"><div class="li"> <strong>max</strong> (aggregate hint: 'strict' to ignore non-numeric values)<br/> Returns the maximum value. Any item that does not have a clear numeric value (i.e. starts with a number) is counted as 0. If the 'strict' hint is used, values that are not strictly numeric (i.e. contains only a number) are ignored. (numeric)</div> </li> <li class="level1"><div class="li"> <strong>sum</strong> (aggregate hint: 'strict' to leave non-numeric values)<br/> Sums up all items. Any item that does not have a clear numeric value (i.e. starts with a number) is counted as 0. If the 'strict' hint is used, values that are not strictly numeric (i.e. contains only a number) are left intact. (numeric)</div> </li> <li class="level1"><div class="li"> <strong>unique</strong><br/> Removes all duplicates.</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_9"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Aggregates] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="aggregates" /><input type="hidden" name="codeblockOffset" value="4" /><input type="hidden" name="range" value="12503-13672" /><button type="submit" title="Aggregates">Edit</button></div></form></div> <h2 class="sectionedit10" id="configuration_and_settings">Configuration and Settings</h2> <div class="level2"> <p> The following settings are available: </p> <ul> <li class="level1"><div class="li"> <strong>Default value type</strong> (<em>Default:</em> <code>[text]</code>): The default type to use for any value that does not have a determinable type. It is possible to give a type hint in the same field, e.g. <code>[type::hint]</code>.</div> </li> <li class="level1"><div class="li"> <strong>Default predicate type</strong> (<em>Default:</em> <code>[text]</code>): The type to use to normalize (and display) predicates. It is possible to give a hint (e.g. <code>[ref::predicates#]</code>). Note that changing this option might make your current data unqueryable.</div> </li> <li class="level1"><div class="li"> <strong>Default database source name</strong> (<em>Default:</em> <code>sqlite:@METADIR@/strata.sqlite</code>): The <a href="https://secure.php.net/PDO" class="interwiki iw_phpfn" title="https://secure.php.net/PDO">PDO</a> data source name used to connect to the database. The <code>@METADIR@</code> token will be replaced with the path of DokuWiki's meta data directory.</div> </li> <li class="level1"><div class="li"> <strong>The name of the 'is a' relation</strong> (<em>Default:</em> <code>is a</code>): The predicate that should be used to indicate the 'is a' relation. This is used when you enter a data block with one or more classes.</div> </li> <li class="level1"><div class="li"> <strong> Data scope reduced to the current namespace </strong> (<em>Default:</em> <code>inactive</code>): When set, only the triples within the current namespace are considered in expressions.</div> </li> <li class="level1"><div class="li"> <strong>The name of the 'entry title' relation</strong> (<em>Default:</em> <code>entry title</code>): The predicate that should be used to indicate the 'entry title' relation. The 'entry title' relation links a human readable label to the data entry. Normally, this is done automatically by the data block syntax, this setting only changes the relation used to attach the title to the data.</div> </li> <li class="level1"><div class="li"> <strong>Enable debug information?</strong> (<em>Default:</em> no): Tick this box if you want to have more extensive information on what's going wrong. For example, use it when the connection to the database fails.</div> </li> <li class="level1"><div class="li"> <strong>Is the data entry syntax enabled?</strong> (<em>Default:</em> yes): Uncheck this box if you want to disable the data blocks for entry.</div> </li> </ul> <p> Furthermore, the following DokuWiki settings are relevant: </p> <ul> <li class="level1"><div class="li"> <strong><a href="/config:useheading" class="wikilink1" title="config:useheading" data-wiki-id="config:useheading">useheading</a></strong>: adjusts how links are displayed</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_10"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Configuration and Settings] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="configuration_and_settings" /><input type="hidden" name="codeblockOffset" value="4" /><input type="hidden" name="range" value="13673-15645" /><button type="submit" title="Configuration and Settings">Edit</button></div></form></div> <h3 class="sectionedit11" id="database_drivers">Database Drivers</h3> <div class="level3"> <p> The Strata plugin will construct the necessary tables and indices itself. You only have to set up the database itself. </p> </div> <h4 id="sqlite">SQLite</h4> <div class="level4"> <p> <em>DSN:</em> <code>sqlite:/path/to/database/file</code> (See <a href="https://secure.php.net/ref.pdo-sqlite" class="interwiki iw_phpfn" title="https://secure.php.net/ref.pdo-sqlite">PDO SQLite</a>) </p> <p> SQLite is a simple on-disk database that does not require setting up a server or managing users. The SQLite driver is the default driver. </p> <p> <strong>Set-up</strong>: The SQLite driver requires no set-up if you use the default path. If you use another path than the default path, make sure that your web server has write access to the directory the database resides in, this is required by SQLite. </p> </div> <h4 id="mysql">MySQL</h4> <div class="level4"> <p> <em>DSN:</em> <code>mysql:host=localhost;dbname=testdb</code> (See <a href="https://secure.php.net/ref.pdo-mysql" class="interwiki iw_phpfn" title="https://secure.php.net/ref.pdo-mysql">PDO MySQL</a>) </p> <p> Uses the MySQL DMBS to store and retrieve triples. Credentials can only be used through the <a href="#credentials_file" title="plugin:strata ↵" class="wikilink1">credentials file</a>. </p> <p> <strong>Set-up</strong>: the MySQL driver requires you to set up a database in the MySQL server. An example is given here, but refer to the MySQL manual for details on creating databases and adding users. </p> <p> The following snippet will create a database called <code>strata</code>, make sure to replace <code>username</code> and <code>password</code> with other values. </p> <pre class="code sql"><span class="kw1">CREATE</span> <span class="kw1">DATABASE</span> strata; <span class="kw1">GRANT</span> <span class="kw1">ALL</span> <span class="kw1">ON</span> strata<span class="sy0">.*</span> <span class="kw1">TO</span> <span class="st0">'username'</span>@localhost <span class="kw1">IDENTIFIED</span> <span class="kw1">BY</span> <span class="st0">'password'</span>;</pre> <p> After the creation of the database you'll have to set up the <a href="#credentials_file" title="plugin:strata ↵" class="wikilink1">credentials file</a> as described below. </p> <p> Finally, set the DSN to: <code>mysql:host=localhost;dbname=strata</code> </p> </div> <h4 id="postgresql">PostgreSQL</h4> <div class="level4"> <p> <em>DSN:</em> <code>pgsql:host=localhost;port=5432;dbname=testdb;user=myuser;password=mypass</code> (See <a href="https://secure.php.net/ref.pdo-pgsql" class="interwiki iw_phpfn" title="https://secure.php.net/ref.pdo-pgsql">PDO PostgreSQL</a>) </p> <p> Uses the PostgreSQL DMBS to store and retrieve triples. Credentials can be given in the DSN, or through the <a href="#credentials_file" title="plugin:strata ↵" class="wikilink1">credentials file</a>. However, if you specify a user and password in the DSN, the credentials file will be ignored. </p> <p> <strong>Set-up</strong>: The PostgreSQL driver requires you to set up a database before using it. An example is given here, but you should refer to the PostgreSQL manual for details on database and user creation. </p> <p> The following snippet will create a user called <code>strata</code> without a password. It will also create a database with the name <code>strata</code>, the database has the correct locale settings for use of UTF-8. </p> <pre class="code shell">createuser -SDR strata createdb -l "en_US.UTF-8" -E UTF8 -T template0 strata</pre> <p> Next, set the DSN to: <code>pgsql:host=localhost;port=5432;dbname=strata;user=strata</code> </p> </div> <h4 id="credentials_file">Credentials File</h4> <div class="level4"> <p> Unfortunately, the MySQL PDO driver does not allow the use of a user and password field in the DSN. To enable the use of password protected databases, you can give the username and password in a small file. The file is called <code>credentials.local.php</code> and should be placed in the strata plugin directory (normally <code><path to dokuwiki>/lib/plugins/strata</code>). </p> <p> The credentials file should have the following content </p> <dl class="file"> <dt><a href="/_export/code/plugin:strata?codeblock=6" title="Download Snippet" class="mediafile mf_php">credentials.local.php</a></dt> <dd><pre class="code file php"><span class="kw2"><?php</span> <span class="kw1">if</span><span class="br0">(</span><span class="sy0">!</span><a href="http://www.php.net/defined"><span class="kw3">defined</span></a><span class="br0">(</span><span class="st_h">'DOKU_INC'</span><span class="br0">)</span><span class="br0">)</span> <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a> <span class="br0">(</span> <span class="st_h">'username goes here'</span><span class="sy0">,</span> <span class="st_h">'password goes here'</span> <span class="br0">)</span><span class="sy0">;</span></pre> </dd></dl> <p> It is advisable to use <code>.htaccess</code> and file system rights to make sure this file is not readable by outsiders. (You can also edit <code>driver/driver.php</code> to change where Strata looks for the file.) </p> </div> <h4 id="change_log">Change Log</h4> <div class="level4"> <p> After adoption: </p> <ul class="rss"><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/18f9272a602e4ce337cb918e4a294e94553ca15b" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/18f9272a602e4ce337cb918e4a294e94553ca15b">Add the Title type</a> (2024-09-27 11:29)</div></li><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/84c19ddfaa96288bb659b728b26c33aa7e40f9ee" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/84c19ddfaa96288bb659b728b26c33aa7e40f9ee">Fix typo</a> (2024-06-04 13:16)</div></li><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/5b1ccf784770423822a57eeb268566ad0e6200fa" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/5b1ccf784770423822a57eeb268566ad0e6200fa">Support the hint in ref typing</a> (2024-05-07 09:30)</div></li><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/6b2d0b9dd185a96a4e6337beddeed9fdb13686e1" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/6b2d0b9dd185a96a4e6337beddeed9fdb13686e1">Create plugin.info.txt</a> (2023-11-25 11:52)</div></li><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/acfca0a38a41ae4d1ef9a1c2b49f54eb7f4e64b9" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/acfca0a38a41ae4d1ef9a1c2b49f54eb7f4e64b9">Name HTML anchors for entries</a> (2023-11-25 11:51)</div></li><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/94005e5ca4cd60be90b5c9ce6520db59f8aa93bd" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/94005e5ca4cd60be90b5c9ce6520db59f8aa93bd">Fix previous update for PHP7 backward compatibility</a> (2023-11-03 18:00)</div></li><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/fccbf4c8a91c61d32b12bc9172d58fc602df0f15" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/fccbf4c8a91c61d32b12bc9172d58fc602df0f15">Support enum from different namespace</a> (2023-11-03 17:50)</div></li><li><div class="li"><a href="https://github.com/fkaag71/dokuwiki-strata/commit/239003cc26ff7f2eab854375cf7105601aa40f1f" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/commit/239003cc26ff7f2eab854375cf7105601aa40f1f">Change release date</a> (2023-10-10 15:33)</div></li></ul> <p> Before adoption: </p> <ul class="rss"><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/23c4c421c9b8d7033f56cce50bc77abf3e92f938" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/23c4c421c9b8d7033f56cce50bc77abf3e92f938">Update README.md</a> (2022-01-17 09:54)</div></li><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/9581e33fa6d5cfd9a9f4b1ac53bfe90bb5c6a315" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/9581e33fa6d5cfd9a9f4b1ac53bfe90bb5c6a315">Update plugin.info.txt for new version</a> (2021-12-17 16:14)</div></li><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/8af4df541c6250e75f26f5d62e45ead5cdf3a532" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/8af4df541c6250e75f26f5d62e45ead5cdf3a532">Merge pull request #54 from omerida/master</a> (2021-12-17 15:56)</div></li><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/f37dbc8b664f82ea764169b179b54031e6ee74bb" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/f37dbc8b664f82ea764169b179b54031e6ee74bb">Tells debug backtrace to ignore any arguments.</a> (2021-12-14 00:01)</div></li><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/b5b5f1594f1c2128c83bba051e5de93f2fe4f677" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/b5b5f1594f1c2128c83bba051e5de93f2fe4f677">Fixes other usages of implode to work in PHP 8.</a> (2021-12-13 23:59)</div></li><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/68335281330d1549e056d48561f7018368b0b172" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/68335281330d1549e056d48561f7018368b0b172">Merge pull request #53 from omerida/master</a> (2021-12-11 09:20)</div></li><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/33ac823d862b1a69957604ad14c05db7ff93da2f" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/33ac823d862b1a69957604ad14c05db7ff93da2f">Update syntax.php</a> (2021-12-11 07:54)</div></li><li><div class="li"><a href="https://github.com/bwanders/dokuwiki-strata/commit/0f9df67ac5b6a96cb53582423580fb17230524c5" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/commit/0f9df67ac5b6a96cb53582423580fb17230524c5">Update triples.php</a> (2021-12-11 07:53)</div></li></ul> </div> <div class="secedit editbutton_section editbutton_11"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Database Drivers] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="database_drivers" /><input type="hidden" name="codeblockOffset" value="4" /><input type="hidden" name="range" value="15646-19064" /><button type="submit" title="Database Drivers">Edit</button></div></form></div> <h2 class="sectionedit12" id="faq">FAQ</h2> <div class="level2"> <ul> <li class="level1 node"><div class="li"> The <a href="/plugin:sqlite" class="wikilink1" title="plugin:sqlite" data-wiki-id="plugin:sqlite">sqlite</a> plugin gives warnings that the <code>strata.sqlite</code> files needs to be renamed?</div> <ul> <li class="level2"><div class="li"> The <a href="https://github.com/bwanders/dokuwiki-strata/issues/9" class="urlextern" title="https://github.com/bwanders/dokuwiki-strata/issues/9">SQLite problems (#9)</a> issue describes the symptoms and offers two solutions.</div> </li> </ul> </li> </ul> </div> <div class="secedit editbutton_section editbutton_12"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[FAQ] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="faq" /><input type="hidden" name="codeblockOffset" value="7" /><input type="hidden" name="range" value="19065-19327" /><button type="submit" title="FAQ">Edit</button></div></form></div> <h2 class="sectionedit13" id="tutorials">Tutorials</h2> <div class="level2"> <p> Here you can find tutorials on Strata as YouTube videos or DokuWiki pages with many examples: </p> <ul> <li class="level1 node"><div class="li"> <a href="https://youtu.be/Tu_0PcIeHsY?si=fwL3ZBajk4geLwPj" class="urlextern" title="https://youtu.be/Tu_0PcIeHsY?si=fwL3ZBajk4geLwPj">YouTube: Strata</a> (German)</div> <ul> <li class="level2"><div class="li"> <a href="https://t.me/DokuWikiRu/1845" class="urlextern" title="https://t.me/DokuWikiRu/1845">In Russian (Auto-translation; Telegram)</a></div> </li> </ul> </li> <li class="level1"><div class="li"> <a href="https://ww-a.de/strata/" class="urlextern" title="https://ww-a.de/strata/">Strata-Tutorial</a> as a German-language DokuWiki page</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_13"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Tutorials] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="tutorials" /><input type="hidden" name="codeblockOffset" value="7" /><input type="hidden" name="range" value="19328-19691" /><button type="submit" title="Tutorials">Edit</button></div></form></div> <h2 class="sectionedit14" id="bugs_feature_requests_and_patches">Bugs, Feature Requests and Patches</h2> <div class="level2"> <p> Please submit bugs and feature requests in the <a href="https://github.com/fkaag71/dokuwiki-strata/issues" class="urlextern" title="https://github.com/fkaag71/dokuwiki-strata/issues">issue tracker on github</a>. The easiest way to submit patches is through forking on github and opening a pull request. Alternatively, patches can be sent in unified diff format or as git patches against the master branch. </p> </div> <div class="secedit editbutton_section editbutton_14"><form class="button btn_secedit" method="post" action="/plugin:strata"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1742667623" /><input type="hidden" name="summary" value="[Bugs, Feature Requests and Patches] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="bugs_feature_requests_and_patches" /><input type="hidden" name="codeblockOffset" value="7" /><input type="hidden" name="range" value="19692-" /><button type="submit" title="Bugs, Feature Requests and Patches">Edit</button></div></form></div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>plugin/strata.txt</bdi> · Last modified: <time datetime="2025-03-22T19:20:23+0100">2025-03-22 19:20</time> by <bdi>Aleksandr</bdi></div> <hr class="a11y" /> </div></main><!-- /content --> <!-- PAGE ACTIONS --> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading">Page Tools</h3> <div class="tools"> <ul> <li class="edit"><a href="/plugin:strata?do=edit" title="Edit this page [e]" rel="nofollow" accesskey="e"><span>Edit this page</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg></a></li><li class="revs"><a href="/plugin:strata?do=revisions" title="Old revisions [o]" rel="nofollow" accesskey="o"><span>Old revisions</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg></a></li><li class="backlink"><a href="/plugin:strata?do=backlink" title="Backlinks" rel="nofollow"><span>Backlinks</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg></a></li><li class="top"><a href="#dokuwiki__top" title="Back to top [t]" rel="nofollow" accesskey="t"><span>Back to top</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg></a></li> </ul> </div> </nav> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <footer id="dokuwiki__footer"><div class="pad"> <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <bdi><a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license" class="urlextern">CC Attribution-Share Alike 4.0 International</a></bdi></div> <div class="buttons"> <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a> <a href="https://www.dokuwiki.org/donate" title="Donate" ><img src="/lib/tpl/dokuwiki/images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" ><img src="/lib/tpl/dokuwiki/images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" ><img src="/lib/tpl/dokuwiki/images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" ><img src="/lib/tpl/dokuwiki/images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" ><img src="/lib/tpl/dokuwiki/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> <div style="margin-top: 2em; font-size:90%" class="dokuwiki"><div style="float:right"><a href="http://www.splitbrain.org/personal#imprint" style="float:right; text-decoration: none; color:#333">Imprint</a></div></div><!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer><!-- /footer --> </div></div><!-- /site --> <div class="no"><img src="/lib/exe/taskrunner.php?id=plugin%3Astrata&1742695530" width="2" height="1" alt="" /></div> <div id="screen__mode" class="no"></div></body> </html>