Giriş
Kodla oynamadan içeriğiniz için özel alanlar tanımlayın.
🎯 Bu modül ne yapar?
AttributesSets modülü, içeriğiniz (ürünler, sayfalar, formlar vb.) için özel alanlar kullanmanıza olanak tanır; bunları uygulamanıza sabit kodlamadan.
Bunu verileriniz için bir form oluşturucu olarak düşünün - hangi alanlara ihtiyacınız olduğunu tanımlarsınız ve OneEntry geri kalanını halleder.
📖 Basit Açıklama
Bir çevrimiçi mağaza kurduğunuzu hayal edin. Her ürünün ihtiyacı var:
- İsim (metin).
- Fiyat (sayı).
- Resim (görüntü).
- Açıklama (uzun metin).
- Kategori (açılır liste).
Bu alanları uygulamanızda sabit kodlamak yerine, Attributes kullanarak OneEntry yönetim panelinde tanımlarsınız. Sonra:
- İstediğiniz zaman yeni alanlar ekleyebilirsiniz (kod değişikliği yok!).
- Farklı içerik türleri arasında alanları yeniden kullanabilirsiniz.
- Yeniden dağıtım yapmadan alan türlerini değiştirebilirsiniz.
- Tüm içerik yapısını tek bir yerden yönetebilirsiniz.
Gerçek dünya örneği:
Attributes olmadan (sabit kodlanmış):
- Kod: const product = { name: 'Ürün adı', price: 150, image: '', description: '' }
- "renk" alanını eklemek için → Kodu değiştir, yeniden dağıt, bekle.
Attributes ile (dinamik):
- Kod: const { name, price, image, description } = product
- Yönetim paneli: "renk" niteliğini ekle.
- Kod otomatik olarak yeni alanı içerir.
- Kod: const { name, price, image, description, color } = product
- Yeniden dağıtım gerekmez!
✨ Temel Kavramlar
Nedir bir Attribute?
Bir attribute, veri saklayan tek bir alandır.
Örnekler:
- Ürün adı (dize).
- Ürün fiyatı (ondalık).
- Ürün resmi (görüntü).
- Yayın tarihi (tarih).
Nedir bir Attribute Set?
Bir attribute set, bir yapıyı tanımlayan attribute'ların bir koleksiyonudur.
Örnek: Ürün Attribute Set'i
- name (dize)
- price (ondalık)
- description (metin)
- images (resim grubu)
- category (liste)
- inStock (tam sayı)
Neden Attribute Set'leri Kullanmalısınız?
| ❌ Attributes Olmadan | ✅ Attributes ile |
|---|---|
| Sabit kodlanmış alanlar | Dinamik alanlar |
| Kod değişiklikleri gerekli | Yönetim panelinde düzenleme |
| Yeniden dağıtım gerekli | Canlı güncellemeler |
| Katı yapı | Esnek yapı |
| Tekrar eden kod | Yeniden kullanılabilir setler |
📋 Bilmeniz Gerekenler
Üç Önemli Terim
| Terim | Nedir | Örnek |
|---|---|---|
| Marker | Benzersiz kod tanımlayıcı | "product_name" |
| Type | Hangi tür veriyi saklar | "string", "integer", "image" |
| Value | Attribute değeri | "Ürün Adı" |
Marker'lar hakkında önemli bilgiler:
- Benzersiz olmalıdır
- Boşluk olmamalıdır (yerine
_kullanın) - Bir sayı ile başlayamaz
- Tutarlılık için küçük harf kullanın
Örnekler:
- ✅ İyi:
product_name,price_usd,main_image - ❌ Kötü:
product name,2nd_price,Product Name
📚 Mevcut Veri Türleri
Attributes farklı türde verileri saklayabilir. Her alan için doğru türü seçin.
Hızlı Referans Tablosu
| Tür | En İyi Kullanım | Örnek Kullanım |
|---|---|---|
| string | Kısa metin | Ürün adı, e-posta |
| text | Uzun formatlı metin | Blog yazısı, açıklama |
| textWithHeader | Başlıklı metin | Makale bölümleri |
| integer | Tam sayılar | Miktar, yaş |
| real | Yüksek hassasiyetli ondalıklar | Bilimsel veriler |
| float | Ondalık sayılar | Fiyat, puan |
| date | Sadece tarih | Doğum tarihi, son tarih |
| dateTime | Tarih + saat | Etkinlik başlangıcı, yayın tarihi |
| time | Sadece saat | Açılış saatleri |
| file | Herhangi bir dosya | PDF, belge |
| image | Tek resim | Avatar, logo |
| groupOfImages | Birden fazla resim | Fotoğraf galerisi |
| radioButton | Tek seçim | Beden (S/M/L) |
| list | Açılır seçim | Ülke, kategori |
| entity | Diğer içeriğe bağlantı | İlgili ürünler |
| timeInterval | Tarih aralığı | Promosyon süresi |
| json | Özel yapılandırılmış veri | API yanıtı |
🔍 Veri Türlerinin Ayrıntılı Açıklamaları
Metin Türleri
Ne zaman neyi kullanmalısınız:
- string - Tek satır, 255 karakterden az (isim, e-posta, başlık)
- text - Birden fazla paragraf, biçimlendirmeyi destekler (makaleler, açıklamalar)
- textWithHeader - Başlık gerektiren metin (blog bölümleri, SSS)
Sayı Türleri
Ne zaman neyi kullanmalısınız:
- integer - Ondalık gerektirmeyen sayılar (yaş, miktar, görüntüleme)
- float - Standart ondalık sayılar (fiyat $19.99, puan 4.5)
- real - Ekstra hassasiyet gerektiren sayılar (bilimsel hesaplamalar)
Tarih/Saat Türleri
Ne zaman neyi kullanmalısınız:
- date - Sadece gün (doğum günü, son tarih)
- time - Sadece saat (iş saatleri, randevu saati)
- dateTime - Her ikisi de gerekli (etkinlik başlangıcı, makale yayınlandı)
- timeInterval - Tarihler arasındaki dönem (indirim süresi, tatil tarihleri)
Dosya ve Resim Türleri
Ne zaman neyi kullanmalısınız:
- file - Herhangi bir belge (PDF, DOC, ZIP)
- image - Tek resim (ürün fotoğrafı, avatar)
- groupOfImages - Birden fazla resim (galeri, ürün resimleri)
Seçim Türleri
Ne zaman neyi kullanmalısınız:
- radioButton - Yalnızca BİR seçeneği seçin (Evet/Hayır, Beden S/M/L)
- list - Seçeneklerle açılır menü (Ülke, Kategori)
Gelişmiş Türler
- entity - Diğer sayfalara/ürünlere bağlantı (İlgili Öğeler, Kategoriler)
- json - Karmaşık veri yapıları saklamak için (API yanıtları, ayarlar)
📖 Veri Türü Örnekleri
Aşağıda her veri türünün yapısına dair teknik örnekler bulunmaktadır.
💡Attribute set'inde dönen veri, gerçek attribute değerlerini içermez; bu değerler sayfalar, ürünler gibi belirli varlıklar içinde yer alır. Tek istisna, timeInterval attribute türüdür. Bu attribute, admin paneli'deki ilgili kutucuğu işaretleyerek değerler alabilir.
Tüm veri türü örneklerini görmek için tıklayın
Veri Türleri Referansı
Veri türleri aşağıdaki türlerde olabilir:
- String: Basit metin, örneğin, "Merhaba, dünya!".
Örnek:
{
"type": "string",
"value": {},
"marker": "string",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "String"
},
"additionalFields": [
{
"type": "integer",
"value": "10",
"marker": "Extra"
}
]
}
- Text: Daha uzun metin, genellikle biçimlendirilmiş, örneğin, bir makale veya mektup.
Örnek:
{
"type": "text",
"value": {},
"marker": "text",
"position": 2,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Text"
},
"additionalFields": []
}
- Text with Header: Bir konuyu veya kategoriyi belirtmek için kullanılabilecek başlıklı metin.
Örnek:
{
"type": "textWithHeader",
"value": {},
"marker": "text_with_header",
"position": 3,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Text With Header"
},
"additionalFields": []
}
- Integer: Bir tam sayı, örneğin, 5, 100, -2.
Örnek:
{
"type": "integer",
"value": {},
"marker": "integer",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Integer"
},
"additionalFields": []
}
- Real: Float ile aynı, ancak daha yüksek hassasiyetle.
Örnek:
{
"type": "real",
"value": {},
"marker": "real_number",
"position": 5,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Real Number"
},
"additionalFields": []
}
- Float: Ondalık kısmı olabilen kayan nokta sayıları için bir veri türü, örneğin, 3.14, 1.5, -0.25.
Örnek:
{
"type": "float",
"value": {},
"marker": "float",
"position": 6,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Float"
},
"additionalFields": []
}
- Date and Time: Tarih ve saat kombinasyonu, örneğin, 2023-10-27 10:00:00.
Örnek:
{
"type": "dateTime",
"value": {},
"marker": "date_time",
"position": 7,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "DateTime"
},
"additionalFields": []
}
- Date: Bir tarih, örneğin, 2023-10-27.
Örnek:
{
"type": "date",
"value": {},
"marker": "date",
"position": 8,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Date"
},
"additionalFields": []
}
- Time: Bir saat, örneğin, 10:00:00.
Örnek:
{
"type": "date",
"value": {},
"marker": "date",
"position": 8,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Date"
},
"additionalFields": []
}
- File: Bilgisayarınızdaki herhangi bir dosya, örneğin, bir belge, resim, müzik.
Örnek:
{
"type": "file",
"value": {},
"marker": "file",
"position": 10,
"listTitles": [],
"validators": {
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": "2000",
"minUnits": "kb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "File"
},
"additionalFields": []
}
- Image: Bir resim, örneğin, bir fotoğraf, çizim.
Örnek:
{
"type": "image",
"value": {},
"marker": "image",
"position": 11,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": "500",
"maxY": "500"
}
},
"localizeInfos": {
"title": "Image"
},
"additionalFields": []
}
- Group of Images: Bir resim koleksiyonu, örneğin, bir fotoğraf albümü.
Örnek:
{
"type": "groupOfImages",
"value": {},
"marker": "image_group",
"position": 12,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Image Group"
},
"additionalFields": []
}
- Radio Button: Yalnızca bir seçeneğin seçilebileceği bir seçim butonu.
Örnek:
{
"type": "radioButton",
"value": {},
"marker": "radio",
"position": 13,
"listTitles": [
{
"title": "A",
"value": "a",
"extended": {
"type": null,
"value": null
},
"position": 1
},
{
"title": "B",
"value": "b",
"extended": {
"type": null,
"value": null
},
"position": 2
}
],
"validators": {},
"localizeInfos": {
"title": "Radio"
},
"additionalFields": []
}
- List: Ögelerin bir listesi, örneğin, bir alışveriş listesi.
Örnek:
{
"type": "list",
"value": {},
"marker": "list",
"position": 14,
"listTitles": [
{
"title": "A",
"value": "a",
"extended": {
"type": null,
"value": null
},
"position": 1
},
{
"title": "B",
"value": "b",
"extended": {
"type": null,
"value": null
},
"position": 2
},
{
"title": "C",
"value": "c",
"extended": {
"type": "string",
"value": "Ek Değer"
},
"position": 3
}
],
"validators": {},
"localizeInfos": {
"title": "List"
},
"additionalFields": []
}
- Entity: Bir nesneyi temsil eden bir varlık.
Örnek:
{
"type": "entity",
"value": {},
"marker": "entity",
"position": 15,
"listTitles": [
{
"title": "Ürünler",
"value": {
"id": 1,
"depth": 0,
"parentId": null,
"position": 1,
"selected": true
}
},
{
"title": "Normal Sayfa",
"value": {
"id": 4,
"depth": 0,
"parentId": null,
"position": 2,
"selected": true
}
},
{
"title": "Hata",
"value": {
"id": 2,
"depth": 0,
"parentId": null,
"position": 3,
"selected": true
}
}
],
"validators": {},
"localizeInfos": {
"title": "Entity"
},
"additionalFields": [
{
"type": "string",
"value": "Test Field",
"marker": "test_field"
}
]
}
- Time interval: Zaman aralığı verilerini yönetmek için kullanıcı dostu bir arayüze sahip esnek bir takvim.
Örnek:
{
"time_interval": {
"id": 4,
"type": "timeInterval",
"value": [
// Belirli bir aralığa bağlı her bir değer grubunun dizisi (intervalId aracılığıyla). Bu dizi, CMS'de Değerleri Al özelliği etkinleştirildiğinde oluşur.
{
// Belirli tarihlere uygulanabilir zaman kayıtları
"values": [
{
// Benzersiz kayıt tanımlayıcı
"id": "1dc1787d-acc3-4315-a45d-52166c72e577",
// Bu kaydın geçerli olduğu tarih aralığı (dahil)
"dates": ["2025-11-27T00:00:00.000Z", "2025-11-27T00:00:00.000Z"],
// [[başlangıç, bitiş], ...] formatında zaman dilimleri dizisi
"times": [
[
// Zaman diliminin başlangıcı (saat ve dakika)
{
"hours": 19,
"minutes": 18
},
// Zaman diliminin bitişi
{
"hours": 21,
"minutes": 19
}
]
],
// Ayrılmış (mevcut uygulamada kullanılmıyor)
"intervals": [],
// Belirli tarihte programdan hariç tutulan zaman dilimleri
"exceptions": [
{
// İstisna tarihi
"date": "2025-12-17T17:00:00.000Z",
// Hariç tutulan zaman dilimlerinin dizisi
"externalTimes": [
["2025-12-17T17:25:00.000Z", "2025-12-17T17:27:00.000Z"]
]
}
],
// `intervals` dizisinden aralığa referans
"intervalId": "0da61a19-49cb-40b1-88e6-1fa3c93a1fa6",
// Haftalık tekrar için bayrak (ilgili haftanın günü)
"inEveryWeek": true
},
{
"id": "cfa187d3-0284-4e0d-8206-7b353cf47110",
"dates": ["2025-12-18T00:00:00.000Z", "2025-12-18T00:00:00.000Z"],
// [[başlangıç, bitiş], ...] formatında zaman dilimleri dizisi
"times": [
[
{
"hours": 0,
"minutes": 25
},
{
"hours": 0,
"minutes": 27
}
],
[
{
"hours": 19,
"minutes": 18
},
{
"hours": 21,
"minutes": 19
}
]
],
"intervals": [],
"exceptions": [
{
"date": "2025-12-17T17:00:00.000Z",
"externalTimes": [
["2025-12-17T17:25:00.000Z", "2025-12-17T17:27:00.000Z"]
]
}
],
"intervalId": "0da61a19-49cb-40b1-88e6-1fa3c93a1fa6"
},
{
"id": "474de0f7-595f-49a5-aaa7-65617203ae69",
"dates": ["2025-12-25T00:00:00.000Z", "2025-12-25T00:00:00.000Z"],
// Zaman dilimi yok
"times": [],
// Takvim genişletme için dinamik kurallar
"external": [
{
// Tekrarlayan etkinlik için temel tarih
"date": "2026-01-15T00:00:00.000Z",
// Etkinlik bu günde her ay tekrarlanır
"inEveryMonth": true
}
],
"intervals": [],
"exceptions": [
{
"date": "2025-12-17T17:00:00.000Z",
"externalTimes": [
["2025-12-17T17:25:00.000Z", "2025-12-17T17:27:00.000Z"]
]
}
],
"intervalId": "0da61a19-49cb-40b1-88e6-1fa3c93a1fa6",
// Haftalık tekrar için bayrak
"inEveryWeek": true,
// Aylık tekrar için bayrak
"inEveryMonth": true,
// Yıllık tekrar için bayrak
"inEveryYears": true
}
],
// `intervals` dizisinden aralığa referans
"intervalId": "0da61a19-49cb-40b1-88e6-1fa3c93a1fa6"
},
{
"values": [
{
"id": "2f80dc18-16da-45cb-82c6-e41e1f6ee084",
"dates": ["2025-12-22T00:00:00.000Z", "2025-12-23T00:00:00.000Z"],
"times": [],
"intervals": [],
"exceptions": [],
"intervalId": "918175fd-cc18-4ca5-9bee-c78c61c9415a",
"inEveryWeek": true,
"inEveryMonth": true
}
],
"intervalId": "918175fd-cc18-4ca5-9bee-c78c61c9415a"
}
],
"isPrice": false,
"original": true,
"intervals": [
// Zaman aralığı şablonlarının dizisi
{
// Aralık şablonunun benzersiz tanımlayıcısı
"id": "0da61a19-49cb-40b1-88e6-1fa3c93a1fa6",
"range": [
// Aralığın geçerlilik ana aralığı
"2025-11-26T17:00:00.000Z",
"2025-11-26T17:00:00.000Z"
],
// Tüm aralık düzeyinde istisnalar
"external": [
{
"date": "2025-12-17T17:00:00.000Z",
"externalTimes": [
["2025-12-17T17:25:00.000Z", "2025-12-17T17:27:00.000Z"]
]
}
],
// Dahili zaman dilimleri (çalışma/aktif dönemler)
"intervals": [
{
"id": "01fea594-9933-47ac-af0a-ec0e0884f618",
// Zaman diliminin bitişi
"end": {
"hours": 21,
"minutes": 19
},
// Zaman diliminin başlangıcı
"start": {
"hours": 19,
"minutes": 18
},
// Tekrarlayan blok süresi (dakika cinsinden); null — periyodiklik yok
"period": null
},
{
"id": "22ba24af-1fae-4422-8c92-0635b684a306",
"end": {
"hours": 0,
"minutes": 29
},
"start": {
"hours": 0,
"minutes": 25
},
// Periyodiklik: zaman dilimleri 2 dakikalık ad ımlarla tekrarlanır
"period": 2,
// Periyodik dilim içinde istisna
"external": {
// Arayüzde istisnanın gösterilmesi için bayrak
"show": false,
// Hariç tutulan parçanın süresi (dakika cinsinden)
"value": 2
}
}
],
"inEveryWeek": true,
"inEveryMonth": true,
"inEveryYears": true
},
{
"id": "918175fd-cc18-4ca5-9bee-c78c61c9415a",
"range": ["2026-01-18T17:00:00.000Z", "2026-01-20T17:00:00.000Z"],
// İstisna yok
"external": [],
// Dahili zaman dilimi yok
"intervals": [],
"inEveryWeek": true,
"inEveryMonth": true,
"inEveryYears": true
}
],
// Arayüzde attribute görünürlüğü için bayrak
"isVisible": true,
"identifier": "time_interval",
"localizeInfos": {
"en_US": {
"title": "Time interval"
}
},
"receiveValues": true
}
}
- JSON: JSON formatında bazı veriler.
Örnek:
{
"type": "json",
"value": {},
"marker": "json",
"position": 17,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "Json"
},
"additionalFields": []
}
İçerik doldurma arayüzü, her attribute alanı için seçilen veri türüne karşılık gelecektir.
💡 Önemli Notlar
Validator'lar
Veri kalitesini sağlamak için attribute'lar için validator'lar ekleyebilirsiniz:
- Gerekli alanlar.
- Metin için min/max uzunluk.
- Yüklemeler için dosya boyutu sınırları.
- Resimler için piksel boyutları.
- Tarih aralıkları.
Validator örneklerini görmek için tıklayın
- requiredValidator: Bir değer girilmesini gerektirir.
Örnek:
{
"type": "string",
"value": {},
"marker": "string",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "Currency"
},
"additionalFields": [
{
"type": "integer",
"value": "10",
"marker": "extra"
}
]
}
- defaultValueValidator:
Örnek:
{
"type": "string",
"value": {},
"marker": "string",
"position": 1,
"listTitles": [],
"validators": {
"defaultValueValidator": {
"customErrorText": "Özel hata",
"fieldDefaultValue": "usd",
"fieldDefaultValue2": "",
},
},
"localizeInfos": {
"title": "String"
},
"additionalFields": [
{
"type": "integer",
"value": "10",
"marker": "extra"
}
]
}
Daha fazla bilgi edinin: Ayrıntılı yapılandırma için Validator'lar bölümüne bakın.
Paylaşılan Attribute Set'leri
⚠️ Önemli: Bir attribute set'i birden fazla varlık tarafından kullanılıyorsa, değişiklik yaparken dikkatli olun:
Bir attribute eklemek:
- Set'i kullanan tüm varlıklara eklenecektir.
- Mevcut içerik değişmeyecektir.
- Yeni alan mevcut öğeler için boş kalacaktır.
Bir attribute kaldırmak:
- Set'i kullanan tüm varlıklardan kaldırılacaktır.
- Mevcut değerler kalıcı olarak silinecektir.
Örnek:
"Ürün Bilgisi" attribute set'i tarafından kullanılıyor:
- Fiziksel Ürünler
- Dijital Ürünler
- Hizmetler
"weight" attribute'unu eklemek → ÜÇÜNE DE EKLENDİ!
"weight" attribute'unu kaldırmak → ÜÇÜNDEN DE KALDIRILDI! ⚠️
📊 Hızlı Referans Tablosu - Yaygın Yöntemler
| Yöntem | Ne Yapar |
|---|---|
| getAttributes() | Tüm attribute set nesnelerini alır. |
| getAttributesByMarker() | Attribute set'ten verilerle birlikte tüm attribute'ları marker ile alır. |
| getAttributeSetByMarker() | Marker ile bir attribute set nesnesini alır. |
| getSingleAttributeByMarkerSet() | Attribute set'ten verilerle birlikte bir attribute alır. |
❓ Sıkça Sorulan Sorular (SSS)
string ile text arasındaki fark nedir?
- string - Kısa metin, tek satır (maks. ~255 karakter). İsimler, ba şlıklar, e-postalar için kullanın.
- text - Uzun metin, birden fazla paragraf, biçimlendirme ve HTML'yi destekler. Açıklamalar, makaleler için kullanın.
Ne zaman integer yerine float kullanmalıyım?
- integer - Sadece tam sayılar:
1, 2, 100, -5. Miktarlar, sayımlar, yaşlar için kullanın. - float - Ondalık sayılar:
19.99, 4.5, -0.25. Fiyatlar, puanlar, ölçümler için kullanın. - real - Float gibi ama daha yüksek hassasiyet. Bilimsel hesaplamalar için kullanın.
En iyi uygulama: İçerik eklemeden önce attribute türlerinizi planlayın.
Bir attribute'u silersem ne olur?
- Bir attribute set'inde kullanılıyorsa, bir attribute'u silemezsiniz.
Aynı attribute'u farklı attribute set'lerinde yeniden kullanabilir miyim?
Hayır, her attribute bir attribute set'ine aittir. Ancak:
- Farklı marker'larla benzer attribute'lar oluşturabilirsiniz.
- Tüm attribute set'lerini birden fazla varlıkta yeniden kullanabilirsiniz.
"Marker" nedir ve neden önemlidir?
Marker, kodda kullandığınız teknik tanımlayıcıdır:
// Kodunuzda:
product.attributeValues.product_name // ← "product_name" marker'dır
// VS yönetimde görünen isim:
"Ürün Adı" // ← Bu sadece insanlar içindir
Marker'lar için kurallar:
- Benzersiz olmalıdır
- Boşluk olmamalıdır (yerine
_kullanın) - Sayılarla başlayamaz
- Küçük harf kullanın
- Açıklayıcı isimler seçin
Verilerim için hangi türü kullanacağımı nasıl bilirim?
Kendinize sorun:
-
Metin mi?
- Kısa (< 255 karakter)? →
string - Biçimlendirilmiş uzun mu? →
text - Başlık gerektiriyor mu? →
textWithHeader
- Kısa (< 255 karakter)? →
-
Sayı mı?
- Ondalık yok mu? →
integer - Ondalık var mı? →
float - Bilimsel hassasiyet mi? →
real
- Ondalık yok mu? →
-
Seçim mi?
- Bir seçenek mi seçilecek? →
radioButton - Açılır menü mü? →
list
- Bir seçenek mi seçilecek? →
-
Dosya mı?
- Resim mi? →
imageveyagroupOfImages - Belge mi? →
file
- Resim mi? →
-
Tarih mi?
- Sadece tarih mi? →
date - Tarih + saat mi? →
dateTime - Zaman aralığı mı? →
timeInterval
- Sadece tarih mi? →
İç içe attribute'lar (attribute içinde attribute) olabilir mi?
Evet, Ek Alanlar kullanabilirsiniz.
Doğrulama kurallarını nasıl eklerim?
OneEntry yönetim panelinde:
- Attribute set'inize gidin
- Bir attribute'a tıklayın
- Doğrulayıcılar ekleyin (gerekli, min/max, regex, vb.)
- Değişiklikleri kaydedin
Daha fazla bilgi edinin: Ayrıntılı yapılandırma için Validator'lar bölümüne bakın.
🎓 En İyi Uygulamalar
- Açıklayıcı marker'lar kullanın (
product_pricedeğilpp) - İçerik eklemeden önce attribute türlerini planlayın
- Mümkünse attribute set'lerini yeniden kullanın
- Veri kalitesini sağlamak için doğrulayıcılar ekleyin
- Her attribute'un ne için olduğunu belgeleyin
Modülün kullanıcı arayüzü hakkında daha fazla bilgi https://doc.oneentry.cloud/docs/attributes/introduction
AttributesSets modülünün tanımı
const { AttributesSets } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
🔗 İlgili Belgeler
- Ürün Modülü - Ürün verileri için attribute set'lerini kullanır
- Sayfalar Modülü - Sayfa içeriği için attribute set'lerini kullanır
- Bloklar Modülü - Yeniden kullanılabilir bloklar için attribute set'lerini kullanır
- Formlar Modülü - Özel alanlarla formlar oluşturur