ট্রানজিট পাস টেমপ্লেট

ট্রানজিট পাস টেমপ্লেট রেন্ডারিং সমর্থন করে। যদি কোনো টেমপ্লেট সংজ্ঞায়িত না থাকে, তবে ডিফল্টটি ব্যবহৃত হয়।

টেমপ্লেট সংজ্ঞা

একটি পাস টেমপ্লেট ক্লাস লেভেলে সংজ্ঞায়িত করা হয় এবং এটি ক্লাসের সাথে সংশ্লিষ্ট যেকোনো অবজেক্ট প্রদর্শন করতে ব্যবহৃত হয়। টেমপ্লেটটি নির্ধারণ করে যে পাসের বিভিন্ন বিভাগে কোন কোন ফিল্ড প্রদর্শন করতে হবে।

টেমপ্লেটটি নিম্নলিখিত বিভাগগুলিতে বিভক্ত:

অ্যান্ড্রয়েড

পাস টেমপ্লেট লেআউটের বিভাগ এবং অবস্থানগুলির সংক্ষিপ্ত বিবরণ

ওয়েব

পাস টেমপ্লেট লেআউটের বিভাগ এবং অবস্থানগুলির সংক্ষিপ্ত বিবরণ

কার্ডের শিরোনাম

অ্যান্ড্রয়েড

কার্ডের শিরোনাম বিন্যাসের উপাদান এবং ক্ষেত্রের অবস্থান ডিফল্ট কার্ডের শিরোনাম
  1. class.logo
  2. class.localizedIssuerName
    অথবা class.issuerName
  3. object.ticketLeg.originName
  4. object.ticketLeg.destinationName
  5. object.ticketLeg.originStationCode
  6. object.ticketLeg.destinationStationCode
  7. object.tripType
  8. object.hexBackgroundColor
    অথবা class.hexBackgroundColor

প্রশস্ত-লোগো কার্ডের শিরোনাম
  1. class.wideLogo
  2. object.ticketLeg.originName
  3. object.ticketLeg.destinationName
  4. object.ticketLeg.originStationCode
  5. object.ticketLeg.destinationStationCode
  6. object.tripType
  7. object.hexBackgroundColor
    অথবা class.hexBackgroundColor

ওয়েব

কার্ডের শিরোনাম বিন্যাসের উপাদান এবং ক্ষেত্রের অবস্থান ডিফল্ট কার্ডের শিরোনাম
  1. class.logo
  2. class.localizedIssuerName
    অথবা class.issuerName
  3. object.ticketLeg.originName
  4. object.ticketLeg.destinationName
  5. object.ticketLeg.originStationCode
  6. object.ticketLeg.destinationStationCode
  7. object.tripType
  8. object.hexBackgroundColor
    অথবা class.hexBackgroundColor

প্রশস্ত-লোগো কার্ডের শিরোনাম
  1. class.wideLogo
  2. object.ticketLeg.originName
  3. object.ticketLeg.destinationName
  4. object.ticketLeg.originStationCode
  5. object.ticketLeg.destinationStationCode
  6. object.tripType
  7. object.hexBackgroundColor
    অথবা class.hexBackgroundColor

কার্ডের শিরোনাম অংশে লোগো, ট্রানজিট অপারেটরের নাম এবং যাত্রার সারাংশ প্রদর্শিত হয়। এই তিনটি উপাদানই আবশ্যক এবং এগুলো পূরণ করতে ব্যবহৃত ফিল্ড রেফারেন্স বা এদের অবস্থান পরিবর্তন করা যায় না।

তবে, রেন্ডারিং লজিকটি শীর্ষ সারির জন্য কিছুটা নমনীয়তার সুযোগ দেয়। পাসের শীর্ষ সারি, যা একটি যাত্রার সারাংশ উপস্থাপন করে, তা একটি একক-পর্বের যাত্রার জন্য TransitObject এর নিম্নলিখিত ফিল্ডগুলি দ্বারা নিয়ন্ত্রিত হয়:

  • object.tripType
  • object.ticketLeg.originName
  • object.ticketLeg.destinationName
  • object.ticketLeg.originStationCode
  • object.ticketLeg.destinationStationCode

পাসটি কীভাবে রেন্ডার করা হবে তা নির্ভর করে কোন ফিল্ডগুলো খালি নয় তার উপর। এটি নিম্নলিখিত উপায়ে রেন্ডার করা যেতে পারে:

  • শুধুমাত্র উৎসের নাম: এখানে শুধুমাত্র উৎসের নাম তথ্য হিসেবে প্রদর্শিত হয়। এটি বিশেষত সেইসব টিকিটের জন্য উপযোগী, যেগুলো কোনো নির্দিষ্ট যাত্রার পরিবর্তে একটি এলাকাকে অন্তর্ভুক্ত করে।
  • উৎস এবং গন্তব্য: উৎস বাম দিকে এবং গন্তব্য ডান দিকে থাকে। এই দুটির মাঝের প্রতীকটি ভ্রমণের ধরনের উপর নির্ভর করে। উৎস এবং গন্তব্য নিম্নলিখিতগুলির মধ্যে একটি হিসাবে দেখানো হয়:
    • নাম ও স্টেশন কোড: আমরা স্টেশন কোডগুলো নামের সাথে উপরে ছোট অক্ষরে দেখাই।
    • শুধুমাত্র নাম: আমরা নামগুলো প্রদর্শন করি।
    • শুধুমাত্র স্টেশন কোড: আমরা স্টেশন কোডগুলো দেখাই।

মাল্টি-লেগ TransitObject অবজেক্টগুলোও প্রায় একই রকমভাবে কাজ করে। এক্ষেত্রে, object.ticketLeg ব্যবহার করবেন না। এর পরিবর্তে, আপনাকে object.ticketLegs[] লিস্টটি ব্যবহার করতে হবে। অরিজিন এবং ডেস্টিনেশন উভয়ই অবশ্যই সংজ্ঞায়িত করতে হবে। প্রতিটি লেগে নাম অথবা স্টেশন কোড, অথবা উভয়ই সামঞ্জস্যপূর্ণভাবে ব্যবহার করতে হবে। প্রদর্শিত অরিজিন হলো অ্যারের প্রথম এলিমেন্টের অরিজিন, এবং প্রদর্শিত ডেস্টিনেশন হলো অ্যারের শেষ এলিমেন্টের ডেস্টিনেশন।

পাসের ব্যাকগ্রাউন্ড কালার একটি আবশ্যিক ফিল্ড নয় এবং এটি ক্লাস লেভেল ও অবজেক্ট লেভেল উভয় পর্যায়েই নির্ধারণ করা যায়। অবজেক্ট ফিল্ডের অগ্রাধিকার বেশি এবং এটি ক্লাস ফিল্ডকে ওভাররাইড করতে ব্যবহার করা যেতে পারে।

যখন ওয়াইড লোগো ফিল্ড সেট করা হয়, তখন অ্যান্ড্রয়েড ডিভাইসগুলিতে লোগো এবং ইস্যুকারীর নাম সহ ডিফল্ট টেমপ্লেট হেডারটি ওয়াইড লোগো দ্বারা প্রতিস্থাপিত হয়।

আপনার পাসগুলিতে ছবিটি সর্বোত্তমভাবে প্রদর্শনের জন্য, প্রশস্ত হেডার লোগো তৈরি করার সময় প্রশস্ত লোগো ছবির নির্দেশিকাগুলি অনুসরণ করুন।

কার্ড টেমপ্লেট

অ্যান্ড্রয়েড

কার্ড টেমপ্লেট সারি বিন্যাস উপাদান এবং ক্ষেত্রের অবস্থান

ওয়েব

কার্ড টেমপ্লেট সারি বিন্যাস উপাদান এবং ক্ষেত্রের অবস্থান

কার্ড টেমপ্লেট সেকশনটি অতিরিক্ত সারি প্রদর্শনের জন্য ব্যবহৃত হয়। এই সারিগুলোতে টেক্সট-ভিত্তিক স্ট্রাকচার্ড ডেটা ফিল্ড অথবা টেক্সট মডিউল ফিল্ড থাকতে পারে।

আপনি class.classTemplateInfo.cardTemplateOverride.cardRowTemplateInfos[] লিস্টে অবজেক্টের সংখ্যা নির্ধারণকারী সারির সংখ্যা নির্দিষ্ট করতে পারেন। লিস্টটিতে অন্তত একটি এলিমেন্ট থাকা আবশ্যক এবং আমরা সর্বাধিক দুটি এলিমেন্ট ব্যবহার করার পরামর্শ দিই। প্রতিটি এলিমেন্ট অবশ্যই নিম্নলিখিত প্রকারগুলির মধ্যে একটির হতে হবে:

  • oneItem , যা একটি আইটেম গ্রহণ করে:
    • item
  • twoItems , যা দুটি আইটেম গ্রহণ করে:
    • startItem
    • endItem
  • threeItems , যা তিনটি আইটেম গ্রহণ করে:
    • startItem
    • middleItem
    • endItem

প্রতিটি আইটেমকে একটি একক ফিল্ড সিলেক্টর ( .firstValue ), দুটি ফিল্ড সিলেক্টর ( .firstValue এবং .secondValue ), অথবা একটি প্রিডিফাইন্ড আইটেম ( .predefinedItem ) হিসেবে সংজ্ঞায়িত করা যেতে পারে। নির্বাচিত ফিল্ডের মান এবং তাদের নিজ নিজ লেবেল উভয়ই প্রদর্শিত হয়। যখন আপনি দুটি ফিল্ড সিলেক্টর সংজ্ঞায়িত করেন, তখন নির্বাচিত ফিল্ডগুলোর মান একটি "/" বিভাজক সহ প্রদর্শিত হয়। নির্বাচিত ফিল্ডগুলোর লেবেলের ক্ষেত্রেও একই নিয়ম প্রযোজ্য। আরও জটিল রেন্ডারিং সংজ্ঞায়িত করার জন্য প্রিডিফাইন্ড আইটেম ব্যবহার করা হয়।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে দুটি সারি নির্দিষ্ট করার জন্য কার্ড টেমপ্লেটের কার্ড সারি বিভাগগুলিকে ওভাররাইড করতে হয়। প্রতিটি সারিতে তিনটি আইটেম রয়েছে, যেগুলির প্রতিটি ছয়টি ক্লাস-স্তরের textModuleData কাস্টম ফিল্ড এবং তাদের হেডারগুলিকে লেবেল হিসাবে রেফারেন্স করে:

পাইথন

 {
   ... //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']"
                            }]
                        }
                    },
                }
            }]
        }
    }
}
    

জাভা

// 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']"));
              }
            })))
          ));
          }
  })))
    

পিএইচপি

// 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);
    

কোডটি নিম্নলিখিত কোড টেমপ্লেট সেকশন ফরম্যাট সহ একটি পাস তৈরি করে:

লেবেল ওভাররাইডের একটি উদাহরণ।

যদি কোনো আইটেম খালি থাকে, তবে তা প্রদর্শিত হয় না। আরও বিস্তারিত জানতে, ফিল্ড রেফারেন্স দেখুন। যদি একটি সারির সমস্ত আইটেম খালি থাকে, তবে সারিটি প্রদর্শিত হয় না। যদি একটি সারির কিছু আইটেম খালি থাকে কিন্তু সবগুলো না থাকে, তবে যে আইটেমগুলো খালি নয় সেগুলোকে পুনর্বিন্যাস করে কম আইটেমসহ একটি সারি হিসাবে প্রদর্শন করা হয়।

আপনি যদি কার্ড টেমপ্লেটটি ওভাররাইড না করেন, তাহলে ডিফল্ট সংখ্যক সারি, ডিফল্ট সংখ্যক আইটেম এবং ডিফল্ট ফিল্ড রেফারেন্স ব্যবহৃত হয়। আরও বিস্তারিত জানতে, ডিফল্ট টেমপ্লেট দেখুন।

আপনি একটি হিরো ইমেজ নির্ধারণ করার পরে, cardRowTemplateInfos তালিকায় একাধিক সারি থাকলে এটি প্রথম সারির পরে প্রদর্শিত হতে পারে, অথবা একটিমাত্র সারি থাকলে সারির উপরে প্রদর্শিত হতে পারে।

কার্ড বারকোড

অ্যান্ড্রয়েড

কার্ড বারকোড লেআউটের উপাদান এবং অবস্থান
  1. class.classTemplateInfo
    .cardBarcodeSectionDetails
    .firstTopDetail
  2. class.classTemplateInfo
    .cardBarcodeSectionDetails
    .secondTopDetail
  3. object.barcode.type এবং object.barcode.value
    অথবা object.ticketNumber
  4. object.barcode.alternateText
  5. class.classTemplateInfo
    .cardBarcodeSectionDetails
    .firstBottomDetail

ওয়েব

কার্ড বারকোড লেআউটের উপাদান এবং অবস্থান
  1. class.classTemplateInfo
    .cardBarcodeSectionDetails
    .firstTopDetail
  2. class.classTemplateInfo
    .cardBarcodeSectionDetails
    .secondTopDetail
  3. object.barcode.type এবং object.barcode.value
    অথবা object.ticketNumber
  4. object.barcode.alternateText
  5. class.classTemplateInfo
    .cardBarcodeSectionDetails
    .firstBottomDetail

কার্ড বারকোড সেকশনটি বারকোডের আগে ও পরে অতিরিক্ত লেখা বা ছবি প্রদর্শনের জন্য ব্যবহৃত হয়। এই সেকশনের কোনো ফিল্ডই আবশ্যক নয়।

বারকোডের আগে পাশাপাশি দুটি এবং পরে একটি ফিল্ড নির্ধারণ করার জন্য তিনটি ফিল্ড সিলেক্টর রয়েছে। এগুলো কোনো লেবেল ছাড়াই প্রদর্শিত হয় এবং এগুলো টেক্সট-ভিত্তিক স্ট্রাকচার্ড ডেটা ফিল্ড, টেক্সট মডিউল ফিল্ড অথবা ইমেজ মডিউল ফিল্ড হতে পারে। যদি আপনি ছবি ব্যবহার করেন, তবে সেগুলোকে অবশ্যই ব্র্যান্ডের নির্দেশিকা অনুসরণ করতে হবে।

বারকোড একটি প্রকার এবং একটি মান দ্বারা সংজ্ঞায়িত করা হয়। সমর্থিত বারকোড প্রকারের তালিকার জন্য, রেফারেন্স দেখুন। এছাড়াও, বারকোডের ঠিক নিচে একটি লেখা দেখানো যেতে পারে। অন্যান্য ব্যবহারের পাশাপাশি, এই লেখাটি বারকোড স্ক্যান করা সহজ করে তুলতে পারে।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে বারকোডের উপরে একটি ছবি প্রদর্শন করার জন্য একটি পাসের বারকোড অংশকে ওভাররাইড করতে হয়:

পাইথন

#... 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"
                        }
                    ]
                }
            }
        }
    }
}
    

জাভা

//... 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"));
                }
            })))))
      }
    

পিএইচপি

//... 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[0].item
  • class.classTemplateInfo.detailsTemplateOverride
    .detailsItemInfos[1].item
  • class.classTemplateInfo.detailsTemplateOverride
    .detailsItemInfos[2].item
  • ...

ওয়েব

টেমপ্লেটের নিচের অংশ এবং আইটেমগুলির বিবরণ
  • একাধিক ধাপের ভ্রমণসূচী
  • class.classTemplateInfo.detailsTemplateOverride
    .detailsItemInfos[0].item
  • class.classTemplateInfo.detailsTemplateOverride
    .detailsItemInfos[1].item
  • class.classTemplateInfo.detailsTemplateOverride
    .detailsItemInfos[2].item
  • ...

নিচের অংশটি হলো class.classTemplateInfo.detailsTemplateOverride.detailsItemInfos[] -এর একটি আইটেমের তালিকা। আইটেমগুলোতে যেকোনো ধরনের স্ট্রাকচার্ড ডেটা ফিল্ড, টেক্সট মডিউল ফিল্ড, লিঙ্ক মডিউল ফিল্ড, ইমেজ মডিউল ফিল্ড বা মেসেজ থাকতে পারে।

প্রতিটি আইটেমকে একটি একক ফিল্ড সিলেক্টর ( .firstValue ), দুটি ফিল্ড সিলেক্টর ( .firstValue এবং .secondValue ), অথবা একটি প্রিডিফাইন্ড আইটেম ( .predefinedItem ) হিসেবে সংজ্ঞায়িত করা যেতে পারে। নির্বাচিত ফিল্ডের মান এবং তাদের নিজ নিজ লেবেল উভয়ই প্রদর্শিত হয়। যখন আপনি দুটি ফিল্ড সিলেক্টর সংজ্ঞায়িত করেন, তখন নির্বাচিত ফিল্ডগুলোর মান একটি "/" বিভাজক সহ প্রদর্শিত হয়। নির্বাচিত ফিল্ডগুলোর লেবেলের ক্ষেত্রেও একই নিয়ম প্রযোজ্য। আরও জটিল রেন্ডারিং সংজ্ঞায়িত করার জন্য প্রিডিফাইন্ড আইটেম ব্যবহার করা হয়। ইমেজ মডিউলের ফিল্ডগুলো লেবেল ছাড়া সম্পূর্ণ প্রস্থে রেন্ডার করা হয়।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে `pass`-এর নিচের অংশটি ওভাররাইড করে একটিমাত্র linksModuleData ফিল্ডকে তার লেবেল সহ প্রদর্শন করা যায়:

পাইথন

//... 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
    

জাভা

 //... 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
    

পিএইচপি

    //... 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
    

কোডটি নিম্নলিখিত বটম সেকশন ফরম্যাট সহ একটি পাস তৈরি করে:

নিম্ন অংশের একটি উদাহরণ ওভাররাইড।

কোনো আইটেম খালি থাকলে, তা প্রদর্শিত হয় না। আরও বিস্তারিত জানতে, ফিল্ড রেফারেন্স দেখুন।

আপনি যদি নিচের অংশটি ওভাররাইড না করেন, তাহলে রেফারেন্স ফিল্ডগুলির ডিফল্ট তালিকাটি ডিফল্ট ক্রমে প্রদর্শিত হবে। আরও তথ্যের জন্য, ডিফল্ট টেমপ্লেট দেখুন।

যাত্রাটিতে একাধিক পর্যায় থাকলে, বিভাগের শীর্ষে একটি সরল ভ্রমণসূচী প্রদর্শিত হয় এবং এটি সরানো যায় না। যাত্রাটিতে কেবল একটি পর্যায় থাকলে, class.enableSingleLegItinerary সেট করে একটি সরল ভ্রমণসূচী দেখানো যেতে পারে।

একাধিক পর্বের ভ্রমণসূচী
  1. class.tranistType
  2. object.ticketLegs[i].originName
    অথবা object.ticketLegs[i].originStationCode
  3. object.ticketLegs[i].departureDateTime (শুধুমাত্র সময়)
  4. object.ticketLegs[i].transitOperatorName
  5. কোচ অথবা class.customCoachLabel
  6. object.ticketLegs[i].ticketSeat.coach
    অথবা object.ticketLegs[i].ticketSeats[*].coach
  7. আসন বা class.customSeatLabel
  8. object.ticketLegs[i].ticketSeat.seat
    অথবা object.ticketLegs[i].ticketSeat.seatAssignment
    অথবা object.ticketLegs[i].ticketSeats[*].seat
    অথবা object.ticketLegs[i].ticketSeats[*].seatAssignment
    অথবা কোনো নির্দিষ্ট আসন নেই
  9. object.hexBackgroundColor
    অথবা class.hexBackgroundColor
  10. object.ticketLegs[i].destinationName
    অথবা object.ticketLegs[i].destinationStationCode
  11. object.ticketLegs[i].arrivalDateTime (শুধুমাত্র সময়)
  12. স্থানান্তর করুন: প্ল্যাটফর্ম
    অথবা এখানে স্থানান্তর করুন: class.customPlatformLabel
    অথবা স্থানান্তর (যদি কোনো প্ল্যাটফর্ম নির্ধারণ করা না থাকে)
  13. object.ticketLegs[i+1].platform

তালিকা টেমপ্লেট

তালিকা টেমপ্লেট উপাদান
  1. class.classTemplateInfo.listTemplateOverride
    .firstRowOption.fieldOption.fields[]
  2. object.ticketLeg.departureDateTime (গ্রুপকৃত)
    অথবা class.classTemplateInfo.listTemplateOverride
    .secondRowOption.fields[]
  3. class.logo
  4. object.hexBackgroundColor
    অথবা class.hexBackgroundColor
  5. <# পাস> (দলবদ্ধ)

গুগল ওয়ালেট অ্যাপের 'পাসেস' ভিউতে কোন ফিল্ডটি প্রদর্শন করা হবে তা নির্বাচন করতে লিস্ট টেমপ্লেট সেকশনটি ব্যবহৃত হয়। লিস্টটিতে পাসটিকে লোগো, ব্যাকগ্রাউন্ড কালার এবং তিনটি সারি দিয়ে উপস্থাপন করা হয়।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি পাসের তালিকা টেমপ্লেটকে ওভাররাইড করে সেই টেমপ্লেটের প্রথম সারিতে একটি নির্দিষ্ট পাসের অবজেক্টের মেয়াদ শেষ হওয়ার তারিখের ফিল্ডটি দেখানো যায়:

পাইথন

#... rest of class definition
   "classTemplateInfo": {
        "listTemplateOverride":{
            "firstRowOption": {
                "fieldOption":{
                    "fields": [{
                        "fieldPath": "object.validTimeInterval.end"
                    }]
                }
            }
        }
   }
}
    

জাভা

//... 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
    

পিএইচপি

    //... 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
    

কোডটি নিম্নলিখিত তালিকা টেমপ্লেট উপস্থাপনা সহ একটি পাস তৈরি করে:

তালিকার একটি উদাহরণ  ওভাররাইড।

প্রথম সারিটি একটি ফিল্ড সিলেক্টর দিয়ে নির্ধারণ করা যায় অথবা এটি যাত্রার সারাংশ প্রদর্শন করে। সারাংশের ফরম্যাট নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

  • originAndDestinationCodes
  • originAndDestinationNames
  • originName

দ্বিতীয় এবং তৃতীয় সারি শুধুমাত্র একটি ফিল্ড সিলেক্টরের মাধ্যমে নির্ধারণ করা যায়। ফিল্ডগুলো কোনো লেবেল ছাড়াই প্রদর্শিত হয়। গ্রুপ করা পাসের ক্ষেত্রে, দ্বিতীয় সারিতে সর্বদা যাত্রার তারিখ এবং তৃতীয় সারিতে সর্বদা গ্রুপ করা পাসের সংখ্যা দেখানো হয়।

লেবেল

সমস্ত স্ট্রাকচার্ড ডেটা ফিল্ডে গুগল কর্তৃক প্রদত্ত একটি লেবেল থাকে। গুগল সকল সমর্থিত ভাষায় এই লেবেলগুলোর প্রত্যেকটির অনুবাদ প্রদানের দায়িত্বে রয়েছে।

আপনি class.custom<name_of_the_field>Label ফিল্ডগুলোর একটি ব্যবহার করে এই লেবেলগুলোর কিছু কাস্টমাইজ করতে পারেন। যখন আপনি একটি লেবেল কাস্টমাইজ করেন, তখন আপনি যে সমস্ত ভাষা সমর্থন করতে চান, সেই সব ভাষায় নির্দিষ্ট লেবেলটির অনুবাদ সরবরাহ করার দায়িত্ব আপনার উপর বর্তায়।

ক্ষেত্রের রেফারেন্স

টেমপ্লেটের বিভিন্ন অংশে class.classTemplateInfo.*.fields[] ফর্মের সাথে ফিল্ড রেফারেন্স ব্যবহার করা হয়। একটি ফিল্ড রেফারেন্সে স্ট্রাকচার্ড ডেটা ফিল্ড, টেক্সট মডিউল ফিল্ড, লিঙ্ক মডিউল ফিল্ড, ইমেজ মডিউল ফিল্ড বা মেসেজের পাথের একটি তালিকা থাকে।

সব ফিল্ড রেফারেন্সে সব ধরনের পাথ অনুমোদিত নয়। উদাহরণস্বরূপ, কিছু ফিল্ড রেফারেন্সে শুধুমাত্র টেক্সট-ভিত্তিক স্ট্রাকচার্ড ডেটা ফিল্ড বা টেক্সট মডিউল ফিল্ডের পাথ অনুমোদিত। টেক্সট-ভিত্তিক স্ট্রাকচার্ড ফিল্ড হলো স্ট্রিং, স্থানীয় স্ট্রিং, তারিখ বা মানি টাইপের স্ট্রাকচার্ড ডেটা ফিল্ড।

তালিকাটি একটি ফলব্যাক লজিক প্রয়োগ করতে ব্যবহার করা যেতে পারে। এর মানে হলো, যদি তালিকার প্রথম পাথটি একটি খালি ফিল্ডে পরিণত হয়, তবে পরবর্তী পাথটি মূল্যায়ন করা হবে। ফলব্যাক লজিকটি মূলত টেক্সট-ভিত্তিক স্ট্রাকচার্ড ডেটা ফিল্ড বা টেক্সট মডিউল ফিল্ডের জন্য তৈরি। একই তালিকায় বিভিন্ন ধরনের ফিল্ড মিশ্রিত করবেন না। ফলব্যাক লজিকটি সতর্কতার সাথে এবং শুধুমাত্র নির্দিষ্ট পরিস্থিতিতে ব্যবহার করুন, যখন আপনি এমন ফিল্ডের একটি সামঞ্জস্যপূর্ণ প্যাটার্ন আশা করেন যা কিছু অবজেক্টে বিদ্যমান কিন্তু অন্যগুলিতে নয়। বেশিরভাগ সময়, আলাদা ব্যবহারের জন্য আলাদা ক্লাস তৈরি করা সহজতর হয়।

যদি একটি ফিল্ড রেফারেন্স তালিকার সমস্ত পাথ খালি ফিল্ডে পরিণত হয়, তাহলে যে আইটেমটি ফিল্ড রেফারেন্সটি ব্যবহার করে সেটি প্রদর্শিত হয় না। আপনি যদি চান যে ফিল্ড রেফারেন্স ব্যবহারকারী আইটেমটি সর্বদা উপস্থিত থাকুক, তাহলে নিশ্চিত করুন যে অন্তত একটি পাথ খালি নয়। আমরা সুপারিশ করি যে আপনি একটি ফিল্ডকে নাল ভ্যালু বোঝানোর জন্য '-' এর মতো একটি বিশেষ ক্যারেক্টারে সেট করুন, যদিও কিছু ফিল্ডে শুধু একটি স্পেস সহ স্ট্রিং ব্যবহারের অনুমতি থাকে।

একটি তালিকার অন্তর্ভুক্ত কোনো ফিল্ডকে রেফারেন্স করার জন্য, আপনি তালিকায় থাকা ফিল্ডটির ইন্ডেক্স ব্যবহার করতে পারেন অথবা, বেশিরভাগ ক্ষেত্রে, একটি রেফারেন্স আইডি ব্যবহার করতে পারেন। তালিকার যে আইটেমগুলোকে আইডি দ্বারা রেফারেন্স করা যায়, সেগুলোতে একটি .id ফিল্ড থাকে। যখন সম্ভব, আমরা আপনাকে তালিকার ফিল্ডের ইন্ডেক্সের পরিবর্তে রেফারেন্স আইডি ব্যবহার করার পরামর্শ দিই।

একটি তালিকার অন্তর্ভুক্ত ফিল্ডগুলোকে কীভাবে উল্লেখ করতে হয় তার একটি উদাহরণ এখানে দেওয়া হলো।

  • 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]

এক্ষেত্রে, পাসের ডিটেইলস সেকশনের প্রথম আইটেমটি হলো অবজেক্টে ঘোষিত দ্বিতীয় ইমেজ। অপরদিকে, পাসের ডিটেইলস সেকশনের দ্বিতীয় আইটেমটি হলো অবজেক্টে ঘোষিত প্রথম ইমেজ।

ডিফল্ট টেমপ্লেট

অ্যান্ড্রয়েড

ডিফল্ট পাস টেমপ্লেট লেআউট উপাদান এবং অবস্থান
  1. class.logo
  2. class.localizedIssuerName
    অথবা class.issuerName
  3. কার্ডের শিরোনাম দেখুন
  4. প্রস্থান অথবা বৈধ
  5. object.ticketLeg.departureDateTime (তারিখ এবং সময়)
    অথবা object.validTimeInterval.start.date
  6. আগমন তারিখ বা বৈধ তারিখ পর্যন্ত
  7. object.ticketLeg.arrivalDateTime (শুধুমাত্র সময়)
    অথবা object.validTimeInterval.end.date
  8. যাত্রী
  9. object.passengerNames
  10. ক্যারেজ অথবা class.customCarriageLabel
  11. object.ticketLeg.carriage
  12. কোচ অথবা class.customCoachLabel
  13. object.ticketLeg.ticketSeat.coach
  14. আসন বা class.customSeatLabel
  15. object.ticketLeg.ticketSeat.seat
    অথবা object.ticketLeg.ticketSeat.seatAssignment
  16. object.barcode.type এবং object.barcode.value
    অথবা object.ticketNumber
  17. object.barcode.alternateText
  18. object.hexBackgroundColor
    অথবা class.hexBackgroundColor
  19. একাধিক ধাপের ভ্রমণসূচী
  20. টিকেট নম্বর অথবা class.customTicketNumberLabel
  21. object.ticketNumber
  22. টিকেটের অবস্থা
  23. object.ticketStatus অথবা object.customTicketStatus
  24. প্রস্থান
  25. object.ticketLeg.departureDateTime
  26. আগমন
  27. object.ticketLeg.arrivalDateTime
  28. ভাড়ার নাম অথবা class.customFareNameLabel
  29. object.ticketLeg.fareName
  30. প্ল্যাটফর্ম অথবা class.customPlatformLabel
  31. object.ticketLeg.platform
  32. জোন অথবা class.customZoneLabel
  33. object.ticketLeg.zone
  34. ভাড়ার শ্রেণী অথবা class.customFareClassLabel
  35. object.ticketLeg.ticketSeat.fareClass
    অথবা object.ticketLeg.ticketSeat.customFareClass
  36. ছাড়ের বিভাগ
    অথবা class.customConcessionCategoryLabel
  37. object.concessionCategory
    অথবা object.customConcessionCategory
  38. রুট সীমাবদ্ধতা
    অথবা class.customRouteRestrictionsLabel
  39. object.ticketRestrictions.routeRestrictions
  40. রুট সীমাবদ্ধতার বিবরণ
    অথবা class.customRouteRestrictionsDetailsLabel
  41. object.ticketRestrictions.routeRestrictionsDetails
  42. সময়সীমা
    অথবা class.customTimeRestrictionsLabel
  43. object.ticketRestrictions.timeRestrictions
  44. অন্যান্য বিধিনিষেধ
    অথবা class.customOtherRestrictionsLabel
  45. object.ticketRestrictions.otherRestrictions
  46. রসিদ নম্বর
    অথবা class.customPurchaseReceiptNumberLabel
  47. object.purchaseDetails.purchaseReceiptNumber
  48. ক্রয়ের তারিখ
  49. object.purchaseDetails.purchaseDateTime
  50. অ্যাকাউন্ট আইডি
  51. object.purchaseDetails.accountId
  52. নিশ্চিতকরণ কোড
    অথবা class.customConfirmationCodeLabel
  53. object.purchaseDetails.confirmationCode
  54. বাহ্যিক মান অথবা class.customPurchaseFaceValueLabel
  55. object.purchaseDetails.ticketCost.faceValue
  56. মূল্য অথবা class.customPurchasePriceLabel
  57. object.purchaseDetails.ticketCost.purchasePrice
  58. ছাড়ের বার্তা
    অথবা class.customDiscountMessageLabel
  59. object.purchaseDetails.ticketCost.discountMessage
  60. class.imageModulesData[0].mainImage
  61. object.imageModulesData[0].mainImage
  62. class.messages[ ].header
  63. class.messages[ ].body
  64. object.messages[ ].header
  65. object.messages[ ].body
  66. class.textModulesData[0..9].header
  67. class.textModulesData[0..9].body
  68. object.textModulesData[0..9].header
  69. object.textModulesData[0..9].body
  70. class.linksModuleData.uris[ ].description
  71. object.linksModuleData.uris[ ].description

ওয়েব

ডিফল্ট পাস টেমপ্লেট লেআউট উপাদান এবং অবস্থান
  1. class.logo
  2. class.localizedIssuerName
    অথবা class.issuerName
  3. কার্ডের শিরোনাম দেখুন
  4. প্রস্থান অথবা বৈধ
  5. object.ticketLeg.departureDateTime (তারিখ এবং সময়)
    অথবা object.validTimeInterval.start.date
  6. আগমন তারিখ বা বৈধ তারিখ পর্যন্ত
  7. object.ticketLeg.arrivalDateTime (শুধুমাত্র সময়)
    অথবা object.validTimeInterval.end.date
  8. যাত্রী
  9. object.passengerNames
  10. ক্যারেজ অথবা class.customCarriageLabel
  11. object.ticketLeg.carriage
  12. কোচ অথবা class.customCoachLabel
  13. object.ticketLeg.ticketSeat.coach
  14. আসন বা class.customSeatLabel
  15. object.ticketLeg.ticketSeat.seat
    অথবা object.ticketLeg.ticketSeat.seatAssignment
  16. object.barcode.type এবং object.barcode.value
    অথবা object.ticketNumber
  17. object.barcode.alternateText
  18. object.hexBackgroundColor
    অথবা class.hexBackgroundColor
  19. একাধিক ধাপের ভ্রমণসূচী
  20. টিকেট নম্বর অথবা class.customTicketNumberLabel
  21. object.ticketNumber
  22. টিকেটের অবস্থা
  23. object.ticketStatus অথবা object.customTicketStatus
  24. প্রস্থান
  25. object.ticketLeg.departureDateTime
  26. আগমন
  27. object.ticketLeg.arrivalDateTime
  28. ভাড়ার নাম অথবা class.customFareNameLabel
  29. object.ticketLeg.fareName
  30. প্ল্যাটফর্ম অথবা class.customPlatformLabel
  31. object.ticketLeg.platform
  32. জোন অথবা class.customZoneLabel
  33. object.ticketLeg.zone
  34. ভাড়ার শ্রেণী অথবা class.customFareClassLabel
  35. object.ticketLeg.ticketSeat.fareClass
    অথবা object.ticketLeg.ticketSeat.customFareClass
  36. ছাড়ের বিভাগ
    অথবা class.customConcessionCategoryLabel
  37. object.concessionCategory
    অথবা object.customConcessionCategory
  38. রুট সীমাবদ্ধতা
    অথবা class.customRouteRestrictionsLabel
  39. object.ticketRestrictions.routeRestrictions
  40. রুট সীমাবদ্ধতার বিবরণ
    অথবা class.customRouteRestrictionsDetailsLabel
  41. object.ticketRestrictions.routeRestrictionsDetails
  42. সময়সীমা
    অথবা class.customTimeRestrictionsLabel
  43. object.ticketRestrictions.timeRestrictions
  44. অন্যান্য বিধিনিষেধ
    অথবা class.customOtherRestrictionsLabel
  45. object.ticketRestrictions.otherRestrictions
  46. রসিদ নম্বর
    অথবা class.customPurchaseReceiptNumberLabel
  47. object.purchaseDetails.purchaseReceiptNumber
  48. ক্রয়ের তারিখ
  49. object.purchaseDetails.purchaseDateTime
  50. অ্যাকাউন্ট আইডি
  51. object.purchaseDetails.accountId
  52. নিশ্চিতকরণ কোড
    অথবা class.customConfirmationCodeLabel
  53. object.purchaseDetails.confirmationCode
  54. বাহ্যিক মান অথবা class.customPurchaseFaceValueLabel
  55. object.purchaseDetails.ticketCost.faceValue
  56. মূল্য অথবা class.customPurchasePriceLabel
  57. object.purchaseDetails.ticketCost.purchasePrice
  58. ছাড়ের বার্তা
    অথবা class.customDiscountMessageLabel
  59. object.purchaseDetails.ticketCost.discountMessage
  60. class.imageModulesData[0].mainImage
  61. object.imageModulesData[0].mainImage
  62. class.messages[ ].header
  63. class.messages[ ].body
  64. object.messages[ ].header
  65. object.messages[ ].body
  66. class.textModulesData[0..9].header
  67. class.textModulesData[0..9].body
  68. object.textModulesData[0..9].header
  69. object.textModulesData[0..9].body
  70. class.linksModuleData.uris[ ].description
  71. object.linksModuleData.uris[ ].description

ইমেজ মডিউল ফিল্ডের ক্ষেত্রে, আমরা ক্লাস থেকে শুধুমাত্র একটি এবং অবজেক্ট থেকে শুধুমাত্র একটি ইমেজ মডিউল ফিল্ড দেখাই। যদি আপনার যেকোনো স্তরে একাধিক ইমেজ মডিউল ফিল্ডের প্রয়োজন হয়, তাহলে ডিফল্ট টেমপ্লেটটি ওভাররাইড করুন।

টেক্সট মডিউল ফিল্ডের ক্ষেত্রে, আমরা ক্লাস থেকে সর্বোচ্চ ২০টি এবং অবজেক্ট থেকে সর্বোচ্চ ২০টি টেক্সট মডিউল ফিল্ড প্রদর্শন করি। ফিল্ডগুলো অ্যারেতে যে ক্রমে সংজ্ঞায়িত করা হয়েছে, সেই একই ক্রমে প্রদর্শিত হয়। যদি আপনার যেকোনো স্তরে ২০টির বেশি টেক্সট মডিউল ফিল্ডের প্রয়োজন হয়, তবে ডিফল্ট টেমপ্লেটটি ওভাররাইড করুন।

মেসেজের ক্ষেত্রে, আমরা ক্লাস থেকে সর্বোচ্চ ২০টি এবং অবজেক্ট থেকে সর্বোচ্চ ২০টি মেসেজ দেখাই। আমরা মেসেজগুলোর ক্রমের নিশ্চয়তা দিই না। যদি আপনার যেকোনো স্তরে ২০টির বেশি মেসেজের প্রয়োজন হয়, অথবা কোনো নির্দিষ্ট ক্রমের নিশ্চয়তা চান, তাহলে ডিফল্ট টেমপ্লেটটি ওভাররাইড করুন।

লিঙ্কস মডিউল ফিল্ডের জন্য, আপনি যত খুশি ইউআরআই (uri) সংজ্ঞায়িত করতে পারেন, এর কোনো সীমা নেই। প্রতিটি লেভেলের (ক্লাস বা অবজেক্ট) জন্য ইউআরআইগুলো নিম্নলিখিত ক্রমে দলবদ্ধভাবে প্রদর্শিত হয়:

  1. মানচিত্র স্থানাঙ্ক
  2. টেলিফোন নম্বর
  3. ইমেল ঠিকানা
  4. ওয়েব পৃষ্ঠাগুলি

প্রতিটি গ্রুপের জন্য, URI-গুলো অ্যারেতে যে ক্রমে সংজ্ঞায়িত করা হয়েছে, সেই একই ক্রমে প্রদর্শিত হয়। যদি আপনার ভিন্ন কোনো বিন্যাসের প্রয়োজন হয়, তবে ডিফল্ট টেমপ্লেটটি ওভাররাইড করুন।

ডিফল্ট তালিকা টেমপ্লেট লেআউট উপাদান এবং অবস্থান
  1. ( object.ticketLeg.originName
    এবং object.ticketLeg.destinationName )
    অথবা ( object.ticketLeg.originStationCode
    এবং object.ticketLeg.destinationStationCode )
    অথবা object.ticketLeg.originName
  2. object.ticketLeg.departureDateTime
    অথবা object.validTimeInterval.end.date
  3. class.logo
  4. object.hexBackgroundColor
    অথবা class.hexBackgroundColor
  5. <# পাস> (দলবদ্ধ)