Makale Özeti

Bu yazımda ; 1.Sharepoint Starting MasterPage 2.Sharepoint Ribbon Gizleme 3.Sharepoint Ribbon Gizleme ve ScrollBar Sorunu 4.Sharepoint Ribbon Gizleme ve Welcome Menü sorunu Konularına kısaca değinmeye çalışacağım.

Makale

Bu yazımda ;

  1. Sharepoint Starting MasterPage
  2. Sharepoint Ribbon Gizleme
  3. Sharepoint Ribbon Gizleme ve ScrollBar Sorunu
  4. Sharepoint Ribbon Gizleme ve Welcome Menü sorunu

Konularına kısaca değinmeye çalışacağım.

Sharepoint 2010 üzerinde hali hazırda gelen site tasarımlarının değiştirme ihtiyacı, sharepoint geliştiricilerin sıklıkla karşılaştığı bir durumdur.” Sharepoint Branding” dediğimiz bu konu ile ilgili msdn üzerinde yayımlanan çok
sayıda makale bulabilirsiniz.Bu yazılardan birisine bu linkten ulaşabilirsiniz.

Yazımda belirtmek istediğim asıl konu Sharepoint Branding konusunun küçük ve önemli bir kısmını oluşturan Sharepoint ribbon menüyü gizlemedir.

Sharepoint Ribbon menü gizleme ile ilgili de bir çok yazı internette bulunmakta .Bu yazımda konu ile ilgili bir çok yazıya ek olarak Sharepoint Ribbon menüyü gizledikten sonra karşılaştığım bir takım sorunlardan bahsedeceğim.

Sharepoint 2010 Starter MasterPage

Sharepoint üzerinde “tasarım giydirme” diye tabir edebileceğimiz işlemi yaparken ki başlangıç noktamız, sitemizin tasarımına uygun bir masterpage ve alt sayfalar için page layout ‘lar oluşturmaktır..

Sharepointe özgü sıfırdan bir masterpage ‘i oluşturmak yine sharepoint’e özgü bir takım kuralları da beraberinde getirdiği için bu işleme Visual Studio üzerinde “yeni bir masterpage” oluşturmak yerine , sitemizin tipine göre oluşturulmuş bir starter masterpage’i codeplex üzerinden indirirek devam etmemiz daha doğru olacaktır..

Randy Drisgill tarafından oluşturulan başlangıç masterpage’lerini buradan indirebilirsiniz.

http://startermasterpages.codeplex.com/

Neden başlangıç masterpage‘i kullanmalıyız diye bir soru sorabilirsiniz; Yukarıda da belirttiğim gibi sharepointe özgü bazı kontrolleri (ContentPlaceHolder) kullanmasak dahi sayfada hidden bir alanda bulunması gerekmektedir.Başlangıç masterpage’leri bu altyapıyı bize sunarak işimizi kolaylaştırmaktadırlar.

Hazırlamış olduğumuz masterpage’i sharepointe deploy ettiğinizde sayfanın en tepesinde ribbon kontrolünün yetkili olsun olmasın tüm kullanıcılar için geldiğini göreceksiniz.

 

Sharepoint Ribbon Menü Gizleme

Ribbon kontrolünü sadece yetkili kullanıcılara görünmesini Sharepoint built-in kontrollerinden SPSecurityTrimmedControl ile sağlayabiliriz. SpSecurityTrimmedControl ile sadece ribbon kontrolünü değil, belirli bir yetki dahilinde göstermek istediğimiz herhangi bir kontrolü de gösterebiliriz.

SpSecurityTrimmedControl’ü masterpage üzerinde

 

<WebPartPages:SPWebPartManager runat=”server”/>

 

ifadesinden sonra aşağıdaki gibi ekliyoruz.

 

<SharePoint:SPSecurityTrimmedControl id=”SPSecurityTrimmedControl” runat=”server” PermissionsString=”EditListItems”>

—Belirli yetki dahilindeki kontrol—

</SharePoint:SPSecurityTrimmedControl>

 

Burada önemli olan nokta, SPSecurityTrimmedControl kontrolünün içinde yer alan kod bloğunun hangi yetki sınırı ile görüntüleyeceğimizi PermissionString ifadesi ile sağladığımız kısımdır.

 

PermissionString ‘in alabileceği değerler :

EmptyMask
ViewListItems
AddListItems
EditListItems
DeleteListItems
ApproveItems
OpenItems
ViewVersions
DeleteVersions
CancelCheckout
ManagePersonalViews
ManageLists
ViewFormPages
Open
ViewPages
AddAndCustomizePages
ApplyThemeAndBorder
ApplyStyleSheets
ViewUsageData
CreateSSCSite
ManageSubwebs
CreateGroups
ManagePermissions
BrowseDirectories
BrowseUserInfo
AddDelPrivateWebParts
UpdatePersonalWebParts
ManageWeb
UseClientIntegration
UseRemoteAPIs .
ManageAlerts
CreateAlerts
EditMyUserInfo
EnumeratePermissions
FullMask

şeklindedir.

Kullanıcı bu değerlere ait bir yetkiye sahipse ribbon (ya da spsecuritytrimmed kontrolünün çevrelediği herhangi bir kontrol ) ekranda gözükecektir.PermissionString’in alabileceği değerlerin detaylı açıklamasına bu linkten erişebilirsiniz.

Ribbon kontrolünü SpSecurityTrimmed kontrol ile bu şekide gizledikten sonra ScrollBar ile ilgili bir iki sorun ile karşılabilirsiniz.Bunları şu şekilde sıralayabiliriz.

 

 

1.SpSecurityTrimmedControl ile ribbon bar gizledikten sonra scrollbar’ın görünmeme sorunu ( scrollbar missing)



Bu sorunu çözebilmek için yapmamız gereken masterpage üzerine aşağıdaki css ‘i eklemektir.

<style type="text/css">

body { height: 100%; overflow: auto; width:100%; }

 </style>

 

2.SpSecurityTrimmedControl ile ribbon barı gizledikten sonra ribbon bar gözükmeyen kullanıcılar için iki scroll bar gözükme sorunu olabilir.

 

Bu sorun için de yine bir çok kaynakta farklı çözümler belirtilmiştir. Benim çözümünde -Publishing site tipinde bir masterpage için -

id=”s4-workspace” ifadesinin masterpage üzerinden kaldırılması gerekmektedir.

 

3.Bu yazımda bahsedeceğim son konu ise yine ribbon bar’ın gizlenmesi sonucu ortaya çıkan “Welcome” menüsünün gözükmemesi sorunudur.

Varsayılan durumda welcome-login menüsü ribbon kontrolü içerisinde aşağıda olduğu gibi ayrı bir div ile belirtilir.

<!-- Welcome / Login control -->
<div class="s4-trc-container-menu">
<div>
<wssuc:Welcome id="IdWelcome" runat="server" EnableViewState="false">
</wssuc:Welcome>
<!-- MultiLingual User Interface menu -->
<wssuc:MUISelector ID="IdMuiSelector" runat="server"/> 
</div>
</div>

Bu durumdan dolayı Ribbon yetkisiz (anonymous) kullanıcı için gözükmediği durumda Welcome kontrolü de gözükmeyecektir.Bu durumda da sharepointin açılan ekranında hangi kullanıcı ile login olunduğu bilgisi ve Sign in Different User (Farklı Kullanıcı ile Bağlan) seçenekleri gözükmeyecektir.

Bu durumu engellemek için yukarıda belirttiğim (Welcome/Login control) kod bloğunu SpSecurityTrimmedControl ile belirtilen alanın dışına sayfa
layout’unda uygun bir yere taşınması gerekmektedir.

 

 

Son olarak ;

SpSecurityTrimmedControl’ün yaptığı işi otomatize eden ve herhangi bir kod yazmaya gerek duymadan ribbonın görüntülenip görüntülenmemesini çeşitli yetki gruplarına ve özelliklere göre düzenleyen, codeplex üzerinde yayımlanan güzel bir uygulama mevcut..

http://spribbonvisibility.codeplex.com/



Bu yazımda çok sık ihtiyac olabilecek sharepoint ribbon menü gizleme konusunu ve ribbon’ı gizledikten sonra karşılaşabileceğimiz bir takım sorunlardan bahsettim. Umarım faydalı olmustur.Görüşmek dileği ile.

serkan_akkaya@yahoo.com
http://serkanakkaya.wordpress.com