voor developers
CRUD is een letterwoord dat staat voor de vier basisbewerkingen op een databasetabel:
CRUD is volledig geïntegreerd in TRImax. Met CRUD kan de content van een tabel beheerd worden die in een MOD gebruikt wordt om herhalende gegevens op de website te presenteren.Het volstaat om in config.php
in $config["crud"]
de metagegevens van de tabel en de kolommen te definiëren.
Om de designer toe te laten de stijl van de invulformulieren te kunnen aanpassen, worden blokjes html opgenomen in de metadata die het invulveld beschrijven.
Er zijn twee soorten metagegevens
algemeen: $config["crud"]["tabelnaam"]["=TABLE="]["metaparameter”] = "waarde";
algemeen: $config["crud"]["tabelnaam"]["kolomnaam"]["metaparameter”] = "waarde";
1
2
3
4
5
6
7
SORT BY
WHERE
voorbeeld
$config["crud"]["applicusers"]["=TABLE="]=array(
"DIVTABLECLASS"=>"",
"TABLECLASS"=>"tablecrud",
"DIVFORMCLASS"=>"table-wrapper crudtable",
"FORMCLASS"=>"",
"TRTHCLASS"=>"trthclass",
"TRTDCLASS"=>"trtdclass",
"READTITLE"=>"<i class='icon icon-table' style='font-size: 2.5em; padding-right: 1em;'></i>",
"CREATETITLE"=>"<i class='icon icon-plus-sign' style='font-size: 2.5em; padding-right: 1em;'></i>",
"UPDATECOLTITLE"=>"upd",
"UPDATECOLTD"=>"<i class='icon icon-pencil'></i>",
"DELETECOLTITLE"=>"del",
"DELETECOLTD"=>"<i class='icon icon-trash'></i>",
"SORT"=>"familienaam,voornaam",
"FILTER"=>"",
"PAGING"=>""
);
Elke kolom van de databasetabel heeft een aantal metadata voor de lijst (LIST) en voor het formulier (FORM).
LIST
FORM
id
)verplichte placeholders in FORMHTML
optionele placeholder in FORMHTML
Er zijn drie mogelijkheden om de FIELDLIST samen te stellen:
De FIELDLIST laat toe relationele gegevens via een query uit de database op te halen, indien de waarden van de (select, radio, checkbox) zich bevinden in een andere tabel.
voorbeeld: "FIELDLIST"=>"SELECT artnr,artomschrijving FROM artikels ORDER BY volgorde",
wordt later aangevuld
Het is ook mogelijk een vaste lijst met waarden op te geven, als een JSON-lijst. Een JSON-lijst start met een {
en eindigt met een }
; de paren worden gedefinieerd met dubbel quotes
(verplichte JSON-standaard) en een dubbel punt
als volgt:
"key":"label"
voorbeeld: "FIELDLIST"=>'{"M":"man","V":"vrouw","X":"anders"}',
voorbeeld
$config["crud"]["applicusers"]["familienaam"]=array(
"LISTORDER"=>1,
"LISTTITLE"=>"familienaam",
"LISTALIGN"=>"",
"LISTWIDTH"=>"30%",
"FORMORDER"=>1,
"FORMLABEL"=>"familienaam",
"FORMTYPE"=>"text",
"FORMREQUIRED"=>1,
"FORMHTML"=>"
<div class='form-group'>
<input type='text' name='#dbtable_#fieldname' id='#dbtable_#fieldname' value='#fieldvalue' placeholder='...' class='form-control' />
</div>
");
Er zijn zes types input
die in CRUD kunnen gebruikt worden:
Hieronder enkele voorbeelden van html-code voor elk van deze types; het is de bedoeling dat de designer de customclass
vervangt door een relevante class uit zijn css-classes.
"HTML"=>"
<div class='customclass'>
<input type='text' name='#dbtable_#fieldname' id='#dbtable_#fieldname' value='#fieldvalue' placeholder='...' />
</div>
",
"HTML"=>"
<div class='customclass'>
<textarea name='#dbtable_#fieldname' id='#dbtable_#fieldname' rows='6' placeholder='...'>#fieldvalue
</div>
",
"HTML"=>"
<div class='customclass'>
<div class='select-wrapper'>
<select name='#dbtable_#fieldname' id='#dbtable_#fieldname'>
#fieldlist
</select>
</div>
</div>
",
"FIELDLIST"=>"SELECT volgorde,volgorde AS volgordeval FROM triosprojecten ORDER BY volgorde",
*OR* "FIELDLIST"=>'{"1":"TRImax 1","2":"TRImax 2","3":"TRImax 3","9":"maatwerk"}',
"HTML"=>"
<div class='customclass'>
<input type='radio' name='#dbtable_#fieldname' id='#dbtable_#fieldname_#fieldvalue' value='#fieldvalue' #checked>
<label for='#dbtable_#fieldname_#fieldvalue'>#fieldlabel</label>
</div>
",
"FIELDLIST"=>"SELECT volgorde,volgorde AS volgordeval FROM triosprojecten ORDER BY volgorde",
*OR* "FIELDLIST"=>'{"1":"TRImax 1","2":"TRImax 2","3":"TRImax 3","9":"maatwerk"}',
"HTML"=>"
<div class='customclass'>
<input type='checkbox' name='#dbtable_#fieldname[]' id='#dbtable_#fieldname_#fieldvalue' value='#fieldvalue' #checked>
<label for='#dbtable_#fieldname_#fieldvalue'>#fieldlabel</label>
</div>
",
"FIELDLIST"=>"SELECT volgorde,volgorde AS volgordeval FROM triosprojecten ORDER BY volgorde",
*OR* "FIELDLIST"=>'{"1":"TRImax 1","2":"TRImax 2","3":"TRImax 3","9":"maatwerk"}',
"HTML"=>"
<div class='customclass'>
<input type='submit' value='#fieldvalue' class='special' />
</div>
",