2008-08-27 13 views
5

'da Denetim Denetimini Düzenle menü öğesini dinamik olarak görüntüleme SharePoint 2007'de dinamik öğe başına menüleri (Düzenleme Bloku'nu Düzenle) kurmaya çalışıyorum. Hedefim, geçerli kullanıcının grup üyeliğine dayalı olarak kullanılabilen belirli özelliklere sahip olmaktır.SharePoint

Bu menü öğesinin oluşturulmasını denetleyen CustomAction etiketinin bir Rights özniteliği olduğunu biliyorum. Bununla benim sahip olduğum problem, kullandığım grupların sitede aynı haklara sahip olmasıdır (ViewListItems, ManageAlerts, vb.). Oluşturduğumuz gruplar, Yönetici, Çalışanlar vb. Gibi daha fazla işleve sahiptir. Bir gruba özel bir özellik atayabilmemiz ve bu özellikle ilişkili menü öğelerinin yalnızca bu grubun üyeleri tarafından görülebilmesini istiyoruz. . Herkesin aynı temel site izinleri vardır, ancak giriş kimlik bilgilerine dayalı olarak ekstra seçenekler kullanılabilir.

İçerik menüsünde öğeleri gizlemek için Core.js dosyasını değiştirmeyle ilgili birkaç makale gördüm, ancak hepsi bir ya da hiçbir şey yok. Eylemler menüsünün dinamik olarak nasıl değiştirileceğini gösteren http://blog.thekid.me.uk/archive/2008/04/29/sharepoint-custom-actions-in-a-list-view-webpart.aspx adresinde ilginç bir yayın var. Kullanıcı grubunu kontrol etmek ve menüye göre menüyü göstermek veya gizlemek için bu örneği değiştirmek çok önemlidir. Ne yazık ki, bu örnek burada belirtildiği gibi içerik menüsü öğeleri için geçerli gibi görünmemektedir http://forums.msdn.microsoft.com/en-US/sharepointdevelopment/thread/c2259839-24c4-4a7e-83e5-3925cdd17c44/.

Bunu javascript kullanmadan yapmanın bir yolu var mı? Değilse, kullanıcının grubunu javascript'ten kontrol etmenin en iyi yolu nedir?

+0

o başlık daha uygun olur .. moderatör güncellemesi yapabilir mi? –

cevap

2

Öğe bırakmalarını listelemek için dinamik olarak menü öğeleri eklemek üzere uygulayabileceğiniz iki farklı Javascript işlevi vardır. Core.js (C: \ Program Files \ Common Files \ Microsoft Paylaşılan \ web sunucu uzantıları \ 12 \ TEMPLATE \ LAYOUTS \ 1033 \ CORE.JS), seçili liste öğesi için menü öğelerini oluştururken bu yöntemlerin varlığını denetler. "Custom_AddDocLibMenuItems" ve "Custom_AddListMenuItems", Javascript yöntemlerinin adlarıdır. Ben size özgü sorunu çözmek için kullanabileceğiniz düşünüyorum

Bir makale, kullanıcı rolü üyeliklerine göre dinamik menü öğesi özelleştirme, burada bulunabilir:

MSDN: Customizing the Context Menu of Document Library Items (süreç tam olarak herhangi bir liste türü için aynıdır dikkat

[...] daha karmaşık durumlarda, temin komutların listesini almak gerekir:)

Bu makale sunucu tarafı kod görüntülenecektir menü öğelerini tanımlamak için çalıştırılabilir nasıl özetliyor sunucu, çünkü sadece İş mantığınızı çalıştırabilir ve belki de özel bir veritabanından komutları alabilirsiniz. Genellikle, her bir belgenin kendisine ait komutlar ile ilişkili bir işlem durumuna sahip olduğu bir iş akışı çözümü uyguluyorsanız bunu yapmak istersiniz.

Bu durumun çözümü, Custom_AddDocLibMenuItems'in dinamik olarak özel bir ASP.NET sayfasını çağırmasını sağlamaktır. Bu sayfa, belge kitaplığının kimliğini ve sorgu dizesindeki belirli öğeyi alır ve söz konusu belgede kullanılabilen komutlar için tüm bilgileri içeren bir XML dizesi döndürür. Bu komutlar, belgenin işlem durumuna (veya başka bir özel iş mantığına) göre kullanılabilir. [...]