Punto compartido en línea:Tipo de contenido personalizado no incluido de forma predeterminada en la definición de lista

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/77765

Pregunta

Requisito:Plantilla web con bibliotecas de documentos personalizadas junto con tipos de contenido personalizados para usar en sharepoint 2013 en línea

Creé la plantilla web y el tipo de contenido, ambos funcionan bien en SharePoint en línea.Pero me enfrento a dos problemas importantes con la definición de la lista.

1) No se puede incluir el tipo de contenido personalizado como ContentTypeRef en el esquema de definición de lista.2) No puedo descubrir cómo incluir la definición de la lista en onet.xml de la plantilla web. Estoy intentando agregar la identificación de la función, pero al crear un nuevo sitio usando la plantilla falta la biblioteca de documentos.

Código:

Onet.xml

<?xml version="1.0" encoding="utf-8"?>
<Project Title="$Resources:onet_TeamWebSite;" Revision="3" ListDir="$Resources:core,lists_Folder;" xmlns:ows="Microsoft SharePoint" UIVersion="15" HideSiteContentsLink="true">
  <NavBars>
  </NavBars>
  <ListTemplates>
  </ListTemplates>
<Configurations>
    <Configuration ID="0" Name="Default" MasterUrl="_catalogs/masterpage/seattle.master">
      <Lists>
        <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="$Resources:core,shareddocuments_Title_15;" Url="$Resources:core,shareddocuments_Folder;" OnQuickLaunch="TRUE" QuickLaunchHeading="TRUE" />
      </Lists>
      <SiteFeatures>
        <Feature ID="8b312a79-d117-44ef-81b2-453a71ccfea5" /> // Feature including the list definition
      </SiteFeatures>
      <WebFeatures>
      </WebFeatures>
    </Configuration>
  </Configurations>
  <ServerEmailFooter>$Resources:ServerEmailFooter;</ServerEmailFooter>
</Project>

Parte del Schema.xml de la definición de Lista

<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="Resources" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/Resources" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/" EnableContentTypes="TRUE">
  <MetaData>
    <ContentTypes>
      <ContentType ID="0x010100992CB78E42804317A18A5E40907EA235" Name="Custom Content Type" Group="Custom Content Type" Description="Custom Content Type" Inherits="TRUE" Version="0">
        <FieldRefs>
          <FieldRef ID="{796E4A07-6AD2-4AC4-8788-2536EA0B0224}" Name="Organization/Author" Required="TRUE" />
          <FieldRef ID="{782D2071-7531-4F34-92E2-2418090A3ED9}" Name="Publication Date" Required="TRUE" />
          <FieldRef ID="{ceee0e58-7e36-47c9-9e20-3d3d0d7ba0d4}" Name="Partners" Required="TRUE" />
        </FieldRefs>
      </ContentType>
    </ContentTypes>
    <Fields>
      </Fields>
    <Views>

Dentro de ContentTypes también intenté usar ContentTypeRef pero tampoco funcionó.

Element.xml del tipo de contenido

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  <Field ID="{796E4A07-6AD2-4AC4-8788-2536EA0B0224}" Type="Text" Name="Organization/Author" DisplayName="Organization/Author" ShowInNewForm="FALSE" ShowInFileDlg="FALSE"></Field>
  <Field ID="{782D2071-7531-4F34-92E2-2418090A3ED9}" Type="DateTime" Name="Publication Date" DisplayName="Publication Date" Required="FALSE" EnforceUniqueValues="FALSE" ShowInNewForm="FALSE" ShowInFileDlg="FALSE"></Field>
  <Field ID="{ceee0e58-7e36-47c9-9e20-3d3d0d7ba0d4}" Type="Choice" Name="Partners" DisplayName="Partners" Required="FALSE" EnforceUniqueValues="FALSE" Indexed="FALSE" Format="Dropdown" FillInChoice="FALSE">  
    <CHOICES>
      <CHOICE>Yes</CHOICE>
      <CHOICE>No</CHOICE>
    </CHOICES>
  </Field>

  <!-- Parent ContentType: Document (0x0101) -->
  <ContentType ID="0x010100992CB78E42804317A18A5E40907EA235" Name="Custom Content Type" Group="Custom Content Type" Description="Custom Content Type" Inherits="TRUE" Version="0">
    <FieldRefs>
      <FieldRef ID="{796E4A07-6AD2-4AC4-8788-2536EA0B0224}" Name="Organization/Author" Required="TRUE" />
      <FieldRef ID="{782D2071-7531-4F34-92E2-2418090A3ED9}" Name="Publication Date" Required="TRUE" />
      <FieldRef ID="{ceee0e58-7e36-47c9-9e20-3d3d0d7ba0d4}" Name="Partners" Required="TRUE" />
    </FieldRefs>
  </ContentType>
</Elements>

¿Alguien puede sugerir qué estoy haciendo mal?

Pocas cosas más. Las tres cosas (plantilla web, tipo de contenido y definición de lista) están incluidas en la misma función que tiene como alcance el sitio, ya que la implementaré en SharePoint Online, que es una arquitectura de espacio aislado.

¿Fue útil?

Solución

Me gustaría sugerirle que reestructure un poco su código si me lo permite.Coloque la plantilla web en su propia solución.Haz que eso funcione primero.

Luego cree una segunda solución que incluya el tipo de contenido y la lista.Su característica debe estar dirigida a la Web, no al Sitio.No veo ningún problema con su esquema y, en cualquier caso, VS2012 tiene un asistente de diseño de listas, y si lo usó, debería estar bien.

La razón por la que sugiero dos soluciones es porque las plantillas web complican el flujo de trabajo de desarrollo.Volver a implementarlo implica eliminar y recrear todo el sitio.No es necesario hacer eso si solo estás trabajando en la lista.Con su lista en una solución separada, sus redistribuciones serán mucho más rápidas.

Si necesita todo en una solución, puede volver a juntarlos una vez que todo esté funcionando, pero necesita tener dos características:Su plantilla web debe estar en una función de ámbito del sitio y su lista debe estar en una función de ámbito web.Creo que los campos y el tipo de contenido podrían estar bien en cualquier ámbito, pero siempre los he hecho de ámbito web.

Licenciado bajo: CC-BY-SA con atribución
scroll top