2009-08-07 20 views

cevap

8

Aynı gereksinime sahibim.

Belki

bir FeatureReceiver ile Bir Özellik oluşturma ve programlı ekleyerek bu mümkün olmadığını kontrol I`d (bütün içerik türleri id 0x ile, biri o devralır) Sistem ContentType için olay alıcıyı takmak mümkündür Sistem İçeriği Türü. Bazı ayrıntılar here. bir çözüm

Pekala bulmaya

Yolum, ben konsol uygulaması ile bazı testler yaptık.
  1. Sistemi (0x) için EventReceivereklemek için çalıştı. Tüm alt öğeleri güncelleyen ContentType.Update (true, false) yöntemini çağırdı - veya ne de Sistem ContentType güncellendi, ne de childs. ReadOnly ile contentTypes değiştiremezsiniz || Sealed özniteliği TRUE
  2. Öğe (0x01) ContentType için EventReceiver eklemek için çalıştı. Buradan görüldüğü gibi, tüm ContentTypes hala ondan devralınır (bkz. ContentType hierarchy). Sistemden devralınan, ancak GUI'de bulunmayan özel dağıtılmış içerik türleri olabilir. Bu içerik türü gerçekten (o ReadOnly veya Sealed hariç tüm içerik türleri) tüm alt ContentTypes güncellenen güncellenmesi tüm öğeler

Yani bu şekilde görünecektir çalışacak bir çözüm için küresel EventReceiver takmak nasıl

:

size EventReceivers olanlar içerik türlerini isterseniz
  1. Bıkmadan tüm listeler, false Readonly veya Sealed ayarlayın.
  2. 0x01 çok yeni listeleri EventReceiver otomatik olarak eklenir olsun kimlikli listeleri (SPList.ContentTypes)
  3. ContentType (SPWeb.ContentTypes) için EventReceiver ekle daki EventReceiver mevcut içerik türlerini ekleyin. Yeni oluşturulan içerik türleri de EventReceivers'u devralır. Ayrıca tüm alt ağ ContentTypes, EventReceivers'u devralır.

Her üç adım da bir konsol uygulaması veya powershell betiği olabilir. Ya FeatureReceiver

sonuç

PS C:\Documents and Settings\Administrator> $web.contentTypes |ft id, name, EventReceivers, readonly, sealed 

Id      Name     EventReceivers       ReadOnly     Sealed 
--      ----     --------------       --------     ------ 
0x      Sistēma     {}          False     True 
0x007F1DD730DB144C84... Darba kārtības vēsture {}           True     True 
0x01     Ieraksts    {, , , ...}        False     False 
0x01003420C661289843... Darba kārtības ieraksts {, , , ...}        False     False 
0x0101     Dokuments    {, , , ...}        False     False 
0x010100629D00608F81... Office datu savienoj... {}           True     False 
0x010100B4CBD48E029A... Universālais datu sa... {}           True     False 
0x010101    Veidlapa    {, , , ...}        False     False 
0x010102    Attēls     {, , , ...}        False     False 
0x010104    Nezināms dokumenta tips {}           True     False 
0x010105    Lapu šablons   {, , , ...}        False     False 
0x010107    Lietotāja darbplūsma... {, , , ...}        False     False 
0x010108    Wiki lapa    {, , , ...}        False     False 
0x010109    Pamatlapa    {, , , ...}        False     False 
0x01010901    Web daļu lapa   {, , , ...}        False     False 
0x01010A    Saistīt ar dokumentu {, , , ...}        False     False 
0x01010B    Dublinas pamata kolo... {, , , ...}        False     False 
0x0102     Notikums    {, , , ...}        False     False 
0x0103     Diskutējamais jautājums {, , , ...}        False     False 
0x0104     Paziņojums    {, , , ...}        False     False 
0x0105     Saite     {, , , ...}        False     False 
0x0106     Kontaktpersona   {, , , ...}        False     False 
0x0107     Ziņojums    {, , , ...}        False     False 
0x0108     Uzdevums    {, , , ...}        False     False 
0x0108007122AD6D76CD... Darba kārtības uzdevums {, , , ...}        False     False 
0x010801    Darbplūsmas uzdevums {, , , ...}        False     False 
0x010802    Administratīvs uzdevums {, , , ...}        False     False 
0x0109     Darbplūsmas vēsture  {, , , ...}        False     False 
0x010A     Person     {, , , ...}        False     False 
0x010B     SharePointGroup   {, , , ...}        False     False 
0x010C     DomainGroup    {, , , ...}        False     False 
0x0110     Ziņa     {, , , ...}        False     False 
0x0111     Komentārs    {, , , ...}        False     False 
0x0116     Tālo Austrumu līgums {, , , ...}        False     False 
0x0120     Mape     {}          False     True 
0x012001    RootOfList    {}          False     True 
0x012002    Diskusija    {, , , ...}        False     False 

Maalesef bir site koleksiyonu geniş özellik, benim WSS lokalize, ancak {,, ...} Ben içerik türleri için çeşitli eventreceivers eklendi anlamına gelir. Readonly veya Sealed öznitelikleri ile görebildiğiniz gibi false dokunulmaz.

İlgili konular