ธีมต้องมีไฟล์ 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"