با ارائه شیرپوینت 2013، وبپارتهای جدیدی ارائه شدند که یکی از این وبپارتها، Content Search میباشد. در این مقاله میخواهیم با یک مثال کاربردی به استفاده از وبپارت Content Search بپردازیم. سناریو بسیار ساده است. ما میخواهیم به صورت کاملاٌ ساده پروژههای خود را در شیرپوینت مدیریت کنیم. به این منظور یک وبسایت به اسم Projects ایجاد کردیم و برای هر پروژهای که میخواهیم مدیریت کنیم یک زیر سایت ایجاد میکنیم. هدف ما در این مقاله این است که لیستی از پروژهها که در واقع همان زیرسایتها هستند را در صفحه اصلی سایت پروژه نشان دهیم.
اول از همه برای سناریو مطرح شده لازم داریم که سایتهای مورد نظر خود را ایجاد کنیم. پس یک سایت اصلی به نام Projects ایجاد میکنیم و سه زیر سایت که هر کدام برای یک پروژه هستند نیز ایجاد میکنیم.
اکنون سایتهای مورد نظر را ایجاد کردیم و میتوانیم آنها را در “محتویات سایت” مشاهده کنیم.
اکنون به سایت Projects میرویم و برای افزودن وبپارت صفحه را ویرایش میکنیم.
در نوار بالای صفحه بر روی “Insert” کلیک میکنیم و در دستهبندی “Content Roll Up” بر روی وبپارت Content Search کلیک میکنیم.
به صورت پیش فرض وبپارت Content Search آخرین محتوای تغییر کرده در سایت حاضر را به شما نشان میدهد. پس اگر هنگامی که وبپارت به صفحه اضافه شد محتوای غیر مرتبط را دیدید تعجب نکنید. همچنین یک سری باکسهای طوسی با علامت سوال روی آن نمایش داده میشود. هر وبپارت سرچ با استفاده از Display Template های از پیش تعریف شده اطلاعات پیش فرض را نمایش میدهند که در واقع این باکسهای طوسی عکسهای مربوط به ایتمهایی هستند که عکسی جهت نمایش ندارند. این Display Template ها توسط شما قابل تغییر هستند و میتوانید مشخص کنید چه فیلدهایی از اطلاعات مورد نظر شما نمایش داده شوند و همچنین میتوانید Display Template های مخصوص به خود ایجاد کنید.
زمانیکه وبپارت را ویرایش میکنید امکانات بسیاری را مشاهده خواهید کرد. اولین و مهمترین امکان “Query Builder” میباشد که شما امکان ساخت کوئری خود را دارید تا محتوایی را نمایش دهید که مد نظر شماست. باید به این نکته توجه کنید که تنها “مالکان سایت” این دسترسی را دارند.
ابتدا بر روی Edit Web Part و سپس بر روی دکمه Change Query کلیک نمایید.
زمانیکه Query builder باز میشود برخی گزینههای اصلی برای ساخت Query به صورت پیش فرض برای شما وجود دارد. برای کاری که ما میخواهیم انجام دهیم به بخش Advanced Mode نیاز داریم.
در حالت Advanced Mode به بخش Query بروید و همانطور که میبینید به صورت پیش فرض این کوئری در آن وجود دارد.
path:”http://demo/projects” (IsDocument:”True” OR contentclass:”STS_ListItem”)
چیزی که این کوئری به شیرپوینت میگوید این است که همه موارد را در آن URL جستجو کند اما نتایج را به اسناد و آیتمهای لیست محدود کند. اما ما نیاز به سایتها داریم. پس این موارد را پاک میکنیم تا کوئری خودمان را بسازیم.
ما میخواهیم تمام زیرسایتهای سایت Projects را داشته باشیم پس مسیری که شیرپوینت باید در آن جستجو کند آدرس سایت Projects است.
path:http://demo/projects
شما در هر مرحلهای از ساخت کوئری خود میتوانید با کلیک بر روی دکمه Test ، کوئری را آزمایش کنید و نتایج را مشاهده نمایید. آنچه میخواهیم در مرحله بعدی انجام دهیم این است که به کوئری بگوییم که فقط می خواهیم سایتها برگردانده شوند. بنابراین روی منوی کشویی Keyword Filter کلیک کرده و Only Return Sites را انتخاب میکنم.
اکنون کوئری ما به این شکل است:
path:”http://demo/projects” contentclass:STS_Web
وقتی بر روی دکمه test کلیک کنید نتایج خوشآیندی را خواهید دید.
ما تقریبا کار خود را انجام دادهایم. به نظر میرسد یک مسئله کوچک وجود دارد، سایت فعلی “Projects” را به عنوان یک پروژه به من نشان میدهد. ما باید این سایت را از درخواست حذف کنیم. از آنجا که جستجوی محتوا در این سایت قرار دارد، فقط میتوانیم به آن بگویم که سایتهایی را نشان دهد که “این سایت” شامل آنها نیست. برای این کار روی فیلتر Properties در سمت راست کلیک کرده و به دنبال ویژگی Site باشید و آن را نامساوی “This Site” قرار دهید.
همنطور که میبینید الان فقط زیرسایتها نمایش داده میشوند. اکنون تمام تغییرات را ذخیره کنید.
اکنون که نتایج دلخواه خود را مشاهده میکنید تنها کاری که بهتر است انجام دهید تغییر طراحی وبپارت است. ما از Display template پیش فرض شیرپوینت استفاده میکنیم و آن را سفارشی میکنیم ولی شما میتوانید Display Template اختصاصی خود را ایجاد کنید. ما در بخش Picture URL فیلد لوگوی سایت قرار دادیم تا لوگوی سایت کنار نام سایت نمایش داده شود و همچنین در Line2 توضیحات سایت را قرار دادیم.
با این تغییرات و ذخیره آن، وبپارت شما به صورت زیر نمایش داده میشود که نه تنها محتوای دلخواه شما را نشان میدهد بلکه ظاهر خوبی هم دارد.