Drupal's Content Construction Kit (CCK) is a very feature rich, complex module that allows a site's administrator or advanced author the ability to create new content types that contain custom fields.

This is useful for creating nodes that all fit together in a collection.  A good example is an Employee content type which allows site contributors the ability to quickly create pages for faculty/staff members.  Custom fields can be specified such as: date started, position, phone, and e-mail contact information, etc. This saves contributors time by making it so the display of this information is automatically taken care of, requiring them only to enter the necessary information into a provided field.

CCK also allows a permitted user the ability to add custom fields to existing, core content types.  For example, if you wanted to add an image upload field to a Page content type, CCK would be the tool to use.

All CCK field types will include at least one form element, or Widget, which is an item such as a file uploader, drop down box, radio button set, or checkbox, amongst other things.  Some field types provide several different widgets.  After a widget is selected, it can then be configured so it works in a desired way.

Additionally, multiple fields can be placed into groups, which can then be displayed as a collapsible fieldset in the submission form.  These fieldsets are similar to the default collapsible fieldsets that already exist, such as the Menu settings or Input format fieldsets.

File Uploader Widget

cck uploader widget

Select Box Widget

cck select box widget

Fieldset Group

cck fieldset group

CCK also provides the ability to display some elements in different ways. For example, a custom field label, such as Phone Number, can be made to display inline with its field, above its field, or to hide. Fields can be hidden from view as well.

Custom content types can be both imported and exported very easily.  This is a great time saver for site administrators who may work on more than one site but would like to have some similar features between sites.