ทำความเข้าใจเกี่ยวกับไฟล์และรูปแบบของ components.json

ธีมต้องมีไฟล์ components.json ที่อยู่ที่ /ThemeName/components.json ซึ่งจะระบุองค์ประกอบที่ใช้ในธีม

ไฟล์นี้ต้องมี JSON ที่ถูกต้อง และไฟล์ต้องมีอาร์เรย์ JSON array [] เป็นอย่างน้อย

รูปแบบคำสั่งของไฟล์ components.json จะแสดงองค์ประกอบในระบบทั้งหมด และรองรับการจัดชนิดขององค์ประกอบอย่างเต็มที่ (องค์ประกอบระยะไกลได้รับการรีจิสเตอร์ไว้ในแคตตาล็อกขององค์ประกอบ)

ไม่ว่าจะเพิ่มองค์ประกอบใดในไฟล์ components.json ระดับธีม (รวมถึง "ไม่มี") Oracle Content Management ก็จะป็อปปูเลทชุดดีฟอลต์ขององค์ประกอบที่ใช้ได้สำหรับผู้ใช้ ชุดดีฟอลต์ได้รับการกำหนดในซอร์สโค้ด ลิสต์ต่อไปนี้แสดงองค์ประกอบและองค์ประกอบ (ที่เป็นตัวเลือก) ที่แสดงผลในเฟรมแบบอินไลน์ นอกจากนี้ องค์ประกอบระยะไกลใดๆ ที่รีจิสเตอร์ที่ระดับบริการและพร้อมใช้งานสำหรับผู้ใช้ในอินสแตนซ์ของคุณจะพร้อมใช้งานในตัวสร้างไซต์ด้วย

องค์ประกอบในระบบต่อไปนี้จะรวมอยู่ใน Oracle Content Management

ชื่อ ประเภท ID

ชื่อ

scs-title

scs-title

ย่อหน้า

scs-paragragh

scs-paragragh

รูปภาพ

scs-image

scs-image

แกลเลอรี่

scs-gallery

scs-gallery

กริดของแกลเลอรี่

scs-gallerygrid

scs-gallerygrid

เอกสาร

scs-document

scs-document

ปุ่ม

scs-button

scs-button

แผนที่

scs-map

scs-map

ตัวคั่น

scs-divider

scs-divider

ตัวควบคุมพื้นที่ว่าง

scs-spacer

scs-spacer

YouTube

scs-youtube

scs-youtube

แถบข้อมูลสังคม

scs-socialbar

scs-socialbar

วิดีโอ

วิดีโอ scs

วิดีโอ scs

บทความ (องค์ประกอบที่กำหนดเอง)

scs-component

scs-comp-article

หัวข้อ (องค์ประกอบที่กำหนดเอง)

scs-component

scs-comp-headline

รูปภาพและข้อความ (องค์ประกอบที่กำหนดเอง)

scs-component

scs-comp-image-text

องค์ประกอบเหล่านี้ซึ่งแสดงผลในเฟรมแบบอินไลน์จะรวมอยู่กับ Oracle Content Management แต่ไม่รวมถึงองค์ประกอบระยะไกลที่รีจิสเตอร์

ชื่อ ประเภท ID

การสื่อสาร

scs-app

การสื่อสาร

โปรแกรมจัดการเอกสาร

scs-app

โปรแกรมจัดการเอกสาร

ลิสต์โฟลเดอร์

scs-app

ลิสต์โฟลเดอร์

ลิสต์ไฟล์

scs-app

ลิสต์ไฟล์

ปุ่มถูกใจของ Facebook

scs-app

ปุ่มถูกใจของ Facebook

การแนะนำของ Facebook

scs-app

การแนะนำของ Facebook

การติดตาม Twitter

scs-app

การติดตาม Twitter

การแชร์ของ Twitter

scs-app

การแชร์ของ Twitter

รูปแบบทั่วไป

รูปแบบทั่วไปของไฟล์ components.json มีดังนี้

  • คุณสมบัติสำหรับองค์ประกอบจะได้รับการระบุภายในแต่ละองค์ประกอบ คุณสมบัติ "components" หรือ "apps" ระดับบนสุดจะถูกเลิกใช้

  • แต่ละองค์ประกอบจะมีคุณสมบัติ "type" องค์ประกอบสามารถค่าบางค่าเท่านั้น (ค่าที่ใช้ได้ทั้งหมดจะแสดงอยู่ในตารางสำหรับองค์ประกอบดีฟอลต์)

  • แต่ละองค์ประกอบจะมีคุณสมบัติ "id" ซึ่งต้องไม่ซ้ำกัน คุณสมบัตินี้ใช้เพื่อแบ่งแยกระหว่างองค์ประกอบต่างๆ ที่มี "type" เดียวกัน ก่อนหน้านี้แอปมีคุณสมบัติ "appName" ขณะที่ "appName" ยังคงใช้งานได้หากคุณสมบัติ "id" ไม่พร้อมใช้งาน แต่คุณสมบัติ "appName" จะถูกเลิกใช้

  • แต่ละองค์ประกอบจะมีคุณสมบัติ "name" ที่เป็นชื่อที่ปรากฏในอินเตอร์เฟซผู้ใช้ หากไม่ได้ระบุค่าการเรียกกลับ ค่าจะเป็นชื่อขององค์ประกอบดีฟอลต์ที่เกี่ยวข้องสำหรับองค์ประกอบ และค่าจะเป็น ID สำหรับองค์ประกอบระยะไกล

ตัวอย่างของไฟล์ components.json มีดังนี้

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline",
                "name": "My Headline",
                ...
            },
            {
                ...
            },...
        ]
    },
    {
        "name": "My own category name",
        "list": [ ... ]
    }
]

โครงสร้างทั่วไปคืออาร์เรย์ JSON ของออบเจกต์ชนิด ออบเจกต์ชนิดแต่ละรายการจะมีคุณสมบัติ "name" และคุณสมบัติ "list" คุณสมบัติ "name" สามารถเป็นคีย์ที่แมปกับสตริงที่โลคัลไลซ์ หากชนิดดีฟอลต์เหล่านี้ไม่เพียงพอ คุณสามารถระบุชื่อชนิดของคุณเอง ซึ่งจะไม่ได้รับการโลคัลไลซ์ ตารางต่อไปนี้แสดงชนิดดีฟอลต์ที่มีและคีย์ที่เกี่ยวข้อง

คีย์ ชื่อชนิด (ภาษาอังกฤษ)

COMP_CONFIG_CONTENT_CATEGORY_NAME

เนื้อหา

COMP_CONFIG_CUSTOM_CATEGORY_NAME

กำหนดเอง

COMP_CONFIG_MEDIA_CATEGORY_NAME

สื่อ

COMP_CONFIG_SOCIAL_CATEGORY_NAME

โซเชียล

COMP_CONFIG_TEXT_CATEGORY_NAME

ข้อความ

คุณสมบัติ "list" ในออบเจกต์ชนิดแต่ละรายการจะมีอาร์เรย์ของออบเจกต์องค์ประกอบ องค์ประกอบหรือออบเจกต์แต่ละรายการต้องมีคุณสมบัติ "type" และ "id" คุณสมบัติอื่นๆ สามารถเลือกระบุได้

  • คุณสมบัติ "type" ต้องเหมือนกับหนึ่งในประเภทที่พบในองค์ประกอบดีฟอลต์ หาก "type" ไม่มีอยู่ องค์ประกอบจะไม่แสดงขึ้น

  • คุณสมบัติ "id" ต้องไม่เหมือนกันในองค์ประกอบต่างๆ หากพบว่ามี "id" อยู่แล้ว องค์ประกอบจะไม่แสดงขึ้น

  • คุณสมบัติ "name" คือชื่อที่ปรากฏสำหรับองค์ประกอบในอินเตอร์เฟซผู้ใช้ ตัวเลือกนี้จะแทนที่คุณสมบัติ "appName" ก่อนหน้าสำหรับแอปพลิเคชัน (ตอนนี้เป็นองค์ประกอบระยะไกล)

  • คุณสมบัติอื่นๆ ทั้งหมดจะได้รับการดำเนินการเช่นเดียวกับในรีลีสก่อนหน้า

เพิ่มองค์ประกอบใหม่ไปยัง components.json

คุณไม่ได้รับอนุญาตให้แก้ไของค์ประกอบดีฟอลต์ อย่างไรก็ตาม คุณสามารถสร้างองค์ประกอบใหม่ตามองค์ประกอบดีฟอลต์ที่มีอยู่ ตัวอย่างเช่น คุณสามารถสร้างองค์ประกอบใหม่ตามองค์ประกอบ "scs-title" ซึ่งจะกำหนดข้อความดีฟอลต์บางอย่าง ข้อกำหนดขั้นต่ำที่จำเป็นสำหรับการเพิ่มองค์ประกอบใหม่คือการระบุคุณสมบัติ "type" และ "id"

  • "type" ต้องเหมือนกับหนึ่งในประเภทที่พบในองค์ประกอบดีฟอลต์ หาก "type" ไม่มีอยู่ องค์ประกอบจะไม่แสดงขึ้น

  • "id" ต้องไม่ซ้ำกันในองค์ประกอบต่างๆ หากพบว่ามี "id" อยู่แล้ว องค์ประกอบจะไม่แสดงขึ้น

ต่อไปนี้คือตัวอย่างรหัสในการเพิ่มองค์ประกอบของชื่อใหม่ องค์ประกอบนี้จะแสดงพร้อมกับองค์ประกอบของชื่อดีฟอลต์

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline"
            }
        ]
    }
]

ต่อไปนี้คือตัวอย่างรหัสในการเพิ่มองค์ประกอบของชื่อใหม่พร้อมที่ปรากฏและข้อความดีฟอลต์

[
    {
        "name": "COMP_CONFIG_TEXT_CATEGORY_NAME",
        "list": [
            {
                "type": "scs-title",
                "id": "my-headline",
                "name": "My Headline",
                "initialData": {
                    "userText": "This is a second title component"
                }
            }
        ]
    }
]

โปรดทราบว่าองค์ประกอบของชื่อจะถือว่าคุณสมบัติทั้งหมดขององค์ประกอบของชื่อดีฟอลต์เป็นรายการหลัก และจะใช้การแก้ไขระดับธีมก่อนเป็นอันดับแรกเพื่อสร้างองค์ประกอบใหม่

ความเข้ากันได้แบบย้อนหลัง

ไฟล์ components.json ในรูปแบบก่อนหน้าจะยังคงอ่านได้

  • ไฟล์ที่มีคุณสมบัติ "components" หรือ "apps" ระดับบนสุด

  • หากไฟล์มีคุณสมบัติ "apps" ระบบจะยังคงโหลดองค์ประกอบระยะไกลที่ผู้ใช้กำหนดที่อยู่ภายใต้คุณสมบัตินี้

  • หากไฟล์มีคุณสมบัติ "apps" ระดับบนสุด แสดงว่าองค์ประกอบระยะไกลใดๆ ที่แสดงอยู่ระดับล่างมีประเภท "scs-app"

  • หากมีคุณสมบัติ "appName" ให้ตั้งค่า "id" เป็นค่า "appName" ชื่อที่ปรากฏจะเหมือนกับ "name" หากระบุไว้ หรือเป็นค่า "id"