Создание своих столбцов сайта, типа контента и списков

 Комментарии можно оставлять "здесь"

 Если в нашем проекте необходимо использовать многократно одинаковые столбцы, типы контента и списки. А для меня особенно, не надеяться на администратора, что он всё выполнить по инструкции, плюс эту инструкцию необходимо будет создавать, лучше формирование необходимых элементов предусмотреть у себя в проекте.
 Рассмотрим пример создания собственных (custom) столбцов сайта. Потом эти столбцы будем использовать в своём типе контента, который добавим в свой список.
 Что нам предстоит сделать:
  • Опишем новые столбцы
  • Опишем тип контента
  • Опишем список
1. Добавим в проект шаблон типа контента
2. Редактируем файл Elements.xml. Заменим созданное автоматически содержимое на

 <?xml version="1.0" encoding="utf-8"?>
 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Field Type="DateTime" Format="DateOnly" DisplayName="Только Дата" ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" StaticName="customDate" Name="customDate" Group="_Группа" />
  <Field Type="Text" DisplayName="Текстовый номер" ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" StaticName="customtxtNumber" Name="customtxtNumber" Group="_Группа" />
  <!-- Родительский тип контента: Элемент (0x01) -->
  <ContentType ID="0x0100ea0528db89d740378081e99984619980" Name="CustomContentType" Group="_Группа" Description="Мой тип контента" Version="0">
   <FieldRefs>
    <FieldRef ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" />
    <FieldRef ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" />
   </FieldRefs>
  </ContentType>
 </Elements>

 В данном примере мы добавили два столбца «Только Дата» и «Текстовый номер» с типами дата и текст соответственно. Эти поля поместили в свою группу под именем «_Группа». ID полей должны быть уникальны, их можно сформировать с помощью соответствующих утилит. Более полный список типов полей и параметров можно посмотреть по следующему адресу
 Далее, зная ID полей, добавляем их в наш тип контента, который унаследован от типа контента «Элемент».  Развернём решение и посмотрим на перечень столбцов сайта (“/_layouts/mngfield.aspx ”) и типов контента (“/_layouts/mngctype.aspx ”). Можно увидеть, что появилась новая группа с нашими элементами
3. На основе нашего типа контента создадим шаблон списка. Для этого добавим в наш файл Elements.xml внутри тега <Element> следующее содержимое:
<ListTemplate Name="CustomContentType" Type="22200" BaseType="0" OnQuickLaunch="TRUE" SecurityBits="11" Sequence="410" DisplayName="Собственный список" Description="Список с собственным типом контента" DisallowContentTypes="False" />
 Далее создадим описание: добавим в туже папку файл Schema.xml. Установим для него тип развёртывание ElementFile

 Добавим следующее содержимое:
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="Список" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/customList" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/" EnableContentTypes="True" VersioningEnabled="True" >
 <MetaData>
  <ContentTypes>
   <ContentType ID="0x0100ea0528db89d740378081e99984619980" Name="CustomContentType" Group="_Группа" Description="Мой тип контента" Version="0">
    <FieldRefs>
     <FieldRef ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" />
     <FieldRef ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" />
    </FieldRefs>
   </ContentType>
  </ContentTypes>
  <Fields>
   <Field Type="DateTime" Format="DateOnly" DisplayName="Только Дата" ID="{ACBDC45D-1DBB-4E1B-AE74-791B106E8252}" StaticName="customDate" Name="customDate" Group="_Группа" />
   <Field Type="Text" DisplayName="Текстовый номер" ID="{F091566A-A161-4674-8A5B-C1C9E586FC86}" StaticName="customtxtNumber" Name="customtxtNumber" Group="_Группа" />
  </Fields>
  <Views>
   <View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
    <Toolbar Type="Standard" />
    <XslLink Default="TRUE">main.xsl</XslLink>
    <RowLimit Paged="TRUE">30</RowLimit>
    <ViewFields>
     <FieldRef Name="customDate"></FieldRef>
     <FieldRef Name="customtxtNumber"></FieldRef>
    </ViewFields>
    <Query>
     <OrderBy>
      <FieldRef Name="customDate" Ascending="FALSE">
     </OrderBy>
    </Query>
    <ParameterBindings>
     <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
     <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
    </ParameterBindings>
   </View>
  </Views>
  <Forms>
   <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
   <Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main"/>
   <Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main"/>
  </Forms>
 </MetaData>
</List>
 В данном случаи мы повторили описание нашего типа контента, потом указали какие поля будут в списке и какие поля будут отображаться в представлении по умолчанию.
 После развёртывания решения в списке возможных создаваемых списков можно увидеть и наш.

 Комментарии можно оставлять "здесь"

Комментариев нет:

Яндекс.Метрика