Dplmatrix: Difference between revisions

From DynamicPageList3 Manual
Content added Content deleted
m (transcluding previously missing page)
m (Fixed typos)
Line 9: Line 9:
This function is a side entry into DPL.
This function is a side entry into DPL.


You pass an indented list and you get a matrix view back. With copy/paste you can easily transfer such a matrix to Excel and do some polishing there like turning column texts to vertical, highlight interesting cells etc..)
You pass an indented list and you get a matrix view back. With copy/paste you can easily transfer such a matrix to Excel and do some polishing there like turning column texts to vertical, highlight interesting cells etc…)


There are five parameters which MUST be given in the order listed here:
There are five parameters which MUST be given in the order listed here:
Line 15: Line 15:
# The symbol for cells which symbolize a link. Default is "x".
# The symbol for cells which symbolize a link. Default is "x".
# The symbol for cells which symbolize the absence of a link. Default is 'empty cell'.
# The symbol for cells which symbolize the absence of a link. Default is 'empty cell'.
# The mode ('normal' or 'flip'); default is 'normal'. When 'flip' is specified rows and columns will be exchanged.
# The mode ('normal' or 'flip'); default is 'normal'. When 'flip' is specified, rows and columns will be exchanged.
# The indented list.
# The indented list.
#* source items must start in column 1
#* source items must start in column 1
#* target items must be indented by at least one space
#* target items must be indented by at least one space
#* after the item name you can add ~~ and a 'label'. Row and column titles of the matrix will contain hyperlinks to the items. If lables are specified they will be used instead of the item names.
#* after the item name you can add ~~ and a 'label'. Row and column titles of the matrix will contain hyperlinks to the items. If labels are specified, they will be used instead of the item names.
#* lines which are empty or contain only spaces are silently ignored.
#* lines which are empty or contain only spaces are silently ignored.
#* if a source line is not followed by one or more target lines an empty table row (or column in flip mode) will be shown.
#* if a source line is not followed by one or more target lines an empty table row (or column in flip mode) will be shown.

Revision as of 22:24, 5 March 2022

Manual dplmatrix

Syntax

 {{#dplmatrix: name | yes | no | mode | '''indented_list''' }}

Effect

This function is a side entry into DPL.

You pass an indented list and you get a matrix view back. With copy/paste you can easily transfer such a matrix to Excel and do some polishing there like turning column texts to vertical, highlight interesting cells etc…)

There are five parameters which MUST be given in the order listed here:

  1. The name of the matrix. Appears in the upper left cell. Arbitrary wiki formatting (even images) are possible.
  2. The symbol for cells which symbolize a link. Default is "x".
  3. The symbol for cells which symbolize the absence of a link. Default is 'empty cell'.
  4. The mode ('normal' or 'flip'); default is 'normal'. When 'flip' is specified, rows and columns will be exchanged.
  5. The indented list.
    • source items must start in column 1
    • target items must be indented by at least one space
    • after the item name you can add ~~ and a 'label'. Row and column titles of the matrix will contain hyperlinks to the items. If labels are specified, they will be used instead of the item names.
    • lines which are empty or contain only spaces are silently ignored.
    • if a source line is not followed by one or more target lines an empty table row (or column in flip mode) will be shown.
    • if the same source line appears multiple times, the targets will be joined (added).

The idea is that you can generate the indented list by DPL statements. See the following example:


Test Matrix

Below is an example of a test matrix.

Generating a matrix from an indented list

Input is:

one
 apple
 apricot
two ~~ Two
 banana
three
four
 grape
 mango ~~ MANGO
two ~~ Two
   mango ~~ MANGO

Output is:

normal flipped
{{#dplmatrix:a simple demo matrix||||
one
 apple
 apricot
two ~~ Two
 banana
three
four
 grape
 mango ~~ MANGO
two ~~ Two
   mango ~~ MANGO
}}
{{#dplmatrix:a simple demo matrix|<big>•</big>|.|flip|
one
 apple
 apricot
two ~~ Two
 banana
three
four
 grape
 mango ~~ MANGO
two ~~ Two
   mango ~~ MANGO
}}

{{#dplmatrix:a simple demo matrix|||| one

apple
apricot

two ~~ Two

banana

three four

grape
mango ~~ MANGO

two ~~ Two

  mango ~~ MANGO

}}

{{#dplmatrix:a simple demo matrix||.|flip| one

apple
apricot

two ~~ Two

banana

three four

grape
mango ~~ MANGO

two ~~ Two

  mango ~~ MANGO

}}

  • "from" items ("source") start in col 1
  • "to" items ("target") are indented by at least one space
  • source appears in input sequence
  • target is sorted by alphabet
  • items are treated as pages and shown as a link
  • the label can be defined by adding it after the iterm, separated by "~~"
  • symbols for "yes" and "no" can be defined
  • via the stylesheet in Mediawiki:Common.css you can control the layout (class=dplmatrix)

Links to DPL Manual pages

Now we use two nested DPL queries and what would be a separate page, Test matrix2, to generate the indented list:

{{#dplmatrix:''links from articles to one of the Primary Module pages''|'''x'''|-|flip|
  {{#dpl:
    |debug=1
    |category=All DPL3
    |count=5
    |format=,%PAGE% ~~ %TITLE%\n²{:Test matrix2¦page=%PAGE%¦category=All DPL3¦namespace=}²,
  }}
}}

Result:
{{#dplmatrix:links from articles to the DPL manual|x|-|flip|

 {{#dpl:
   |debug=1
   |category=All DPL3
   |count=5
   |format=,%PAGE% ~~ %TITLE%\n²{:Test matrix2¦page=%PAGE%¦category=All DPL3¦namespace=}²,
 }}

}}


Contents of Test matrix2:

{{#dpl:
 |debug=1
 |{{#if:{{{namespace|}}}|{{#ifeq:{{{namespace}}}|main|namespace=|namespace={{{namespace}}}|}}}}
 |{{#if:{{{category|}}}|category={{{category}}}}}
 |linksfrom={{{page}}}
 |shownamespace=no
 |count=5
 |format=,   %PAGE% ~~ %TITLE%\n,
}}