Compartir a través de


Procedimiento para crear una definición de lista personalizada

En esta tarea se muestra cómo crear una característica de plantilla de lista personalizada y agregarla a la selección de listas disponibles para creación en la Crear página. Para agregar una característica de lista personalizada es necesario proporcionar por lo menos los tres archivos siguientes:

  • Feature.xml registra la plantilla de lista.

  • Elements.XML agrega la plantilla de lista a Crear página.

  • Schema.xml define el esquema de lista, que incluye las asociaciones de tipo de contenido, las definiciones de campo y vista, y las referencias de formularios y de la barra de herramientas.

Procedimientos

Para agregar una definición de lista personalizada a un sitio web

  1. Cree una carpeta en unidad_local:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATES\FEATURES y asígnele un nombre adecuado, como CaracteristicaListaSimple.

  2. En la nueva carpeta, cree un archivo Feature.xml que especifique el título, el identificador y el ámbito de la característica, así como la ubicación de un archivo Elements.xml, como se indica a continuación:

    <Feature 
      Title="Simple List Feature" 
      Id="80E23615-3145-4f43-BD5E-8524C02BD6CD" 
      Scope="Web" 
      xmlns="https://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="Elements.xml" />
      </ElementManifests>
    </Feature>
    
  3. Para sustituir el marcador de posición GUID en el atributo Id anterior, genere un GUID ejecutando guidgen.exe, que se encuentra en unidad_local:\Program Files\Microsoft Visual Studio 8\Common7\Tools.

  4. En la nueva carpeta, cree un archivo Elements.xml que identifique la plantilla de lista y especifique la información que se va a mostrar en Crear página. Asígnele un valor de tipo que sea mayor que 10.000 y distinto de cualquier otra definición de lista personalizada que se haya usado en la implementación:

    <Elements 
      xmlns="https://schemas.microsoft.com/sharepoint/">
      <ListTemplate 
        Name="SimpleList" 
        DisplayName="Simple List" 
        Type="10001" 
        Description="This is my simple list." 
        BaseType="0" 
        OnQuickLaunch="FALSE" 
        SecurityBits="11" />
    </Elements>
    
  5. Cree una subcarpeta que tenga el mismo nombre que el que se asignó a la plantilla de lista en el paso anterior, por ejemplo, ListaSimple.

  6. Cree un archivo Schema.xml en la subcarpeta nueva para definir la lista. Puede copiar y modificar el archivo Schema.xml de una característica de lista existente para definir campos especiales para una definición de lista personalizada.

  7. En un símbolo del sistema, escriba los comandos siguientes para instalar la característica en la implementación y, a continuación, activar dicha característica en un subsitio especificado.

       a. stsadm -o installfeature -filename SimpleListFeature\Feature.xml
       b. stsadm -o activatefeature -name SimpleListFeature -url https://Server/Site/Subsite
    
  8. Para probar la nueva característica, vaya a la página de creación y cree una lista con ayuda de la plantilla.

Archivo Schema.xml

Defina los campos personalizados que son necesarios para la lista cerca del principio del archivo Schema.xml. El ejemplo siguiente, que copia y modifica el archivo Schema.xml de la característica predeterminada CustomList, define un campo Choice especial para la característica SimpleList y agrega este campo al tipo de contenido Item para que el campo se muestre en los formularios de elementos.

Para personalizar la definición de tipo de contenido de Item, busque la siguiente declaración de tipo de contenido cerca del principio del archivo Schema.xml copiado:

<ContentTypeRef ID="0x01">
  <Folder TargetName="Item" />
</ContentTypeRef>

Reemplace esta declaración de tipo de contenido con la de Item cuyo identificador es igual a 0X01 en el archivo ctypeswss.xml que está ubicado en C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\ctypes.

Agregue una referencia para el campo personalizado a la definición de tipo de contenido, que en este ejemplo se denomina FavoriteColor. Incluya también el elemento Folder predeterminado para especificar la carpeta de recursos para el tipo de contenido. Cree un identificador único para el tipo de contenido como se describe en Identificadores de tipo de contenido. Utilice Guidgen.exe como se ha descrito previamente en el paso 3 para crear los GUID para el identificador de tipo de contenido y para la referencia de campo.

<List Name="SimpleList" Title="Simple List" BaseType="0" Direction="" Url="">
  <MetaData>
    <ContentTypes>

  <!--Copy the referenced ContentType definition from ctypeswss.xml.-->
      <ContentType 
        ID="0x010099FE4F3ACD494e30A36693F9EE65BAF2"
        Name="FavoriteColor Item"
        Group="$Resources:List_Content_Types"
        Description="Favorite color item content type."
        Version="0">
        <FieldRefs>
          <FieldRef 
            ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" 
            Name="Title" 
            Required="TRUE" 
            ShowInNewForm="TRUE" 
            ShowInEditForm="TRUE"/> 

          <!--Add a field reference for the custom field.-->
          <FieldRef
            ID="{AD22016D-BC8B-4631-A0A3-5E84C6CFA7EC}" 
            Name="FavoriteColor" 
            Required="TRUE" 
            ShowInNewForm="TRUE" 
            ShowInEditForm="TRUE"/>

        </FieldRefs>
        <XmlDocuments>
          <XmlDocument NamespaceURI="https://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
            <FormTemplates xmlns="https://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
              <Display>ListForm</Display>
              <Edit>ListForm</Edit>
              <New>ListForm</New>
            </FormTemplates>
          </XmlDocument>
        </XmlDocuments>

        <!--Include the relative folder path for the content type resource folder.-->
        <Folder 
          TargetName="Item" />
      </ContentType>

      <ContentTypeRef 
        ID="0x0120" />
    </ContentTypes>

En la etiqueta vacía Fields que sigue a la sección ContentTypes de Schema.xml, agregue una definición de campo para el campo FavoriteColor Choice como se indica a continuación:

    <Fields>
      <Field 
        Type="Choice" 
        Name="FavoriteColor" 
        DisplayName="Favorite Color">
        <CHOICES>
          <CHOICE>Red</CHOICE>
          <CHOICE>Green</CHOICE>
          <CHOICE>Blue</CHOICE>
        </CHOICES>
      </Field>
    </Fields>
    <Views>
      ...

Agregue una referencia al campo personalizado en la sección ViewFields de una definición de vista para que se muestre el campo en la lista. En el siguiente ejemplo se agrega una referencia del campo FavoriteColor a la vista estándar de todos los campos.

<ViewFields>
  <FieldRef Name="Attachments"/>
  <FieldRef Name="LinkTitle"/>
  <FieldRef Name="FavoriteColor"/>
</ViewFields>

Vea también

Otros recursos

Archivos de plantilla de lista
Trabajo con características
Trabajar con plantillas y definiciones
Schema.xml