Difference between revisions of "WikiDB/Tutorial"
(Step 4 & closing comments) |
(→Step 2 - Defining A Table: tweaked) |
||
Line 47: | Line 47: | ||
Now we are going to try setting up a table definition, using the following data: | Now we are going to try setting up a table definition, using the following data: | ||
− | <data table="Companies2 | + | '''Row #1''': |
+ | Company name=Microsoft, | ||
+ | Founded= 1492, | ||
+ | Location=Seattle, | ||
+ | Annual revenue=$8 | ||
+ | '''Row #2''': | ||
+ | Founded=April 2005, | ||
+ | Revenue=$7.42, | ||
+ | Company name=Apple, | ||
+ | Logo=Image:Apple logo.png | ||
+ | '''Row #3''': | ||
+ | Name=Intel, | ||
+ | Founded=USA, | ||
+ | Logo=Image:Intel_logo.jpg | ||
+ | |||
+ | The data is defined using data tags, but I have not supplied a template, so they are hidden from view. | ||
+ | <data table="Companies2"> | ||
Company name=Microsoft | Company name=Microsoft | ||
Founded= 1492 | Founded= 1492 | ||
Location=Seattle | Location=Seattle | ||
Annual revenue=$8 | Annual revenue=$8 | ||
− | </data> | + | </data><data table="Companies2"> |
− | + | ||
− | <data table="Companies2 | + | |
Founded=April 2005 | Founded=April 2005 | ||
Revenue=$7.42 | Revenue=$7.42 | ||
Company name=Apple | Company name=Apple | ||
Logo=Image:Apple logo.png | Logo=Image:Apple logo.png | ||
− | </data> | + | </data><data table="Companies2"> |
− | + | ||
− | <data table="Companies2 | + | |
Name=Intel | Name=Intel | ||
Founded=USA | Founded=USA | ||
Logo=Image:Intel_logo.jpg | Logo=Image:Intel_logo.jpg | ||
</data> | </data> | ||
+ | Take a look at the definition of the table [[Table:Companies2]]. | ||
− | + | If you look at the data at the bottom of the table definition, you can see that the defined and undefined fields are separated out, and that data (e.g. Company name) is modified according to the field definitions. Unlike a normal database, changing the table definition does not alter the stored data, except in the way that it is displayed. In true wiki-way, both data and definition are editable separately, with any changes to either becoming visible as soon as the page is saved. | |
== Step 3 - Fixing errors == | == Step 3 - Fixing errors == |
Revision as of 02:18, 9 July 2006
Contents
Step 1 - Defining Data
Suppose you have a standard infobox, say Template:Infobox company. You use it in a page by entering the following syntax:
Year founded: 1492
Annual Revenue: $8
Which gives the following result:
Year founded: 1492
Annual Revenue: $8
In order to add this table to a database, you simply replace the above syntax with the following:
<data table="Companies" template="Infobox company"> name=Microsoft founded=1492 revenue=$8 </data>
This generates exactly the same output:
Year founded: 1492
Annual Revenue: $8
...BUT it also adds data to the Companies table. There is no definition for this table yet, but the data is there!
Data can be defined on any page in the wiki, and more than one row of data can be defined in a page. You get to group data with content, and still have it displayed in a standard format within the page.
You can omit the template parameter altogether, and the data will be hidden, or you can use the special name "default" to display the data in a standard format, as follows:
name | founded | revenue |
---|---|---|
Apple | 1984 | $7.42 |
Now, take a look at Table:Companies and you can see the above data in tabular form.
Step 2 - Defining A Table
Now we are going to try setting up a table definition, using the following data:
Row #1: Company name=Microsoft, Founded= 1492, Location=Seattle, Annual revenue=$8 Row #2: Founded=April 2005, Revenue=$7.42, Company name=Apple, Logo=Image:Apple logo.png Row #3: Name=Intel, Founded=USA, Logo=Image:Intel_logo.jpg
The data is defined using data tags, but I have not supplied a template, so they are hidden from view.
Take a look at the definition of the table Table:Companies2.
If you look at the data at the bottom of the table definition, you can see that the defined and undefined fields are separated out, and that data (e.g. Company name) is modified according to the field definitions. Unlike a normal database, changing the table definition does not alter the stored data, except in the way that it is displayed. In true wiki-way, both data and definition are editable separately, with any changes to either becoming visible as soon as the page is saved.
Step 3 - Fixing errors
In the above example, you may have noticed that there were two fields 'Name' and 'Annual revenue' which should have been 'Company name' and 'Revenue' respectively. In this case you can either go and fix each record, or define aliases for the incorrectly named fields.
I have defined the same data for Table:Companies3, which has aliases in place. Take a look and see what a difference it makes.
Step 4 - Retrieving data
Finally, you can pull data from the table for use within a page. This is the least well-implemented part of the extension at the moment, but I can give you some examples already. Each example shows the syntax entered, followed by the output it generates. All are drawn from Table:Companies3
<repeat table="Companies3"></repeat>
Company name | Logo | Founded | Location | Revenue |
---|---|---|---|---|
Intel | File:Intel logo.jpg | USA | ||
Microsof | 1492 | Seattle | $8 | |
Apple | File:Apple logo.png | April 2005 | $7.42 |
<repeat table="Companies3" sort="Revenue"></repeat>
Company name | Logo | Founded | Location | Revenue |
---|---|---|---|---|
Intel | File:Intel logo.jpg | USA | ||
Apple | File:Apple logo.png | April 2005 | $7.42 | |
Microsof | 1492 | Seattle | $8 |
<repeat table="Companies3" criteria="Name!=Microsoft" sort="Logo desc"></repeat>
Company name | Logo | Founded | Location | Revenue |
---|---|---|---|---|
Intel | File:Intel logo.jpg | USA | ||
Apple | File:Apple logo.png | April 2005 | $7.42 |
Closing comments
This extension is still in it's infancy, as is this tutorial. There are plenty of features yet to be added and no doubt a load of bugs to be ironed out. I would appreciate any feedback you have at this stage though, and feel free to use this wiki to experiment with the extension (though I would appreciate it if you didn't play with any of the tables used in this example).