CCK has been significantly reworked for Drupal 6, both to add new functionality and to provide stronger code and APIs. We've tried to respond to many of the things that were often requested but were difficult or impossible to do in the Drupal 5 version: streamline the process of creating fields, use drag-n-drop to reorganize fields and values, provide a user-friendly 'Add more' button for multiple values, give developers an API and more tools to customize CCK behavior, and provide more documentation.
Many of the things you see in the latest code would not have been possible without all the new Drupal 6 and Views 2 features. Drupal 6, CCK 2 and Views 2 make a great combination!
- Project page
- CCK 6.x-2.0 release notes (people upgrading from previous RCs should read this).
Download CCK 6.x-2.0- Fresh from the maintainers: 6.x-2.1 bugfix release
Important: This release fixes a (minor) security issue that was present in the previous RC releases.
See the Security Annoucement for more informations.
Upgrading from Drupal 5
- The update instructions are on the Project page. The recommended upgrade process is designed to help you avoid problems that the early adopters ran into and represent suggestions for the safest and easiest possible upgrade. Please be sure to read and follow them, and, as always, make a backup copy of your database before upgrading to the Drupal 6 version.
Features/Changes from CCK D5
- The Manage Fields screen now uses drag-n-drop to make it easy to re-organize fields and fieldgroups.
- Streamlined UI to add fields and groups: Add a field, select the type and widget, and drag it into place right from the Manage fields screen.
- Re-arrange non-CCK "fields" (title, body...) along with CCK fields on the Manage fields screen. Third-party modules can expose their own "fields" to gain d-n-d reordering for free.
- On node edit forms, multiple-valued fields come with an AHAH-enabled 'Add more' button to add empty form elements without reloading the page, and drag-n-drop support to freely reorder values.
- Numerous usability improvements have been incorporated based on feedback from the usability testing at the University of Minnesota.
Fields and Field Display
- Field visibility and formatting can be adjusted for each display context. Notably, the 'Search index' context lets administrators specify which fields get indexed by the search engine. Third-party modules can expose their own display contexts ($node->build_mode) to the list of available contexts.
- There is a new option on the 'Display Fields' screen to omit fields from the $content variable used in node templates, to make it easier to customize where those field values will go.
- Fields can now have a fixed number of multiple values (2, 3... up to 10).
- Nodereference and userreference fields now have an option to display options as checkboxes as well as in a drop-down select list.
- New $FIELD_NAME_rendered and $GROUP_NAME_rendered variables are available to node templates holding a fully themed field with label and multiple values.
- More help for themers is included in the Advanced Help topics.
- A new Content Permissions module included in the CCK package lets you control fine-grained access to individual fields.
Content Copy Improvements
- The Content Copy module has been reworked to reduce import/export problems and to ensure that default values and other attributes make their way into the import.
- A new API with Create/Read/Update/Delete (CRUD) functions has been added to make it easier to create and populate fields from custom modules and profiles.
- Module-defined fields can be 'locked' to prevent users from changing or deleting them and breaking functionality.
- The API for widget modules have been significantly reworked to allow field widgets to be reused outside of node forms.
3rd party integration
- CCK fields expose feature-rich fields, filters, arguments and sorts to be used in Views.
- Relationships make all values from related nodes or users available in Views. Add a 'relationship' to a view using a nodereference or userreference field, then add any field, sort, filter, or argument from the referenced node or user to the view (just indicate it is coming from the relationship instead of the original node).
- There is a new feature to create a view of users and use it as a customized 'Referenceable users' list, or, as in earlier versions, create a view of nodes and use it to create a customized 'Referenceable nodes' list.
- Fields now can be filtered by 'Empty' or 'Not empty'.
- CCK 2.0 comes with initial support for the Advanced help module to make more documentation available. Browse to the Advanced Help index or use the 'help icons' to find information on CCK's user interface, available fields and widgets, how to add fields to content types, and advanced theming. The corpus of help topics will be progressively enriched in future releases.
- We have begun integration with the Panels 2 module. Panels 2 for Drupal 6 is not quite ready yet, but preliminary integration has been added to CCK, and will be extended in later releases.
- CCK now integrates with the Devel generate module. Core CCK fields and any other CCK fields that implement the content_generate() hook will add random valid field values to the generated nodes, making it easy to create sites with populated values for all your fields.
- The Diff module can outline changes in CCK field values across node revisions.
- CCK comes with a fairly comprehensive suite of tests (fields CRUD API and data storage, admin UI, node edit forms, optionwidgets) to be run using the Simpletest module, to help ensuring that no critical feature gets broken during development.
KarenS and yched wish to thank a number of people who have spent a lot of time getting this release working. Apologies to anyone we forgot to include! We appreciate the efforts of everyone who helped out.
- Moshe Weizman for his constructive presence in the issue queue, early code and feature review, and his contribution of the new Content Permissions module.
- Earl Miles/merlinofchaos for lots of help getting the Views integration working right and making sure we were taking full advantage of all it could offer.
- pwolanin for security reviews and patches.
- corsix for writing the helper framework for the Fields CRUD simpletests during the GHOP contest.
- fago for providing and maintaining Rules integration.
- dopry, jpetso, asimmonds, fractile81, and Moonshine for a variety of patches, reviews and bug reports.
- hass for providing translations and hass, stella, and others at Civic Actions for string translatability reviews and fixes.