Virtuele velden
Met virtuele velden kun je waarden automatisch laten berekenen op het moment dat je ze gebruikt, bijvoorbeeld in een template, document of opvolgactie. De waarde wordt niet opgeslagen maar telkens opnieuw bepaald op basis van andere gegevens in het profiel of account. Dit voorkomt dubbele logica en houdt templates overzichtelijk.
Wat kun je ermee?
Met virtuele velden kun je bijvoorbeeld:
- teksten samenstellen op basis van profielvelden
- berekeningen uitvoeren, zoals controleren of iemand jarig is
- informatie uit subprofielen samenvoegen, zoals het aantal kinderen
Dit zijn slechts enkele voorbeelden. Virtuele velden ondersteunen dezelfde Smarty-logica als templates, waardoor ook complexere berekeningen mogelijk zijn.
Je gebruikt virtuele velden net zoals gewone velden: via {$profile.veldnaam}
of direct {$veldnaam}.
Voorbeelden
Hieronder zie je voorbeelden die laten zien hoe virtuele velden verschillende soorten logica kunnen bevatten.
Aanhef op basis van profielvelden
Een eenvoudig voorbeeld is een virtueel veld Aanhef, dat dynamisch wordt bepaald op basis van een profielveld:
{if $profile.geslacht == 'man'}Geachte heer{else}Geachte mevrouw{/if}
Wanneer een template {$profile.Aanhef} of {$Aanhef} bevat, wordt automatisch
de juiste aanhef getoond.
Controleren of iemand jarig is
Een ander voorbeeld is een virtueel veld dat bepaalt of iemand vandaag jarig is:
{assign var="geboren_op" value=$profile.geboortedatum|date_format:"%m%d"}
{assign var="vandaag" value=$smarty.now|date_format:"%m%d"}
{if $geboren_op == $vandaag}ja{else}nee{/if}
In je template kun je deze waarde direct gebruiken:
Is jarig: {$is_jarig}
Gegevens uit collecties
Je kunt gegevens uit subprofielen samenvoegen, zoals het aantal kinderen, het eerste kind of het laatste kind:
{$profile.kinderen|count} {*aantal_kinderen*}
{$profile.kinderen|first} {*eerste_kind*}
{$profile.kinderen|last} {*laatste_kind*}
Het resultaat van first of last is een subprofiel-object. Daardoor kun je in
je template direct de velden van dat subprofiel gebruiken, zoals:
Je hebt {$aantal_kinderen} kinderen.
Het jongste kind heet {$laatste_kind.naam}.
Hetzelfde geldt voor andere collecties. Als een virtueel veld bijvoorbeeld de laatste afgeronde bestelling oplevert:
{$profile.bestellingen|filter:"status":"afgerond"|last}
Dan kun je daarna in je template rechtstreeks de velden van die bestelling gebruiken:
Prijs van laatste bestelling: {$laatste_bestelling.prijs}
Dit zijn slechts enkele voorbeelden. Virtuele velden kunnen zo eenvoudig of zo uitgebreid zijn als de logica die je erin stopt.
Beschikbare variabelen
Binnen een virtueel veld zijn dezelfde variabelen beschikbaar als in templates en opvolgacties, waaronder:
{$profile}en alle velden daarin{$subprofile}bij gebruik binnen collecties{$collection},{$database}en andere contextvariabelen- Integraties, zoals Magento en Shopify
- Smarty-functies en -modifiers
De veldwaarde kan zowel tekst, HTML, URL's als volledige Smarty-logica bevatten. Een tekstveld is dus niet beperkt tot alfanumerieke inhoud.
Aanmaken en beheer
Virtuele velden zijn onderdeel van Velden en interesses binnen een database of collectie en verschijnen daar in het overzicht naast gewone velden. De naam van een virtueel veld moet uniek zijn binnen dezelfde database of collectie en kan niet per profiel worden ingevuld of aangepast.