افزودن لینک به Suite bar شرپوینت ۲۰۱۳

دوستان سلام

در ادامه مطالب مربوط به شرپوینت ۲۰۱۳، در این پست تصمیم دارم درباره Suite bar و نحوه افزودن یک لینک دلخواه به آن برای شما عزیزان مطلبی را نگارش کنم.

Suite bar چیست ؟

به بالاترین نوار در سایت شرپوینت ۲۰۱۳، Suite bar می گویند. این نوار شامل یک بخش خاکستری و یک بخش آبی رنگ میباشد و در بالای سایت های شرپوینت ۲۰۱۳ تعبیه شده است. این نوار در بخش آبی به صورت پیش فرض شامل لینک های Sites, NewsFeed و SkyDrive به همراه متن SharePoint میباشد و در بخش خاکستری شامل اطلاعات کاربر، منوی تنظیمات و آیکن Help است.

 

 

در یکی از پروژه ها تصمیم داشتم تا لینکی را به لینک های موجود در Suite bar جهت سهولت دسترسی کاربران اضافه کنم. برای اینکار میبایست لینک های مورد نیاز را توسط کنترل SuiteLinksDelegate در شرپوینت اضافه کنم. مراحل کار به صورت زیر میباشد :

۱- برای شروع، برنامه Visual Studio 2013 را اجرا کنید.

۲- یک پروژه جدید در VS ایجاد کنید از نوع SharePoint 2013 Empty Project .

۳- حال در قسمت Reference از پروژه یک Reference از Microsoft.SharePoint.Portal.dll اضافه کنید.

۴- اکنون یک Empty Element به پروژه اضافه کنید و در ویرایشگر آن کد زیر را درج کنید :

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Control Id="SuiteLinksDelegate" Sequence="1"
  ControlSrc="~/_ControlTemplates/15/Aghajani.SuiteBar/MySuiteBar.ascx" />
</Elements>
 
۵- سپس یک User Control در پروژه اضافه کنید و در نمای کد آن، کدهای زیر را پس از متد Page_Load درج کنید :
 protected override void Render(HtmlTextWriter writer)
        {
            writer.RenderBeginTag(HtmlTextWriterTag.Style);
            writer.Write(".ms-core-suiteLinkList {display: inline-block;}");
            writer.RenderEndTag();
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "ms-core-suiteLinkList");
            writer.RenderBeginTag(HtmlTextWriterTag.Ul);
            RenderSuiteLink(writer, "/", "راهنما", "HelpLink", false);
            writer.RenderEndTag();
            base.Render(writer);
        }

۶- User Control ای که در مرحله قبل اضافه کردید میبایست از MySuiteLinksUserControl ارث بری کند. پس کد خود را به صورت زیر اصلاح کنید :

public partial class MySuiteBar : MySuiteLinksUserControl

دقت داشته باشید که متد RenderSuiteLink در کد بالا در همین کلاس MySuiteLinksUserControl که در Microsoft.sharepoint.portal.dll میباشد، قرار دارد.پس در بالای صفحه کد  User Control ، این  خط را اضافه کنید :

;using Microsoft.SharePoint.Portal.WebControls

۷- اکنون پروژه را ذخیره و در سایت شرپوینت deploy کنید. خواهید دید لینکی به شکل زیر در Suite bar کنار سایر لینک ها اضافه شده است :

۸- نمایش Solution Explorer شما چیزی شبیه این می تواند باشد :

امیدوارم از این مطلب استفاده کافی را برده باشید. Smile

موفق باشید.

پاسخ دهید