Les cartes de fidélité sont compatibles avec le rendu des modèles. Si aucun modèle n'est défini, le modèle par défaut est utilisé.
Définition du modèle
Un modèle de carte est défini au niveau de la classe et permet d'afficher tous les objets associés à la classe. Le modèle définit les champs à afficher dans les différentes sections de la carte.
Le modèle est divisé en plusieurs sections:
Android
Web
Le titre de la fiche
Android
|
|
Web
|
|
La section du titre de la carte affiche le logo, le nom de l'émetteur et le titre du programme. Ni les références de champ utilisées pour les remplir, ni leur position ne peuvent être modifiées.
Modèle de fiche
Android

Web

La section des modèles de fiches permet d'afficher des lignes supplémentaires. Ces lignes peuvent contenir des champs de données structurées ou des champs de module de texte.
Vous pouvez spécifier le nombre de lignes qui définissent le nombre d'objets dans la liste class.classTemplateInfo.cardTemplateOverride.cardRowTemplateInfos[]
. La liste doit comporter au moins un élément, mais nous vous conseillons d'en utiliser au maximum deux. Chaque élément doit être de l'un des types suivants:
-
oneItem
, qui accepte un article :item
-
twoItems
, qui accepte deux éléments :startItem
endItem
-
threeItems
, qui accepte trois éléments :startItem
middleItem
endItem
Chaque élément peut être défini comme un sélecteur de champ unique (.firstValue
), deux sélecteurs de champ (.firstValue
et .secondValue
) ou un élément prédéfini (.predefinedItem
). Les valeurs du champ sélectionné et leurs libellés respectifs s'affichent. Lorsque vous définissez deux sélecteurs de champ, les valeurs des champs sélectionnés s'affichent avec un séparateur "/". Il en va de même pour les libellés des champs sélectionnés. Les éléments prédéfinis permettent de définir un rendu plus complexe.
L'exemple de code suivant montre comment remplacer les sections de ligne de la fiche du modèle de fiche pour spécifier deux lignes. Chaque ligne comprend trois éléments qui référencent chacun six champs personnalisés textModuleData
au niveau de la classe et leurs en-têtes en tant que libellés:
Python
{ ... //Rest of class "textModulesData": [ { "header": "Label 1", "body": "Some info 1", "id": "myfield1" }, { "header": "Label 2", "body": "Some info 2", "id": "myfield2" }, { "header": "Label 3", "body": "Some info 3", "id": "myfield3" }, { "header": "Label 4", "body": "Some info 4", "id": "myfield4" }, { "header": "Label 5", "body": "Some info 5", "id": "myfield5" }, { "header": "Label 6", "body": "Some info 6", "id": "myfield6" } ], "classTemplateInfo": { "cardTemplateOverride": { "cardRowTemplateInfos": [{ "threeItems": { "startItem": { "firstValue": { "fields": [{ "fieldPath": "class.textModulesData['myfield1']" }] } }, "middleItem": { "firstValue": { "fields": [{ "fieldPath": "class.textModulesData['myfield2']" }] } }, "endItem": { "firstValue": { "fields": [{ "fieldPath": "class.textModulesData['myfield3']" }] } }, } },{ "threeItems": { "startItem": { "firstValue": { "fields": [{ "fieldPath": "class.textModulesData['myfield4']" }] } }, "middleItem": { "firstValue": { "fields": [{ "fieldPath": "class.textModulesData['myfield5']" }] } }, "endItem": { "firstValue": { "fields": [{ "fieldPath": "class.textModulesData['myfield6']" }] } }, } }] } } }
Java
// Rest of class .setTextModulesData((new ArrayList<TextModuleData>() { { add((new TextModuleData()).setHeader("Label 1") .setBody("Some info 1") .setId("myfield1")); add((new TextModuleData()).setHeader("Label 2") .setBody("Some info 1") .setId("myfield2")); add((new TextModuleData()).setHeader("Label 3") .setBody("Some info 3") .setId("myfield3")); add((new TextModuleData()).setHeader("Label 4") .setBody("Some info 4") .setId("myfield4")); add((new TextModuleData()).setHeader("Label 5") .setBody("Some info 5") .setId("myfield5")); add((new TextModuleData()).setHeader("Label 6") .setBody("Some info 5") .setId("myfield6")); } })) .setClassTemplateInfo((new ClassTemplateInfo()) .setCardTemplateOverride((new CardTemplateOverride()) .setCardRowTemplateInfos(new ArrayList<CardRowTemplateInfo>() { { add((new CardRowTemplateInfo()).setThreeItems((new CardRowThreeItems()) .setStartItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.textModulesData['myfield1']")); } }))) .setMiddleItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.textModulesData['myfield2']")); } }))) .setEndItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.textModulesData['myfield3']")); } }))) )); add((new CardRowTemplateInfo()).setThreeItems((new CardRowThreeItems()) .setStartItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.textModulesData['myfield4']")); } }))) .setMiddleItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.textModulesData['myfield5']")); } }))) .setEndItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.textModulesData['myfield6']")); } }))) )); } })))
PHP
// Rest of class $textModulesData1 = new Google_Service_Walletobjects_TextModuleData(); $textModulesData1->setBody("Some info 1"); $textModulesData1->setHeader("Label 1"); $textModulesData1->setId("myfield1"); $textModulesData2 = new Google_Service_Walletobjects_TextModuleData(); $textModulesData2->setBody("Some info 2"); $textModulesData2->setHeader("Label 2"); $textModulesData2->setId("myfield2"); $textModulesData3 = new Google_Service_Walletobjects_TextModuleData(); $textModulesData3->setBody("Some info 3"); $textModulesData3->setHeader("Label 3"); $textModulesData3->setId("myfield3"); $textModulesData4 = new Google_Service_Walletobjects_TextModuleData(); $textModulesData4->setBody("Some info 4"); $textModulesData4->setHeader("Label 4"); $textModulesData4->setId("myfield4"); $textModulesData5 = new Google_Service_Walletobjects_TextModuleData(); $textModulesData5->setBody("Some info 5"); $textModulesData5->setHeader("Label 5"); $textModulesData5->setId("myfield5"); $textModulesData6 = new Google_Service_Walletobjects_TextModuleData(); $textModulesData6->setBody("Some info 6"); $textModulesData6->setHeader("Label 6"); $textModulesData6->setId("myfield6"); $textModulesDatas = array($textModulesData1, $textModulesData2, $textModulesData3, $textModulesData4, $textModulesData5, $textModulesData6); $startItemField = new Google_Service_Walletobjects_FieldReference(); $startItemField->setFieldPath("class.textModulesData['myfield1']"); $startItemFirstValue = new Google_Service_Walletobjects_FieldSelector(); $startItemFirstValue->setFields(array($startItemField)); $startItem = new Google_Service_Walletobjects_TemplateItem(); $startItem->setFirstValue($startItemFirstValue); $middleItemField = new Google_Service_Walletobjects_FieldReference(); $middleItemField->setFieldPath("class.textModulesData['myfield2']"); $middleItemFirstValue = new Google_Service_Walletobjects_FieldSelector(); $middleItemFirstValue->setFields(array($middleItemField)); $middleItem = new Google_Service_Walletobjects_TemplateItem(); $middleItem->setFirstValue($middleItemFirstValue); $endItemField = new Google_Service_Walletobjects_FieldReference(); $endItemField->setFieldPath("class.textModulesData['myfield3']"); $endItemFirstValue = new Google_Service_Walletobjects_FieldSelector(); $endItemFirstValue->setFields(array($endItemField)); $endItem = new Google_Service_Walletobjects_TemplateItem(); $endItem->setFirstValue($endItemFirstValue); $cardRowTemplate = new Google_Service_Walletobjects_CardRowThreeItems(); $cardRowTemplate->setStartItem($startItem); $cardRowTemplate->setMiddleItem($middleItem); $cardRowTemplate->setEndItem($endItem); $cardRowTemplateInfo1 = new Google_Service_Walletobjects_CardRowTemplateInfo(); $cardRowTemplateInfo1->setThreeItems($cardRowTemplate); $startItemField2 = new Google_Service_Walletobjects_FieldReference(); $startItemField2->setFieldPath("class.textModulesData['myfield4']"); $startItemFirstValue2 = new Google_Service_Walletobjects_FieldSelector(); $startItemFirstValue2->setFields(array($startItemField2)); $startItem2 = new Google_Service_Walletobjects_TemplateItem(); $startItem2->setFirstValue($startItemFirstValue2); $middleItemField2 = new Google_Service_Walletobjects_FieldReference(); $middleItemField2->setFieldPath("class.textModulesData['myfield5']"); $middleItemFirstValue2 = new Google_Service_Walletobjects_FieldSelector(); $middleItemFirstValue2->setFields(array($middleItemField2)); $middleItem2 = new Google_Service_Walletobjects_TemplateItem(); $middleItem2->setFirstValue($middleItemFirstValue2); $endItemField2 = new Google_Service_Walletobjects_FieldReference(); $endItemField2->setFieldPath("class.textModulesData['myfield6']"); $endItemFirstValue2 = new Google_Service_Walletobjects_FieldSelector(); $endItemFirstValue2->setFields(array($endItemField2)); $endItem2 = new Google_Service_Walletobjects_TemplateItem(); $endItem2->setFirstValue($endItemFirstValue2); $cardRowTemplate2 = new Google_Service_Walletobjects_CardRowThreeItems(); $cardRowTemplate2->setStartItem($startItem2); $cardRowTemplate2->setMiddleItem($middleItem2); $cardRowTemplate2->setEndItem($endItem2); $cardRowTemplateInfo2 = new Google_Service_Walletobjects_CardRowTemplateInfo(); $cardRowTemplateInfo2->setThreeItems($cardRowTemplate2); $cardTemplateOverride = new Google_Service_Walletobjects_CardTemplateOverride(); $cardTemplateOverride->setCardRowTemplateInfos(array($cardRowTemplateInfo1, $cardRowTemplateInfo2)); $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo(); $classTemplateInfo->setCardTemplateOverride($cardTemplateOverride); $payload->setTextModulesData($textModulesDatas); $payload->setClassTemplateInfo($classTemplateInfo);
Le code crée une carte au format de section des modèles de code suivant:

Si un élément est vide, il n'est pas affiché. Pour en savoir plus, consultez la documentation de référence sur les champs. Si tous les éléments d'une ligne sont vides, la ligne n'est pas affichée. Si certains éléments d'une ligne sont vides, les éléments non vides sont réorganisés et affichés sous la forme d'une ligne comportant moins d'éléments.
Si vous ne remplacez pas le modèle de carte, le nombre de lignes, le nombre d'éléments et les références de champ par défaut sont utilisés par défaut. Pour en savoir plus, consultez Modèle par défaut.
Une fois que vous avez défini une image principale, celle-ci peut s'afficher après la première ligne, s'il y a plusieurs lignes dans la liste cardRowTemplateInfos
, ou au-dessus de la ligne s'il n'y en a qu'une.
Code-barres de la carte
Android
|
|
Web
|
|
La section du code-barres de la carte permet d'afficher du texte ou des images supplémentaires au-dessus et en dessous du code-barres. Aucun des champs de cette section n'est obligatoire.
Trois sélecteurs de champs permettent de définir deux champs côte à côte, un en dessous du code-barres. Elles sont affichées sans étiquette et peuvent être des champs de données structurées de type texte, des champs de module de texte ou des champs de module d'image. Si vous utilisez des images, elles doivent respecter les consignes relatives à la marque.
Le code-barres est défini par un type et une valeur. Pour obtenir la liste des types de codes-barres acceptés, consultez la documentation de référence. De plus, un texte peut s'afficher juste en dessous du code-barres. Ce texte peut, entre autres, faciliter la lecture des codes-barres.
L'exemple de code suivant montre comment ignorer la section du code-barres d'une carte pour afficher une image au-dessus du code-barres:
Python
#... rest of class "imageModulesData": [ { "mainImage": { "sourceUri": { "uri": "http://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg", "description": "Coffee" } }, "Id": "myimage" } ], "classTemplateInfo": { "cardBarcodeSectionDetails": { "firstTopDetail": { "fieldSelector": { "fields": [ { "fieldPath": "class.imageModulesData['myimage'].mainImage" } ] } } } } }
Java
//... rest of class .setImageModulesData((new ArrayList<ImageModuleData>() { { add((new ImageModuleData()) .setId("myimage") .setMainImage((new Image()).setSourceUri((new ImageUri()).setDescription("Coffee beans") .setUri("http://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg")))); } })) .setClassTemplateInfo((new ClassTemplateInfo()) .setCardBarcodeSectionDetails((new CardBarcodeSectionDetails()) .setFirstTopDetail((new BarcodeSectionDetail()) .setFieldSelector((new FieldSelector()) .setFields((new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.imageModulesData['myimage'].mainImage")); } }))))) }
PHP
//... rest of class $imageUri = new Google_Service_Walletobjects_ImageUri(); $imageUri->setUri("https://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg"); $imageUri->setDescription("Baconrista flights image"); $image = new Google_Service_Walletobjects_Image(); $image->setSourceUri($imageUri); $imageModulesData = new Google_Service_Walletobjects_ImageModuleData(); $imageModulesData->setMainImage($image); $imageModulesData->setId("myimage"); $cardBarcodeFieldReference = new Google_Service_Walletobjects_FieldReference(); $cardBarcodeFieldReference->setFieldPath("class.imageModulesData['myimage'].mainImage"); $cardBarcodeFieldSelector = new Google_Service_Walletobjects_FieldSelector(); $cardBarcodeFieldSelector->setFields(array($cardBarcodeFieldReference)); $cardBarcodeDetail = new Google_Service_Walletobjects_BarcodeSectionDetail(); $cardBarcodeDetail->setFieldSelector($cardBarcodeFieldSelector); $cardBarcodeSectionDetails = new Google_Service_Walletobjects_CardBarcodeSectionDetails(); $cardBarcodeSectionDetails->setFirstTopDetail($cardBarcodeDetail); $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo(); $classTemplateInfo->setCardBarcodeSectionDetails($cardBarcodeSectionDetails); $payload->setClassTemplateInfo($classTemplateInfo); $payload->setImageModuleData($imageModulesData);
Le code crée une carte au format de section des codes-barres suivant:

Si vous ne remplacez pas la section des codes-barres, les champs par défaut des codes-barres sont utilisés. Pour en savoir plus, consultez Modèle par défaut.
Modèle d'informations
Android
|
|
Web
|
|
La section consacrée aux modèles d'informations est une liste d'éléments class.classTemplateInfo.detailsTemplateOverride.detailsItemInfos[]
. Les éléments peuvent contenir n'importe quel type de champ de données structurées, de champ de module de texte, de champ de module de lien, de champ de module d'image ou de message.
Chaque élément peut être défini comme un sélecteur de champ unique (.firstValue
), deux sélecteurs de champ (.firstValue
et .secondValue
) ou un élément prédéfini (.predefinedItem
). Les valeurs du champ sélectionné et leurs libellés respectifs s'affichent. Lorsque vous définissez deux sélecteurs de champ, les valeurs des champs sélectionnés s'affichent avec un séparateur "/". Il en va de même pour les libellés des champs sélectionnés. Les éléments prédéfinis permettent de définir un rendu plus complexe. Les champs de module d'image sont affichés en pleine largeur sans libellé.
L'exemple de code suivant montre comment ignorer la section des détails de la carte pour afficher un seul champ linksModuleData
avec son libellé:
Python
//... rest of class "linksModuleData": { "uris": [ { "uri": "http://maps.google.com/", "description": "Nearby Locations", "id":"mylink" } ] }, "classTemplateInfo": { "detailsTemplateOverride": { "detailsItemInfos": [ { "item":{ "firstValue": { "fields": [{ "fieldPath": "class.linksModuleData.uris['mylink']" }] } } } ] } } //... rest of class
Java
//... rest of class .setLinksModuleData((new ArrayList<LinksModuleData>() { { add((new LinksModuleData()).setDescription("Nearby Locations") .setUri("http://maps.google.com/") .setId("mylink")); })) .setClassTemplateInfo((new ClassTemplateInfo()) .setDetailsTemplateOverride((new DetailsTemplateOverride()) .setDetailsItemInfos(new ArrayList<DetailsItemInfo>(){ { add((new DetailsItemInfo()) .setItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("class.linksModuleData.uris['mylink']")); } })))); } })) //... rest of class
PHP
//... rest of class building $locationUri = new Google_Service_Walletobjects_Uri(); $locationUri->setUri("http://maps.google.com/"); $locationUri->setDescription("Nearby Locations"); $locationUri->setId("mylink"); $linksModuleData = new Google_Service_Walletobjects_LinksModuleData(); $linksModuleData->setUris(array($locationUri)); $detailItemFieldReference = new Google_Service_Walletobjects_FieldReference(); $detailItemFieldReference->setFieldPath("class.linksModuleData.uris['mylink']"); $detailItemFieldSelector = new Google_Service_Walletobjects_FieldSelector(); $detailItemFieldSelector->setFields(array($detailItemFieldReference)); $detailItem = new Google_Service_Walletobjects_TemplateItem(); $detailItem->setFirstValue($detailItemFieldSelector); $detailsItemInfo = new Google_Service_Walletobjects_DetailsItemInfo(); $detailsItemInfo->setItem($detailItem); $cardDetailsTemplateOverride = new Google_Service_Walletobjects_DetailsTemplateOverride(); $cardDetailsTemplateOverride->setDetailsItemInfos(array($detailsItemInfo)); $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo(); $classTemplateInfo->setDetailsTemplateOverride($cardDetailsTemplateOverride); $payload->setClassTemplateInfo($classTemplateInfo); $payload->setLinksModuleData($linksModuleData); //... rest of class
Le code crée une carte au format suivant dans la section de détails:

Si un élément est vide, il n'est pas affiché. Pour en savoir plus, consultez la documentation de référence sur les champs.
Si vous ne remplacez pas le modèle de détails, la liste des champs de référence par défaut dans l'ordre par défaut s'affiche. Pour en savoir plus, consultez Modèle par défaut.
Lister le modèle
|
|
La section des modèles de liste permet de sélectionner le champ à afficher dans la vue "Cartes" de l'application Google Wallet. La carte est représentée dans la liste avec le logo, la couleur d'arrière-plan et trois lignes.
L'exemple de code suivant montre comment ignorer le modèle de liste d'une carte pour afficher le champ de date d'expiration de l'objet d'une seule carte dans la première ligne du modèle de liste:
Python
#... rest of class definition "classTemplateInfo": { "listTemplateOverride":{ "firstRowOption": { "fieldOption":{ "fields": [{ "fieldPath": "object.validTimeInterval.end" }] } } } } }
Java
//... rest of class .setClassTemplateInfo((new ClassTemplateInfo()) .setListTemplateOverride((new ListTemplateOverride()) .setFirstRowOption((new FirstRowOption()) .setFieldOption((new FieldSelector()).setFields(new ArrayList<FieldReference>(){ { add((new FieldReference()).setFieldPath("object.validTimeInterval.end")); } })))) //... rest of class
PHP
//... rest of class $fieldReference = new Google_Service_Walletobjects_FieldReference(); $fieldReference->setFieldPath("object.validTimeInterval.end"); $fieldOption = new Google_Service_Walletobjects_FieldSelector(); $fieldOption->setFields(array($fieldReference)); $firstRowOption = new Google_Service_Walletobjects_FirstRowOption(); $firstRowOption->setFieldOption($fieldOption); $listTemplateOverride = new Google_Service_Walletobjects_ListTemplateOverride(); $listTemplateOverride->setFirstRowOption($firstRowOption); $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo(); $classTemplateInfo->setListTemplateOverride($listTemplateOverride); $payload->setClassTemplateInfo($classTemplateInfo); //... rest of class
Le code crée une carte avec le rendu de modèle de liste suivant:

Les trois lignes peuvent être définies à l'aide d'un sélecteur de champ. Les champs s'affichent sans libellé.
Étiquettes
Tous les champs de données structurées comportent un libellé fourni par Google. Google est chargé de fournir une traduction pour chacune de ces étiquettes dans toutes les langues acceptées.
Vous pouvez personnaliser certains de ces libellés à l'aide de l'un des champs class.custom<name_of_the_field>Label
. Lorsque vous personnalisez un libellé, il vous incombe de fournir des traductions pour ce libellé spécifique dans toutes les langues que vous souhaitez prendre en charge.
Références de champ
Les références de champs sont utilisées dans différentes parties du modèle sous la forme class.classTemplateInfo.*.fields[]
. Une référence de champ contient une liste de chemins d'accès aux champs de données structurées, aux champs de module de texte, aux champs de module de lien, aux champs de module d'image ou aux messages.
Tous les types de chemins ne sont pas autorisés dans chaque référence de champ. Par exemple, certaines références de champ n'autorisent que les chemins d'accès aux champs de données structurées ou aux champs de module de texte. Les champs structurés textuels sont des champs de données structurées de type chaîne, chaîne localisée, date ou monétaire.
La liste peut être utilisée pour implémenter une logique de remplacement. Cela signifie que si le premier chemin de la liste renvoie vers un champ vide, le chemin suivant est évalué. La logique de remplacement cible principalement les champs de données structurées ou les champs de module de texte. Ne mélangez pas différents types de champs dans la même liste. Utilisez la logique de remplacement avec précaution et uniquement dans des cas spécifiques où vous attendez un modèle cohérent de champs qui existent dans certains objets, mais pas dans d'autres. La plupart du temps, il est plus facile de créer des classes distinctes pour des cas d'utilisation distincts.
Si tous les chemins d'une liste de référence de champ renvoient à des champs vides, l'élément qui utilise la référence de champ ne s'affiche pas. Si vous souhaitez que l'élément qui utilise la référence de champ soit toujours présent, assurez-vous qu'au moins un chemin d'accès n'est pas vide. Nous vous recommandons de définir un champ avec un caractère spécial, tel que "-", pour représenter une valeur nulle, même si certains champs n'autorisent que des chaînes contenant uniquement un espace.
Pour référencer un champ contenu dans une liste, vous pouvez utiliser son index dans la liste ou, dans la plupart des cas, vous pouvez utiliser un ID de référence. Les éléments d'une liste qui peuvent être référencés par un ID comportent un champ .id
. Nous vous recommandons d'utiliser un ID de référence plutôt que l'index du champ de la liste, s'il est disponible.
Voici un exemple de référence à des champs contenus dans une liste.
object.imageModulesData[0].id = my-first-id
object.imageModulesData[1].id = my-second-id
class.detailsTemplateOverride.detailsItemInfos[0].item.firstValue.fields[0].fieldPath = object.imageModulesData[‘my-second-id’]
class.detailsTemplateOverride.detailsItemInfos[1].item.firstValue.fields[0].fieldPath = object.imageModulesData[0]
Dans ce cas, le premier élément de la section des détails de la carte est la deuxième image déclarée dans l'objet. Alors que le deuxième élément de la section des détails de la carte est la première image déclarée dans l'objet.
Modèle par défaut
Android
|
|
Web
|
|
Pour les champs de module d'image, nous n'affichons qu'un seul champ de module d'image de la classe et un seul champ de module d'image de l'objet. Si vous avez besoin de plusieurs champs de module d'image à l'un ou l'autre niveau, remplacez le modèle par défaut.
Pour les champs de module texte, nous n'affichons que 20 champs de module texte maximum pour la classe et 20 champs de module texte à partir de l'objet. Les champs s'affichent dans le même ordre que dans le tableau. Si vous avez besoin de plus de 20 champs de module texte à un niveau donné, remplacez le modèle par défaut.
Pour les messages, nous affichons uniquement un maximum de 20 messages de la classe et 20 messages de l'objet. Nous ne garantissons pas l'ordre des messages. Si vous avez besoin de plus de 20 messages dans les deux cas ou pour garantir une commande, remplacez le modèle par défaut.
Dans le champ du module de liens, le nombre d'URI que vous pouvez définir n'est pas limité. Les URI sont affichés dans l'ordre suivant pour chaque niveau (classe ou objet):
- Coordonnées sur la carte
- Numéros de téléphone
- Adresses e-mail
- Pages Web
Pour chaque groupe, les URI sont affichés dans l'ordre dans lequel ils sont définis dans le tableau. Si vous avez besoin d'utiliser un ordre différent, ignorez le modèle par défaut.
|
|