Bu yazımda ;

  • Sharepoint Starting MasterPage
  • Sharepoint Ribbon Gizleme
  • Sharepoint Ribbon Gizleme ve  ScrollBar  Sorunu
  • 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 başka durumdur.” Sharepoint Branding” dediğimiz bu konu ile ilgili msdn üzerinde yayımlanan çok
faydalı makaleler 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ü gizlemedir.

Sharepoint Ribbon menü gizleme ile ilgili bir çok yazı internette bulunmakta .Bu yazımda konu ile ilgili internette yayımlanmış 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 üzerinden “yeni bir masterpage” diyerek başlamak 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 sharepoint ‘e ö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 göründüğünü 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">
---Yetki dahilindeki kod---
</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 sağlıyoruz.

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şılabiliriz.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%;

<span style="color: #000000;">overflow: auto;</span>

width:100%;

}

</style>
  1. 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ş. -Publishing site tipinde bir masterpage için –

id=”s4-workspace”
ifadesinin masterpage üzerinden kaldırılması sorunu çözmektedir.

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 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>

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 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