Лучший способ реализовать FAQ на сайте SharePoint - PullRequest
7 голосов
/ 20 января 2011

Каков наилучший или распространенный способ реализации страницы часто задаваемых вопросов в семействе сайтов SharePoint?

Ответы [ 3 ]

16 голосов
/ 20 января 2011

Что мы сделали в прошлом:

  1. Создать пользовательский список
  2. Переименуйте заголовок столбца в вопрос
  3. Добавьте новый столбец типа Многострочный текст и назовите его Ответ
  4. Измените представление по умолчанию, чтобы отображать только эти 2 столбца, и установите стиль в Newsletter

В итоге вы получите что-то вроде:

alt text

Затем вы можете разместить это на странице, используя веб-часть просмотра списка.

Обновление: Я написал это в своем блоге с примером SharePoint 2010 здесь: http://thechriskent.com/2012/03/09/simple-sharepoint-faq-in-5-minutes/

1 голос
/ 08 октября 2013

Рекомендуется решение с сохранением записей FAQ в списке SharePoint.Он состоит из:

  • пользовательских шаблонов списков часто задаваемых вопросов с типом контента с вопросами и ответами полей
  • списком часто задаваемых вопросов для отображения в виде аккордеона

FAQ List View Рисунок 1. Список часто задаваемых вопросов с аккордеонным представлением (SharePoint 2013)

FAQ List View Рисунок 2. Список часто задаваемых вопросов с аккордеонным представлением (SharePoint 2010)

Внедрение

1 Создание настраиваемого типа контента для записей FAQ

<ContentType ID="0x0100fb1027dc96a44bf280f6cb823a8da5ae"
               Name="FAQ"
               Group="SE"
               Description="FAQ Content Type"
               Inherits="TRUE"
               Version="0">
    <FieldRefs>
      <FieldRef Name="LinkTitle" ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" DisplayName="Question" Sealed="TRUE"/>
      <FieldRef Name="LinkTitleNoMenu" ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" DisplayName="Question" Sealed="TRUE"/>
      <FieldRef Name="Title" ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Question" Sealed="TRUE"/>
      <FieldRef ID="{b0747420-54bc-41b2-a1b3-8432f2dbdc70}" Name="Answer"/>
    </FieldRefs>
  </ContentType>

2 Создание клиентского представления списка часто задаваемых вопросов (для SharePoint 2013)

(function () {
   loadCss('http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/themes/redmond/jquery-ui.css');
   function OnAccordionViewPostRender(renderCtx) {

     jQuery(function() {
         jQuery( "#accordionFAQ" ).accordion();
     });

   }



    function loadCss(url){
     var link = document.createElement('link');
     link.href = url;
     link.rel = 'stylesheet';
     document.getElementsByTagName('head')[0].appendChild(link);
   }


   function OnAccordionViewPreRender(renderCtx) {
   }

   function RenderAccordionViewBodyTemplate(renderCtx) {
         var listData = renderCtx.ListData;
         if (renderCtx.Templates.Body == '') {
             return RenderViewTemplate(renderCtx);
         }
         var accordionHtml ='';

         accordionHtml = '<div id="accordionFAQ">';
         for (var idx in listData.Row) {
                var listItem = listData.Row[idx];
                accordionHtml += '<h3>';
                accordionHtml += listItem.Title;
                accordionHtml += '</h3>';
                accordionHtml += '<div>';
                accordionHtml += listItem.Answer;
                accordionHtml += '</div>';
         }

         accordionHtml += '</div>';


         return accordionHtml;
   }


     function _registerAccordionViewTemplate() {

            var accordionViewContext = {};

            //accordionViewContext.BaseViewID = 'Accordion';
            accordionViewContext.Templates = {};
            accordionViewContext.Templates.View = RenderAccordionViewBodyTemplate;
            accordionViewContext.OnPreRender = OnAccordionViewPreRender;
            accordionViewContext.OnPostRender = OnAccordionViewPostRender;
            SPClientTemplates.TemplateManager.RegisterTemplateOverrides(accordionViewContext);
        }
        ExecuteOrDelayUntilScriptLoaded(_registerAccordionViewTemplate, 'clienttemplates.js');

})();

3 Примените шаблон рендеринга на стороне клиента к существующему представлению через JSLink

Подробнее о создании списка часто задаваемых вопросов см. В следующих статьях:

1 голос
/ 21 декабря 2011

Другое возможное решение - используя опцию стиля «Панель предварительного просмотра», вы можете получить список вопросов в левом столбце, а при наведении курсора мыши отображаются (выбранные) поля.ответы, так что я думаю, что это может работать лучше в некоторых ситуациях (до тех пор, пока он не может аккордеон на отдельном уровне записи или в определенном поле).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...