Warning: Declaration of action_plugin_stratatemplatery::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /usr/home/nielsvantol/public_html/dragonseye/rpwiki/lib/plugins/stratatemplatery/action.php on line 24

Warning: Declaration of action_plugin_editx::register(&$contr) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /usr/home/nielsvantol/public_html/dragonseye/rpwiki/lib/plugins/editx/action.php on line 18

Warning: Declaration of action_plugin_templatery::register(Doku_Event_Handler &$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /usr/home/nielsvantol/public_html/dragonseye/rpwiki/lib/plugins/templatery/action.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/nielsvantol/public_html/dragonseye/rpwiki/lib/plugins/stratatemplatery/action.php:35) in /usr/home/nielsvantol/public_html/dragonseye/rpwiki/inc/auth.php on line 430

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/nielsvantol/public_html/dragonseye/rpwiki/lib/plugins/stratatemplatery/action.php:35) in /usr/home/nielsvantol/public_html/dragonseye/rpwiki/inc/Action/Export.php on line 103

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/nielsvantol/public_html/dragonseye/rpwiki/lib/plugins/stratatemplatery/action.php:35) in /usr/home/nielsvantol/public_html/dragonseye/rpwiki/inc/Action/Export.php on line 103
wiki:stratatemplatery

Table of Contents

Strata Templatery

Combining templates and data is a good way to display a lot of data while still keeping it readable.

Example

The Template

First we need a template:

name

Knows: knows

See the Templatery manual for more information on templates.

The Data

Second, we need some data:

Alice (example_person)
NameAlice the First
Knows_ref#Bob, #Donna
Bob (example_person)
NameBob the Builder
Knows_ref#Alice
Carol (example_person)
NameCarol the Third
Knows_ref#Donna, #Alice

Declaring data is done as described by Entering Data.

Entering data with a template

By giving a template in data entry, you can format an entry as well:

<data example_person #Donna>
template {
  wiki:stratatemplatery
}
Name: Donna the Doer
Knows_ref*: #Alice, #Carol
</data>

Donna the Doer

Knows:

Note: By prefixing a class with !, you can get a quick template on the data entry. Though this relies on being able to get the template from the template: namespace, and you can't use a #name style template. For example:

<data !example_person #Donna>
Name: Donna the Doer
Knows_ref*: #Alice, #Carol
</data>

This example would use the template:example_person template.

The View

Now we can combine the data and the template:

<view ?name ?knows>
template {
  manuals:stratatemplatery
}

?p is a: example_person
?p entry title: ?name
?p Knows_ref: ?knows

group {
  ?p
  ?name
}
</view>

The <view> works exactly like Asking Questions, with the addition of the template group.

The result:

Alice

Knows: #Bob, #Donna

Bob

Knows: #Alice

Carol

Knows: #Alice, #Donna

Donna

Knows: #Alice, #Carol

Lists

Lists can be template as well. This offers the option of displaying a list with customized items for each result.

<listview ?name ?knows>
?p is a: example_person
?p entry title: ?name
?p Knows_ref: ?knows

group {
  ?p
  ?name
}
<view>
**@@name@@** -> @@knows@@
</listview>

The example code will result in:

<listview ?name ?knows> ?p is a: example_person ?p entry title: ?name ?p Knows_ref: ?knows

group {

?p
?name

} <view> nameknows </listview>

Template with types

You can use types and aggregations in fields in the template. For example rating@max_stars will determine the maximum value of the 'rating' field in the query, and display this with the 'stars' type.

Typed Templates

You can use types in vanilla templates as well. This allows you to display nicer templates without extra effort.

typed

An example: a With explicit type: B_ref

When filled in with a_wiki=5 ^_^ + 7 8-) and b=playground:playground this gives the following:

An example: With explicit type: