כרטיסים כלליים תומכים בעיבוד תבניות. אם לא מוגדרת תבנית, המערכת משתמשת בתבנית ברירת המחדל.
הגדרת התבנית
תבנית הכרטיס מוגדרת ברמת המחלקה ומשמשת להצגת כל אובייקט שמשויך למחלקה. התבנית מגדירה אילו שדות יוצגו בחלקים השונים של הכרטיס.
התבנית מחולקת לקטעים הבאים:
כותרת הכרטיס
|
|
כותרת ברירת המחדל של הכרטיס
כותרת הכרטיס עם הלוגו הרחב
|
בקטע של כותרת הכרטיס מוצגים הלוגו, שם המנפיק והכותרת. אי אפשר לשנות את ההפניות לשדות שמשמשות לאכלוס שלהם, וגם לא את המיקום שלהם.
כשמגדירים את השדה של הלוגו הרחב, במכשירים ניידים כותרת ברירת המחדל של התבנית עם הלוגו ושם המנפיק מוחלפת בלוגו הרחב.
כדי שהתמונה תוצג בצורה אופטימלית בכרטיסים, צריך לפעול לפי ההנחיות ליצירת תמונת לוגו רחבה כשיוצרים את לוגו הכותרת הרחב.
תבנית לכרטיס
הקטע של תבנית הכרטיס משמש להצגת שורות נוספות. השורות האלה יכולות להכיל שדות נתונים מובְנים שמבוססים על טקסט או שדות של מודולי טקסט.
אפשר לציין את מספר השורות שמגדירות את מספר האובייקטים ברשימה
class.classTemplateInfo.cardTemplateOverride.cardRowTemplateInfos[]
. הרשימה צריכה להכיל לפחות רכיב אחד, ומומלץ להשתמש בשני רכיבים לכל היותר. כל רכיב חייב להיות אחד מהסוגים הבאים:
-
oneItem, שמקבל פריט אחד:item
-
twoItems, שמקבל שני פריטים:startItemendItem
-
threeItems, שמקבל שלושה פריטים:startItemmiddleItemendItem
כל פריט יכול להיות מוגדר כבורר שדה יחיד (.firstValue), שני בוררי שדות (.firstValue ו-.secondValue) או פריט מוגדר מראש (.predefinedItem). מוצגים גם הערכים של השדה שנבחר וגם התוויות המתאימות שלהם. כשמגדירים שני בוררי שדות, הערכים של השדות שנבחרו מוצגים עם התו "/" כמפריד. אותו דבר לגבי התוויות של השדות שנבחרו. פריטים מוגדרים מראש משמשים להגדרת עיבוד מורכב יותר.
דוגמת הקוד הבאה מראה איך לשנות את הקטעים של שורות הכרטיסים בתבנית הכרטיס כדי לציין שתי שורות. כל שורה כוללת שלושה פריטים, שכל אחד מהם מפנה לשישה שדות בהתאמה אישית של textModuleData ברמת הכיתה, והכותרות שלהם משמשות כתוויות:
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);
הקוד יוצר כרטיס עם הפורמט הבא של קטע תבנית הקוד:
אם פריט מסוים ריק, הוא לא מוצג. לפרטים נוספים, ראו הפניות לשדות. אם כל הפריטים בשורה ריקים, השורה לא מוצגת. אם חלק מהפריטים בשורה ריקים, הפריטים שלא ריקים מסודרים מחדש ומוצגים כשורה עם פחות פריטים.
אם לא משנים את תבנית הכרטיס, המערכת משתמשת במספר ברירת המחדל של השורות, במספר ברירת המחדל של הפריטים ובהפניות ברירת המחדל לשדות. מידע נוסף מופיע במאמר תבנית ברירת המחדל.
אחרי שמגדירים תמונה ראשית (Hero), היא יכולה להופיע אחרי השורה הראשונה, אם יש כמה שורות ברשימה cardRowTemplateInfos, או מעל השורה, אם יש רק שורה אחת.
ברקוד של כרטיס
|
|
|
הקטע של הברקוד בכרטיס משמש להצגת טקסט או תמונות נוספים לפני ואחרי הברקוד. לא חובה למלא אף אחד מהשדות בקטע הזה.
יש שלושה בוררי שדות שאפשר להשתמש בהם כדי להגדיר שני שדות זה לצד זה לפני הברקוד, ושדה אחד אחרי הברקוד. השדות האלה מוצגים בלי תווית, והם יכולים להיות שדות נתונים מובְנים שמבוססים על טקסט, שדות של מודול טקסט או שדות של מודול תמונה. אם אתם משתמשים בתמונות, הן צריכות לעמוד בספר המותג.
הברקוד מוגדר לפי סוג וערך. רשימה של סוגי הברקודים הנתמכים מופיעה בחומרי העזר. בנוסף, אפשר להציג טקסט ממש מתחת לברקוד. הטקסט הזה יכול להקל על סריקת ברקודים, בין היתר.
דוגמת הקוד הבאה מראה איך לשנות את קטע הברקוד של הכרטיס כדי להציג תמונה מעל הברקוד:
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);
הקוד יוצר כרטיס עם הפורמט הבא של קטע הברקוד:
אם לא משנים את קטע הברקוד, המערכת משתמשת בשדות ברירת המחדל של הברקוד. מידע נוסף זמין במאמר תבנית ברירת המחדל.
החלק התחתון
|
|
|
החלק התחתון הוא רשימה של פריטים
class.classTemplateInfo.detailsTemplateOverride.detailsItemInfos[]. הפריטים יכולים להכיל כל סוג של שדות נתונים מובְנים, שדות של מודולי טקסט, שדות של מודולי קישורים, שדות של מודולי תמונות או הודעות.
כל פריט יכול להיות מוגדר כבורר שדה יחיד (.firstValue), כשני בוררי שדות (.firstValue ו-.secondValue) או כפריט מוגדר מראש (.predefinedItem). מוצגים גם הערכים של השדה שנבחר וגם התוויות המתאימות שלהם. כשמגדירים שני בוררי שדות, הערכים של השדות שנבחרו מוצגים עם התו "/" כמפריד. אותו דבר לגבי התוויות של השדות שנבחרו. פריטים מוגדרים מראש משמשים להגדרת עיבוד מורכב יותר. שדות של מודול תמונה מוצגים ברוחב מלא בלי תווית.
דוגמת הקוד הבאה מראה איך לשנות את החלק התחתון של הכרטיס כדי להציג שדה linksModuleData יחיד עם התווית שלו:
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
הקוד יוצר כרטיס עם הפורמט הבא של החלק התחתון:
אם פריט מסוים ריק, הוא לא מוצג. לפרטים נוספים, ראו הפניות לשדות.
אם לא משנים את החלק התחתון, מוצגת רשימת ברירת המחדל של שדות העזר בסדר ברירת המחדל. מידע נוסף מופיע במאמר תבנית ברירת המחדל.
תבנית רשימה
|
|
|
הקטע של תבנית הרשימה משמש לבחירת השדה שיוצג בתצוגה "כרטיסים" באפליקציית Google Wallet. הכרטיס מיוצג ברשימה באמצעות הלוגו, צבע הרקע ושלוש שורות.
דוגמת הקוד הבאה מראה איך לשנות את תבנית הרשימה של הכרטיס כדי להציג את שדה תאריך התפוגה של אובייקט כרטיס יחיד בשורה הראשונה של תבנית הרשימה:
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
הקוד יוצר כרטיס עם העיבוד הבא של תבנית הרשימה:
אפשר להגדיר את שלוש השורות באמצעות בורר שדות. השדות מוצגים בלי תווית.
הפניות לשדות
הפניות לשדות משמשות בחלקים שונים של התבנית עם הפורמט class.classTemplateInfo.*.fields[]. הפניה לשדה מכילה רשימה של נתיבים לשדות של נתונים מובְנים, שדות של מודול טקסט, שדות של מודול קישור, שדות של מודול תמונה או הודעות.
לא כל סוגי הנתיבים מותרים בכל הפניה לשדה. לדוגמה, בחלק מההפניות לשדות אפשר להשתמש רק בנתיבים לשדות נתונים מובְנים שמבוססים על טקסט או לשדות של מודול טקסט. שדות מובְנים שמבוססים על טקסט הם שדות של נתונים מובְנים מסוג מחרוזת, מחרוזת מותאמת לשוק המקומי, תאריך או כסף.
אפשר להשתמש ברשימה כדי להטמיע לוגיקה של חלופות. כלומר, אם הנתיב הראשון ברשימה מוביל לשדה ריק, המערכת תעריך את הנתיב הבא. לוגיקת ברירת המחדל מיועדת בעיקר לשדות נתונים מובְנים שמבוססים על טקסט או לשדות של מודול טקסט. אל תשלבו סוגים שונים של שדות באותה רשימה. השתמשו בלוגיקת ברירת המחדל בזהירות ורק במצבים ספציפיים שבהם אתם מצפים לדפוס עקבי של שדות שקיימים באובייקטים מסוימים אבל לא באחרים. ברוב המקרים, קל יותר ליצור מחלקות נפרדות לתרחישי שימוש נפרדים.
אם כל הנתיבים ברשימת ההפניות לשדות מובילים לשדות ריקים, הפריט שמשתמש בהפניה לשדה לא מוצג. אם רוצים שהפריט שמשתמש בהפניה לשדה תמיד יהיה קיים, צריך לוודא שלפחות נתיב אחד לא ריק. מומלץ להגדיר שדה לתו מיוחד, כמו "-", כדי לייצג ערך null, גם אם שדות מסוימים מאפשרים מחרוזות עם רווח בלבד.
כדי להפנות לשדה שכלול ברשימה, אפשר להשתמש באינדקס של השדה ברשימה או, ברוב המקרים, במזהה ההפניה. לפריטים ברשימה שאפשר להפנות אליהם באמצעות מזהה יש שדה .id. אם יש מזהה עזר, מומלץ להשתמש בו במקום באינדקס של השדה ברשימה.
הנה דוגמה לאופן שבו אפשר להפנות לשדות שכלולים ברשימה.
object.imageModulesData[0].id = my-first-idobject.imageModulesData[1].id = my-second-idclass.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]
במקרה הזה, הפריט הראשון בקטע הפרטים של הכרטיס הוא התמונה השנייה שהוגדרה באובייקט. הפריט השני בקטע הפרטים של הכרטיס הוא התמונה הראשונה שמוצהרת באובייקט.
תבנית ברירת המחדל
|
שורת כותרת |
בשדות של מודול התמונות, אנחנו מציגים שדה אחד בלבד של מודול תמונות מהמחלקה ושדה אחד בלבד של מודול תמונות מהאובייקט. אם אתם צריכים יותר משדה אחד של מודול תמונה בכל אחת מהרמות, אתם יכולים לשנות את תבנית ברירת המחדל.
בשדות של מודול הטקסט, אנחנו מציגים רק עד 20 שדות של מודול הטקסט מהמחלקה ו-20 שדות של מודול הטקסט מהאובייקט. השדות מוצגים באותו סדר שבו הם מוגדרים במערך. אם אתם צריכים יותר מ-20 שדות של מודול טקסט בכל אחת מהרמות, אתם יכולים לשנות את תבנית ברירת המחדל.
בהודעות, אנחנו מציגים רק עד 20 הודעות מהמחלקה ו-20 הודעות מהאובייקט. אנחנו לא מבטיחים שההודעות יופיעו בסדר מסוים. אם אתם צריכים יותר מ-20 הודעות בכל אחת מהרמות, או הבטחה להזמנות כלשהן, אתם יכולים לשנות את תבנית ברירת המחדל.
בשדה של מודול הקישורים, אין הגבלה על מספר מזהי ה-URI שאפשר להגדיר. מזהי ה-URI מוצגים בקבוצות לפי הסדר הבא בכל רמה (מחלקה או אובייקט):
- קואורדינטות במפה
- מספרי טלפון
- כתובות אימייל
- דפי אינטרנט
בכל קבוצה, מזהי ה-URI מוצגים באותו סדר שבו הם מוגדרים במערך. אם אתם צריכים סדר אחר, אתם יכולים לשנות את תבנית ברירת המחדל.