voor developers
Airtable is een database in The Cloud. Alle functies voor het aanmaken van tabellen en het beheer van de gegevens in die tabellen, worden door Airtable aan de eindgebruiker aangeboden. Airtable staat volledig los van TRImax maar via een API kunnen de gegevens in een website met TRImax gebruikt worden.
Het duurt enkele seconden om de gegevens van een tabel in Airtable via de API door te sturen naar de website. Daarom is er in de Admin per Airtable een sync-functie voorzien. Nadat er wijzingen aangebracht zijn aan een Airtable, moet de tabel gesynced worden met de website. De sync zorgt ervoor dat alle gegevens van de tabel éénmalig getransfereerd worden en bewaard worden in de map ./data
in JSON-formaat.
Om de JSON-bestanden te beschermen tegen ongeoorloofd gebruik, worden de filenames met een token van 16 characters aangemaakt. Deze token wordt door de developer zelf gedefinieerd.
$config["airtable"]["=FILETOKEN="]="2a5d19a48580b74d";
De API-gegevens worden gedefinieerd met twee regels per tabel:
voorbeeld
$config["airtable"]["autos"]["apikey"]='keyXXXXXXXX';
$config["airtable"]["autos"]["base"]='appYYYYY';
Gegevens worden niet met SQL-statements opgehaald, maar met TRImax-functies. Om te sorteren en te filteren, worden array-functies gebruikt.
$arrresult=$T->base("autos");
Dit is de meest voorkomende filter, bijvoorbeeld om een detailscherm te bekijken na selectie van 1 rij uit een tabel via een ID
, door toevoeging van een array met de key en de waarde. Dit geldt enkel voor een is gelijk aan
filter.
$arrresult=$T->base("autos",array("id"=>$urlid));
voorbeeld met filter op één kolom die gelijk is aan vaste waarde
$arrall=$T->base("autos");
$arrresult = array_filter( $arrresult, function( $v ) { return $v['merk'] == "BMW"; } );
Dit kan eenvoudiger als volgt:
$arrresult=$T->base("autos",array("merk"=>"BMW"));
voorbeeld met filter op één kolom die groter is dan een variabele waarde
$arrall=$T->base("autos");
$bouwjaar=2010;
$arrresult = array_filter( $arrresult, function( $v ) use ($bouwjaar) { return $v['bouwjaar'] > $bouwjaar; } );
voorbeeld met filter op meerdere kolommen en verschillende operatoren met variabele waarden
$arrall=$T->base("autos");
$merk="BMW";
$bouwjaar=2010;
$arrresult = array_filter( $arrresult, function( $v ) use ($merk,$bouwjaar) { return $v['merk'] == $merk && $v['bouwjaar']>=$bouwjaar; } );
voorbeeld sortering op één kolom
$merk=array();
foreach ($arrresult as $key => $row)
{
$merk[$key] = $row['merk'];
}
array_multisort($merk, SORT_ASC, $arrresult);
voorbeeld sortering volgens verkocht (0/1) en dan volgens spotlight (0/1) :: de niet verkochte eerst ( SORT_ASC ) en als tweede sortering dan de spotlights eerst ( SORT_DESC )
foreach ($arrresult as $key => $row)
{
$verkocht[$key] = $row['verkocht'];
$spotlight[$key] = $row['spotlight'];
}
array_multisort($verkocht, SORT_ASC, $spotlight, SORT_DESC, $arrresult);
$arrall=$T->base("autos",array("zichtbaar"=>1));
$arrmerk1 = array_column($arrall, 'merk','id');
$arrmerk = array_unique($arrmerk1);
# sorteren in alfabetische volgorde
foreach ($arrmerk as $key => $row)
{
$merk[$key] = $row;
}
array_multisort($merk, SORT_ASC, $arrmerk);