Burada Entity API belgeleri üzerinde çalışıyorum: https://drupal.org/developing/api/entity .
Soru ayrıntılı olarak cevaplamak için çok büyük ve içeriğe veya yapılandırma varlıklarına ihtiyacınız olduğuna bağlı. İçerik varlıklarını istediğinizi varsayarsak (veritabanında depolanabilir, değiştirilebilir / revize edilebilir / ..., yukarıdaki bağlantıdaki ayrıntılar), bunun gibi bir şey yapmanız gerekir, yukarıda bağlantılı belgeler sonunda öğreticiler de dahil olmak üzere her adımı kapsayacaktır. , yalnızca ilk adımları kapsar.
- Bir varlık sınıfı sağlayın ve onu varlık olarak göstermek için gerekli ek açıklamaları ekleyin.
- Gerekli tabloları sağlayın, 7.x şemanıza zaten sahipseniz çok fazla değişiklik yapmanız gerekmez, ancak varlığınızın bir dili varsa / çevrilebilirse uuid ve muhtemelen bir langcode sütunu eklemek istersiniz. Bazı taban alanlarını (özellikleri) çevrilebilir veya revize edilebilir hale getirmek istiyorsanız, şu anda gerekli tabloları kendiniz sağlamanız gerekir.
- BaseFieldDefinitions () yönteminizde temel alan tanımlarını girin. . Bunun çalışma biçiminin https://drupal.org/node/2047229 (dizilerden sınıflara) olarak değişeceğini unutmayın .
- Örneğin, bir varlığı kaydetmeden önce (değişen zaman damgasını güncellemek gibi) olması gereken özel mantığınız varsa, gerekli ön / sonrası Kaydet / yükle / Sil yöntemlerini uygulayın.
- Önemsiz erişim mantığınız varsa bir erişim denetleyicisi uygulayın ve checkAccess () ve checkCreateAccess () yöntemlerini geçersiz kılın veya tam erişime izin veren tek bir izniniz varsa ek açıklamanızdaki admin_permission değerini belirtin.
- Varlık sınıfınız için (örneğin Düğüm için NodeInterface) temel alanlarınız için yararlı (genellikle get / set / isSomething ()) yöntemleri içeren bir arabirim sağlamanız teknik olarak gerekli olmamakla birlikte, arabirime ipucu yazabilmeniz ve bu yöntemler için otomatik tamamlama olsun.
İhtiyacınız olan şeye bağlı olarak, gerekli formları, muhtemelen bir render denetleyicisini ve benzerlerini tanımlamak gibi başka adımlar da olacaktır, ancak daha fazla bilgiye ihtiyacınız varsa bunlar muhtemelen ayrı sorular olmalıdır.
Notlar:
- Yapılandırma varlıkları temel olarak benzerdir, ancak yapılandırma depolama denetleyicisini kullanmanız dışında ( https://drupal.org/node/2119905 bunu kolaylaştırır), tablo şemalarını tanımlamanız gerekmez (açıkça) yapılandırma şeması dosyası, bkz. sınıflandırma sözcük dağarcığı veya düğüm türleri için olanlara bakın.
- İçerik varlıklarının temel alanları genel veya korunan özellikler olarak tanımlanmaz, bunun yerine değerler ve alanlar özelliklerinde otomatik olarak yönetilir. Bunlara get () / set () veya ilgili sihirli yöntemlerle erişin. ($ node-> title, $ node-> get ('title') değerine eşittir).
- Belgelere ilişkin yardım çok hoş olurdu. Sahip olmak istediğim içerik / yapı için temel bir taslak oluşturdum, bu yüzden sadece yeni bir sayfa oluşturun ve başlayın. Örneğin, basitleştirilmiş eğitimlere sahip olmakla ilgileniyorum, yapılandırma varlıkları için, burada zaten bir tane var hazır olduğunda varlık belgelerine geçecek: https://drupal.org/node/1809494
- Çekirdek oldukça fazla sayıda içerik varlığı uygulamasına sahiptir, eğer çalışma örneklerini görmek istiyorsanız: Düğüm, Kullanıcı, Terim, Yorum, CustomBlock, ... adım 1'de bağlantılı makalenin açıkladığı gibi, her zaman tarafından sağlanan varlık türlerini bulabilirsiniz Varlık ad alanında bir modül.
- @fago bu hafta sonu DrupalCamp Viyana'daki Entity API hakkında bir sunum yaptı , burada yazdıklarımın çoğunu ve daha fazlasını kapsıyor.