Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Defining custom content types with CCK

From: Drupal 6 Essential Training

Video: Defining custom content types with CCK

Drupal's default installation comes with only a few basic content types that, truth be told, do not differ much one from the other. A Blog post is very much like a story which in turn is very much like a page. The Content Construction Kit, or CCK Module, is your gateway to expanding content types tremendously, incorporating not only plane text, but also email address, dates, durations and so on. We have already downloaded and installed this module. If you need help doing so, see the video in this series entitled 'Unpacking and Installing Modules'.

Defining custom content types with CCK

Drupal's default installation comes with only a few basic content types that, truth be told, do not differ much one from the other. A Blog post is very much like a story which in turn is very much like a page. The Content Construction Kit, or CCK Module, is your gateway to expanding content types tremendously, incorporating not only plane text, but also email address, dates, durations and so on. We have already downloaded and installed this module. If you need help doing so, see the video in this series entitled 'Unpacking and Installing Modules'.

CCK is indispensable for anyone who wants to build a specialized Drupal site. For example, a catalog or a resource directory, but it takes a little getting used to. The first thing that we are going to do is to create a new content type. That is the one that we are going to be playing with, when we use CCK. We will go to Administer, Content types and Add Content type. The Content type will be called Property Listing. The Type will be property_listing. Remember the type is machine readable, so you have to limit exactly what characters go into it and the description will be, Underwater properties offered for sale.

Scrolling down further we click on the Submission form settings, change the Title field label to Headline and the Body to Description of property. We will also change the workflow settings, so that a new revision is created each time and note that it is promoted to front page, so everything we create as property_type will show up on the front page. And under Comment Settings we will disable them, so that people cannot comment on property listings. Scroll down to the bottom and Save content types. Now we are ready to start adding CCK fields, but first let us take a look at exactly what CCK does. We will go into Administer and Modules. We have installed the Modules, but we have not turned them on. Let us see what they look like. At the top you see this group CCK. Just by installing that one module we have all of these different parts that we can turn on or off.

The only one that is necessary is Content. We are going to turn on only that one, then scroll down to the bottom of the page and Save Configuration. We are going to edit the Content type called Property listing. To do so go to Administer and then to Content types and down to Property listing, but you will see that there are two new fields here called Add Field and Manage Fields. We want to add a field, so we will click on add field. It did not work; the reason is that although we added the CCK Module and the content part we have no specific CCK types that we can add. So we will go back to Administer and Modules and in our case, we are just going to add two more, Number and Text. The other options in the CCK area define either CCK types such as Number or Text or they define certain things like Permissions or how CCK fields can be grouped on the page.

You can read more about these in the documentation for CCK. In addition you can download other CCK types at drupal.org in the Modules download area. But for now, we will just go down to the bottom of the page and save our configuration. Now we will go back to Administer, Content types and Property listing and we will try adding a field. Now we can add a field. The first field we are going to add is bedroom since obviously if you have a property listing you want to know how many bedrooms it has.

We will call it field bedrooms; the label will be Number of bedrooms. Here we have a choice, what sort of field we want it to be? The reason we have these four choices because we turned on the Number and Text CCK types. The first three obviously are numbers. Decimal means with a decimal point in it, like 3.5. Float means a floating-point number, which is used in computing. Integer is a whole number; 3, 6 negative 5 and Text obviously would be a plain text field.

Since you can only have a whole bedroom, we will change it to Integer and then click Continue. Depending on what we selected in Field type our next options are going to vary. Under Widget type we only have option of Text field. Again as you add more CCK types you may have other choices. We click on Continue and have several options. The first is Help text. We can say to people, "Please put the number of bedrooms in this area." We do not really have to do that because it should be clear, number of bedrooms is the number of bedrooms.

You can also enter a Default value. For example, let us say that you live in a condo development in which everything has to two bedrooms except for five or six properties. Then you might have a default value of two and then let people change it to something else when that exceptional case occurs. We will click on that and you can see, you can enter your default there. You can also enter PHP code depending on circumstances that you can interact with in a PHP program that is well beyond the subject of this course though. Going down you can require that field to be entered. If it is not checked then people can just leave it blank. We are going to require it. You can indicate a Number of values, so people have to enter five different types of bedroom, obviously that does not make sense here, so we will not include it. You can have a Minimum and a Maximum and a Prefix. We will show you what the Prefix means in another field that is coming up.

Along with the Prefix, you can have a Suffix and finally you can limit the values to a list that you define. For example, let us say, that you never deal with properties of more than five bedrooms, but you also never deal with properties of three bedrooms. You could limit it to one, two, four and five bedrooms by typing in 1, enter, 2, enter, 4, enter, 5; one per each line. Again you can enter PHP code for that as well. We are just going to save the field as it is now. Now we see a list of all of the fields and something interesting is here. We see the Headline and Description of property. Those were built-in to the Property listing even before we installed CCK. We change the names that were titled in body but CCK exposes the fields that are already built into Drupal.

Similarly Menu Settings is one of the built in fields that CCK exposes. Continuing on we are going to add a few more fields by clicking Add Field. This one is going to be bathrooms -- number of bathrooms. For Field type, we are going to leave it as decimal because you can actually have half a bathroom, if there is a toilet and sink and no shower for example. We click on Continue and again we have this Widget type which at the moment the only choice is Text field, so we will just click Continue. We will scroll through here and for this, we do need a Help text to explain to people exactly what half a bathroom is. So we will type in, use decimals to show partial bathrooms, 0.5=toilet and sink but not bathing. 0.75=sink and bathing facilities but no toilet. Again we do not have a default value; we are going to require this field. We only want one field to be entered. No minimum or maximum.

The Precision popup comes into play, if you are dealing with math mostly. The minimum precision is 10, which is more than enough for most purposes. We only need three places of precision since we can only have 1 or 1.5 or 1.25, we will never have 1.333. In any case 10 is more then enough. For Scale we know we will never need more then 2 to the right of the decimal, so we can leave it at 2. You have a choice of what sort of decimal marker you want. This one is depending on what country you are in. Some places in the world use a comma or a space instead of a decimal point. Since we are doing this site for US audience we use the decimal point. Again Prefix and Suffix, Allowed values we showed you. Click on Save filed settings.

All right, we are getting there. The third field we are going to add is going to be Price. We will just call it price, the Label is Price and the field type is Integer. We are not going to let people charge pennies on there houses. Click on Continue, again Widget type is Text field, Continue. We do not need a Help text. We are going to require this and we are going to require a minimum of 1, so that people can say this property is whatever you decide to pay me. We are going to make them name a price. For Prefix, we are going to put in the $ sign, so that every time somebody enters the number it will come out with a $ sign ahead of it.

Skip Allowed Values and Save field settings. There is just one more field we have to add and that is the Address field. Go up to Add field, we will call it address. Under Label we will call it Address and for Field type, we will say Text and Continue. Now this Widget we have multiple selection for the first time. We can either have text field, which is single line, or text area, which is multiple rows. You would use the second if you wanted to allow users to enter an assay for example. But one line is good enough for us and we will click Continue. We do not need a Help text; we do not need a Default value. We do want to require a value. Keep scrolling down and you will see an additional option, Plain text or Filtered text in which case you could say for example, choose whether this it should HTML or PHP or something, but we are just going to use Plain text. Once again we do not need to check Allowed values and save field settings.

There, now we have our new CCK content type. Before we start working with it, I would like to point out a few things and adjust it a little bit. First for each field that you create you will notice links at the top of this page. If you click on anyone of them you can go back and edit certain characteristics about that field. There are some that you cannot edit however, for example, the Widget type, unless you click on change basic information in which case you back a little bit earlier. We are not going to do that now though. We are just going to go back and click on Manage Fields which the screen we were on before. From here as in other places in Drupal, you can change the order in which these appear. I think I want to have the Headline up top, then the price. You do that by clicking and dragging on that little arrow icon, the Number of Bedrooms, the Number of Bathrooms, the Address and then the description of property and we do not need the Menu settings until the end and in fact that is really just for Administration anyway. The ordinary user would not see that.

You will notice that this does not take, until you click on Save, so now we do that. Terrific we have created our Content type. If we want to allow ordinary users to able to enter it however, we have to go up to Administer and Permissions. On the Permissions page, you have to allow authenticated users to enter information in that Content type. You can search that whole page or you can just a find and do a search for the name of the content type which in this case is property. Property and there it is, property_listing. We are going to allow them to enter their own properties by clicking here.

Scroll to the bottom and say Save permissions. Now we are going to switch over to our ordinary user fishyjoe and he is going to add a property. We switch by holding down Command Tab to get the Firefox in which we have already logged in fishyjoe. Fishyjoe can go up to Create Content and he sees this new content type called Property listing. He clicks on it and he gets a form exactly as we would expect it to appear. Let us make a property here, Beautiful home among the coral reefs. The price is $35000. Well it is not very expensive; it is full of water. Number of bedrooms is 2, number of bathrooms is 1. The address is 1572 Briny Deep, Sandy Beach, CA (offshore) and for description we will just say, a lovely little starter home, very few barnacle.

You will notice that that Help text that we entered earlier about number of bathrooms shows up underneath the field itself. So anything you enter while defining that field will show up in this way. We will scroll to the bottom and say Save. There is our Property listing. You may remember that we had this as promoted to the front page, so we will go back to the front page and see it there. CCK really opens up Drupal to all sorts of applications. For example, I want to prototype a dating site on Drupal and its centerpiece was of course personal ads. The Personal Ad Content type was created with CCK to include all sorts of relevant information and that allowed people who they were and what they were looking for. Similarly you can use CCK for fulfill unusual needs in Drupal.

Show transcript

This video is part of

Image for Drupal 6 Essential Training
Drupal 6 Essential Training

66 video lessons · 31399 viewers

Tom Geller

Expand all | Collapse all
  1. 4m 38s
    1. Welcome
    2. Using the example files
      3m 48s
  2. 28m 55s
    1. Drupal is a CMS
      7m 43s
    2. Choosing Drupal
      5m 32s
    3. Checking Drupal's requirements
      4m 26s
    4. Understanding the inner workings of Drupal
      4m 35s
    5. Meeting the Drupal community
      6m 39s
  3. 11m 28s
    1. Learning key terms in Drupal
      5m 20s
    2. Touring Drupal's interface
      6m 8s
  4. 34m 35s
    1. Installing WAMP and Drupal on Windows
      9m 41s
    2. Installing MAMP
      4m 34s
    3. Setting up the database on a Mac
      2m 2s
    4. Downloading and installing Drupal on a Mac
      6m 37s
    5. Troubleshooting installation problems
      3m 49s
    6. Automating updates with cron
      7m 52s
  5. 25m 37s
    1. Setting up clean URLs
      5m 52s
    2. Backing up your Drupal site
      3m 31s
    3. Restoring your Drupal site from backup
      4m 19s
    4. Wiping your Drupal installation clean
      2m 7s
    5. Updating Drupal
      9m 48s
  6. 15m 37s
    1. Using the Administration menu
      6m 21s
    2. Setting site information
      4m 50s
    3. Setting the theme
      4m 26s
  7. 35m 8s
    1. Understanding security and permissions
      7m 2s
    2. Controlling site access with user management
      3m 39s
    3. Creating users
      7m 58s
    4. Setting user profiles
      9m 40s
    5. Creating contact forms
      6m 49s
  8. 19m 19s
    1. Creating your site's basic info pages
      7m 13s
    2. Understanding page layout
      5m 40s
    3. Creating a flexible layout with blocks
      6m 26s

    1. Monitoring performance
      4m 52s
    2. Recovering from disasters
      7m 37s
    3. Improving administration skills
      3m 6s
  9. 41m 3s
    1. Understanding nodes
      6m 50s
    2. Creating basic content: Stories and pages
      7m 9s
    3. Enabling other content types
      9m 22s
    4. Adding blogs
      3m 49s
    5. Adding forums
      6m 56s
    6. Adding polls
      6m 57s
  10. 34m 50s
    1. Exploring content categories
      7m 45s
    2. Exchanging content via RSS
      9m 47s
    3. Using input filters
      7m 41s
    4. Managing comments
      9m 37s
  11. 38m 5s
    1. Configuring your theme
      11m 27s
    2. Changing your theme's graphics
      4m 59s
    3. Finding and installing a new theme
      8m 56s
    4. Understanding Cascading Style Sheets (CSS)
      5m 56s
    5. Deciphering CSS files
      6m 47s
  12. 22m 41s
    1. Finding modules
      6m 53s
    2. Unpacking and installing modules
      6m 30s
    3. Configuring modules
      3m 50s
    4. Implementing complex modules
      5m 28s
  13. 32m 12s
    1. Ensuring automated updates with poormanscron
      3m 11s
    2. Defining custom content types with CCK
      12m 54s
    3. Stopping spam using a CAPTCHA
      10m 43s
    4. Using a WYSIWYG text editor
      5m 24s
  14. 22m 18s
    1. Getting around with multilevel menus
      7m 26s
    2. Building custom menus
      5m 42s
    3. Creating easy-to-navigate books
      9m 10s
  15. 20m 19s
    1. Changing page templates with PHP
      8m 15s
    2. Using PHP in content
      5m 20s
    3. Implementing PHP snippets
      6m 44s
  16. 10m 15s
    1. Launching your site
      5m 52s
    2. Joining the Drupal community
      4m 23s
  17. 14s
    1. Goodbye

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.

Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.

Mark all as unwatched Cancel


You have completed Drupal 6 Essential Training.

Return to your organization's learning portal to continue training, or close this page.

Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?


Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.