Create Custom content type with Custom fields supporting creation of multiple types of documents (.doc, .xls, .ppt) in MOSS

At times, we may have a requirement where in we need to create different type of documents (Word – .doc/.docx , Excel – .xls/.xlsx, Powerpoint – .ppt/.pptx) in a single document library.
So we need to follow the below mentioned steps:
1. Create the required custom fields.
<Field ID={2B333B0C-05E6-4576-A49E-8713CD6F3FA6} Name=Field1      DisplayName=Field1 Type=User Required=FALSE Indexed=TRUE  ShowInNewForm=TRUE ShowInEditForm=TRUE ShowInDisplayForm=TRUE
Group=Other Columns >
    <Formula>=Author</Formula>
    <FieldRefs>
      <FieldRef Name=Author/>
    </FieldRefs>
</Field>
<Field ID={B8DEEF8E-54AA-4ad9-9AC7-115AC936228E} Name=Field2
 DisplayName=“Field2” Type=Choice Required=FALSE Indexed=TRUE   ShowInNewForm=TRUE  ShowInEditForm=TRUE ShowInDisplayForm=TRUE
Group=Other Columns >
    <CHOICES>
      <CHOICE>void</CHOICE>
    </CHOICES>
</Field>
and so on……
2. Create custom content types with the required custom fields.
<!–Generic content type inherited from document content type containing all the fields–>

<ContentType  ID=0x01010D Name=CustomDocLibWrkspcCT Group=Document Content Types Description=Create a document for the document library Version=0>

  <FieldRefs>
    <FieldRef ID={2B333B0C-05E6-4576-A49E-8713CD6F3FA6}  Name=OwnerRequired=FALSE ShowInNewForm=TRUE ShowInEditForm=TRUEShowInDisplayForm=TRUE/>
    <FieldRef ID={B8DEEF8E-54AA-4ad9-9AC7-115AC936228E} Name=Entity Required=FALSE   ShowInNewForm=TRUE ShowInEditForm=TRUE ShowInDisplayForm=TRUE/>
  </FieldRefs>
  <XmlDocuments>
     <XmlDocument NamespaceURI=http://schemas.microsoft.com/sharepoint/v3/contenttype/forms>
        <FormTemplates xmlns=http://schemas.microsoft.com/sharepoint/v3/contenttype/forms>
          <Display>DocumentLibraryForm</Display>
          <Edit>DocumentLibraryForm</Edit>
          <New>DocumentLibraryForm</New>
        </FormTemplates>
      </XmlDocument>
    </XmlDocuments>
</ContentType>
<ContentType  ID=0x01010D0089A4ED8153C04980A6CC1DB53EFA85A9
       Name=Word Document Group=Document Content Types
       Description=Create a word document for the document library
       Version=0>
    <FieldRefs></FieldRefs>
  </ContentType>

<!–Content type for Excel document–>
<ContentType DocumentTemplate=122  ID=0x01010D00A09D2732961C4ffe822B33F30117D24F Name=Excel Document Group=Document Content Types Description=Create an excel document for the document library Version=0>
    <DocumentTemplate TargetName=/_cts/Excel Document/MyTemplate.XLSX />
    <FieldRefs></FieldRefs>   
</ContentType>
<!–Provision the document template in system content types virtual folder-->
<Module Name=XLSTemplates Url=_cts/Excel Document RootWebOnly=TRUE Path=XLSTemplates >
    <File Url=MyTemplate.XLSX Type=Ghostable />
</Module>

<!–Content type for PowerPoint document–>
<ContentType DocumentTemplate=123 ID=0x01010D0036A1687A93B8415fAE51C38676BACD9F Name=PowerPoint Document Group=Document Content Types Description=Create a powerpoint document for the document library Version=0 >
<DocumentTemplate TargetName=/_cts/PowerPoint Document/MyPptTemplate.PPTX />
    <FieldRefs></FieldRefs>  
</ContentType>
<!–Provision the document template in system content types virtual folder–>
<Module Name=PPTTemplates Url=_cts/PowerPoint Document RootWebOnly=TRUE Path=PPTTemplates >
    <File Url=MyPptTemplate.PPTX Type=Ghostable />
</Module>
Note: The templates for these files are uploaded at the location http://minus.com/mtomNJw23
3. Attach these content types to the document library.

In the schema.xml file of the custom document library, within the tag, attach the content types created above

<ContentTypes>                 
      <ContentTypeRef ID=0x01010D0089A4ED8153C04980A6CC1DB53EFA85A9>
        <Folder TargetName=Forms/Document/>
      </ContentTypeRef>
      <ContentTypeRef  ID=0x01010D00A09D2732961C4ffe822B33F30117D24F>
        <Folder TargetName=_cts/Excel Document/>
      </ContentTypeRef>
      <ContentTypeRef ID=0x01010D0036A1687A93B8415fAE51C38676BACD9F>
        <Folder TargetName=_cts/PowerPoint Document/>
      </ContentTypeRef>
      <ContentTypeRef ID=0x0120 />

</ContentTypes>

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s