Pendahuluan
Ambil jenis entitas yang berlaku di seluruh sistem yang mengklasifikasikan halaman, formulir, blok, dan produk Anda.
Informasi lebih lanjut tentang antarmuka pengguna modul: https://doc.oneentry.cloud/docs/attributes/types/#General-Type-Attributes
🎯 Apa yang dilakukan modul ini?
Modul GeneralTypes memungkinkan Anda untuk mengambil jenis entitas yang berlaku di seluruh sistem - jenis halaman, jenis formulir, jenis blok, dan jenis produk - yang mendefinisikan kategori konten dalam proyek OneEntry Anda. OneEntry menggunakan seperangkat jenis sistem tetap (BlockType) untuk mengklasifikasikan halaman (common_page, catalog_page, external_page, error_page), formulir (form), blok (common_block, product_block, slider_block, …), dan produk (product, service). Modul ini bersifat hanya baca.
🚀 Memulai dengan Cepat
Inisialisasi modul dari defineOneEntry:
const { GeneralTypes } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Ambil semua jenis dan gunakan:
// Returns a combined list of types across all entities.
const types = await GeneralTypes.getAllTypes();
// e.g. [{ id: 1, type: "product" }, { id: 2, type: "common_page" }, ...]
// Filter manually - there is no built-in per-entity filter.
const pageTypes = types.filter((t) => t.type.endsWith("_page"));
console.log(pageTypes);
✨ Konsep Kunci
Sistem Tipe
OneEntry mengklasifikasikan setiap entitas dengan nilai BlockType:
| Entitas | Contoh Tipe (BlockType) | Tujuan |
|---|---|---|
| Halaman | common_page, catalog_page, external_page, error_page | Mendefinisikan tata letak dan fungsionalitas halaman |
| Formulir | form | Mengkategorikan tujuan formulir |
| Blok | common_block, product_block, slider_block | Blok bangunan untuk halaman/produk |
| Produk | product, service | Mengklasifikasikan inventaris produk |
Struktur Entitas Tipe
Setiap tipe yang dikembalikan oleh getAllTypes() adalah GeneralTypeEntity:
interface GeneralTypeEntity {
id: number; // Unique numeric ID (e.g. 1, 2, 3)
type: BlockType; // Type name (e.g. "product", "common_page", "form")
}
📋 Apa yang Perlu Anda Ketahui
Tipe adalah kategori sistem yang telah ditentukan
Anda tidak dapat membuat tipe melalui SDK - mereka adalah seperangkat kategori sistem tetap (BlockType) yang ditentukan oleh platform. GeneralTypes hanya mengambil daftar tipe yang ada dalam proyek Anda. Semua manajemen tipe terjadi di panel admin OneEntry.
getAllTypes() mengembalikan SEMUA tipe di semua entitas
Metode ini mengembalikan daftar gabungan tipe dari halaman, formulir, blok, produk, dan entitas lainnya. Tidak ada penyaringan bawaan berdasarkan kategori entitas, jadi saring hasilnya secara manual (misalnya, t.type.endsWith('_page')).
Tipe vs. Penanda vs. ID
| Pengidentifikasi | Apa Itu | Contoh | Terbaik Untuk |
|---|---|---|---|
| Tipe | Kategori/klasifikasi entitas | "catalog_page" | Penyaringan dan pengelompokan |
| Penanda | Pengidentifikasi unik yang dapat dibaca manusia | "my_about_page" | Mengambil entitas tertentu |
| ID | Pengidentifikasi numerik database | 42 | Penggunaan sistem internal |
Gunakan string type dalam logika kode Anda (misalnya, if (page.type === 'catalog_page')) - ini stabil di seluruh lingkungan, sedangkan id dapat berbeda.
📊 Tabel Referensi Cepat
| Metode | Deskripsi | Kasus Penggunaan |
|---|---|---|
| getAllTypes() | Mengambil semua tipe umum dalam sistem | Mengisi dropdown, memvalidasi tipe |
❓ Pertanyaan Umum (FAQ)
Bagaimana cara saya membuat tipe baru?
Anda tidak dapat - tipe adalah seperangkat kategori sistem tetap (BlockType) dan modul ini bersifat hanya baca. Ambil yang tersedia dalam proyek Anda dengan getAllTypes().
Bagaimana cara saya menyaring tipe berdasarkan entitas (halaman, formulir, produk)?
getAllTypes() mengembalikan semua tipe di semua entitas. Saring hasilnya secara manual, misalnya types.filter(t => t.type.endsWith('_page')).
Bisakah saya memperbarui atau menghapus tipe melalui SDK?
Tidak. Modul GeneralTypes bersifat hanya baca - semua manajemen tipe terjadi di panel admin OneEntry.
Apa perbedaan antara ID tipe dan nama tipe?
Gunakan string type untuk logika kode dan perbandingan Anda (stabil di seluruh lingkungan). Nomor id adalah untuk referensi database internal dan dapat berubah antara proyek.
Bisakah saya menyimpan daftar tipe dalam cache?
Ya - tipe jarang berubah, jadi caching disarankan.
🎓 Praktik Terbaik
- Ambil tipe secara dinamis - jangan hardcode daftar tipe.
- Gunakan string
type, bukanid- nama tipe stabil di seluruh lingkungan. - Saring secara manual -
getAllTypes()mengembalikan semua tipe entitas dalam satu daftar. - Simpan daftar dalam cache - jarang berubah.
- Tangani tipe yang tidak dikenal dengan baik - sediakan rendering cadangan.
🔗 Dokumentasi Terkait
- Modul Halaman - Halaman yang diklasifikasikan berdasarkan tipe
- Modul Formulir - Formulir yang diklasifikasikan berdasarkan tipe
- Modul Blok - Blok yang diklasifikasikan berdasarkan tipe
- Modul Produk - Produk yang diklasifikasikan berdasarkan tipe