This information is out of date. For a current list of outstanding issues, visit the project's issue queue.

Hey all,

I've received various requests for information about the Content Construction Kit project, and it's time for a summary of the work so far and what's left to do. I'll keep this topic updated with the development progress; feel free to post questions and feedback as replies until such time as there's an official project created that can take issues.

Related information:

Task Status Priority
Create prototype module Complete 1
Determine database schema Complete 1
Revise module to avoid patching core Complete 1
Implement basic field types:
    Short text field Complete 1
    Long text field Complete 1
    Integer field Complete 1
    Decimal (float) field Complete 1
    Category (taxonomy/select) field 1
    Date field In Progress 1
    Image field In Progress 1
    File field In Progress 1
    Node reference field Complete 2
    User reference field Complete 2
Design node listing API Handled by views.module 1
Add content type caching mechanism Complete 1
Add node caching mechanism Complete 1
Support node revision system Complete 1
Support form api Complete 1
Validate required fields Complete 1
Design administrative UI according to interface group
specifications
Complete 2
    Implement content type duplication Complete 2
    Validate field names Complete 2
Allow customization of node titles Complete 2
Support multiple entries per field In Progress 2
Write field API documentation for drupaldocs.org In Progress 2
Write example field module for drupaldocs.org 2
Create upgrade path from Flexinode 2
Allow modules to define field instances 2
Create advanced search interface Handled by views.module/deferred 3
Create URL-based listing module Handled by views.module 3
Create tabular display module Handled by views.module 3
Evaluate "node templates" or views 3
Implement basic node types as CCK types:
    Story 3
    Page 3
    Blog 3
    Book 3
    Forum 3
Restrict access to individual fields 3
Implement user profiles as CCK types 3
  • Priority 1 items must be complete before the system may be considered for core.
  • Priority 2 items must be complete before stable release.
  • Priority 3 items are opportunities for additional functionality after the system is operational.

Comments

killes@www.drop.org’s picture

I obviously volunteer to help with the node caching.

--
If you have troubles with a particular contrib project, please consider filing a support request. Thanks. And, by the way, Drupal 4.6 will support PHP 5.

Dries’s picture

How about revisions/versioning? Is that a non-issue or should that be an item on your list?

JonBob’s picture

I haven't looked at killes' work yet to see how revisions are handled. This will need to be verified, yes.

killes@www.drop.org’s picture

I'd really prefer if the revisions patch could be on core before CCK. I've been updating it for too long.

--
If you have troubles with a particular contrib project, please consider filing a support request. Thanks. And, by the way, Drupal 4.6 will support PHP 5.

Dries’s picture

Agreed, but JonBob still has to deal with it.

Stefan Nagtegaal’s picture

Well, maybe it's a little early to ask, but d you have any idea how the url's will look?
Will we have url's like $cck->type/$cck->id or will it be the simple node/$cck->id?

My personal preference will g out to $cck->type/$cck->id, but that's just me...

JonBob’s picture

The URLs for viewing a node will not change. Otherwise there are nasty implications for menu callbacks, tabs, etc. I think for people who want different URL naming conventions, it's more useful to have a module that automatically sets path aliases according to your personal convention (type/id, vocab/term/id, node/nodetitle, etc.).

JonBob’s picture

I added a bunch of new bullet points. Yay! More work for me!

On the bright side, I dropped in a modification of walkah's new image.module. It seems to work like a charm, though there are a few rough edges to iron out. In general it was much easier to convert this module to a field type than its predecessor. Kudos!

JonBob’s picture

The list module can now do a couple interesting things. Rudimentary support for the listing API is in, and you can search for numbers greater than or less than something, strings contained in text fields, and wildcard matches.

JonBob’s picture

Images and required fields are in.

JonBob’s picture

And they validate for min and max values now.

adrian’s picture

So that the view of a node can change depending on who is viewing it.

If not directly in CCK, atleast allow a module to remove fields before display.

--
The future is so Bryght, I have to wear shades.

moshe weitzman’s picture

in antwerp, we said that this was out of scope for version 1 ... as you say, it should not be hard to add later via contrib module or directly in the CCK

Gabriel R.’s picture

JonBob,

I use Drupal with flexinode for our company's intranet. One thing that we needed from the start is a way to groups the fields. I.e. creating a Contact content type and being able to put the contact information in groups like Home, Work, Other, Internet, etc. A good example is the Profile module.

Does this make sense for you too?

-- NO, don't read this signature!

imerlin’s picture

Very nice! This adds incredible flexibility to Drupal. I'll look into the code tonight and see if I can't help with something. I hope this makes it into the core :)

scriptnews’s picture

Hi

maybe You just did not mention it, so here my question:

How about solutions for international websites and contents, maybe like i18n, translation together with localization or a mix of both?

Argument:

Future development of markets and activities is definitely multi-lingual and considering markets beyond any national and language borders.

A CMS or any web project should have therefor a way to allow webmasters, editors and users to have information in their language.

The interface translation localization of Drupal already is a very viable option.

The i18n works nice in core and some modules.

And the [translation] module could be handy in those parts, where a just quick translation is needed.

But what I still miss is some consistency and the implementation of a solid and consecuent vision.

Just a trend or a need ?

Well I believe international CMS is no more just a fancy item, but an essential core feature needed for those systems and websites that aspire to a leading role in what ever market.

Not to consider languages is - IMHO - the programation of premature death of CMS and with it a mayor problem for those sites that have to face international competition.

Just 1 cent a a tiny vote for focussing on languages as a key issue.

Best regards

Roland

luigi12’s picture

google=multinational site
msn=multinational site
yahoo=multinational site
etc.

i totally agree with your point about the *essential* need for built in i18n supporto for drupal.

Hosting Geek’s picture

The sudgestion is also being screemed for here: http://drupal.org/node/17302

JonBob’s picture

The module is updated for HEAD. Some updates to the task list.

hatseflats’s picture

Me happy, great news :-)

Sheldon Rampton’s picture

I can see how flexinode could bear improvement. One question: Will CCK enable the creation of contributed field types, the way flexinode does?

I've put together a couple of field types called "node selector" and "user selector" respectively. They create a form_select dropdown menu that can be used to choose from a list of nodes or a list of users. For example, say I have a website for tennis players, with a "court" content type, a "match" content type, and a group of players who are all registered as users. Someone who creates a "match" can easily specify who will be playing (using my user selector) and which court it will be played on (using the node selector).

From a quick perusal of the code for CCK, I see support for some data types such as "integer" or "date," but I don't see support for custom-designed data types or for serialized data. Both of those would be necessary if I wanted to recreate my flexinode "user selector" and "node selector" for CCK.

----------------
Research director, Center for Media and Democracy
http://www.prwatch.org

----------------
Customer Support Engineer, Granicus
https://granicus.com

JonBob’s picture

Yes, this is definitely possible; if the code you're looking at is field.module, then you might notice that many of the functions there are commented as implementations of hooks. The new system will be much more flexible than the old, as it will be using the standard Drupal module and hook system for definition of field types rather than a proprietary include system. This should also address the problem we had with buggy contributed field types breaking the core Flexinode install.

JonBob’s picture

I'm marking the caching support as "complete," as I think it's as advanced as it will get for the contrib release. It should cut the queries to one for a typical node_load() of a CCK node. When we consider the module for core, we should look at the cache again, and think about cutting queries further. We could cache the whole node (this version caches only the CCK fields), join in the cache table during a node listing query, and then not have to perform any DB queries at all for most individual nodes during a listing.

Dublin Drupaller’s picture

I love where this is going..just tried the latest version of the module and it's looking good.

It's not quite working with Drupal CVS by the way..not that I expected it to..just installed it to have a quick peek..

Quick questions:

How soon or how far away are we realistically going to see this unleashed?

Will this do away completely with flexinode.module? The approach with CCK appears a lot tidier and intuitive.

cheers..

Dub

Currently in Switzerland working as an Application Developer with UBS Investment Bank...using Drupal 7 and lots of swiss chocolate

merlinofchaos’s picture

Hey, jvandyk and JonBob, I would like to talk to you guys about CCK possibly adopting Views for its node-listing. I see you're in the design phase, which I hope means it's not too late to do this.

-- Merlin

[Point the finger: Assign Blame!]
[Read my writing: ehalseymiles.com]

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

binduwavell’s picture

I was so excited to hear (DrupalCon video) that you guys were working on generalizing content type creation, this is way cool!

Based on CVS activity, it looks like not much has happened since Nov 6th. Do you guys have any plans for a release with all Priority 1 stuff completed (Just wondering if there is a timeframe in mind)? Any idea when/if this will be included in core?

If I start using this now with 4.6 (internal solution) should I expect any issues when we upgrade to 4.7 or for that matter whatever version of drupal finally includes this in core?

UPDATE: I see here: http://drupal.org/node/17302 that this will probably not be fully supported until drupal 4.8. I'm inferring that CCK will not work with 4.6, will be a contributed module for 4.7 and hopefully will be part of core in 4.8. Any comments on these interences?

-- Bindu Wavell
VP. Engineering
Zia Consulting

merlinofchaos’s picture

That is my understanding.

-- Merlin

[Point the finger: Assign Blame!]
[Read my writing: ehalseymiles.com]

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

Dublin Drupaller’s picture

Someone mentioned on the Drupal Developers channel that the cck.module will be ready as a contrib for 4.7.

Can anyone confirm that or give an indicator to the current status?

Appreciate that there is a lot involved in the cck.module, but, it would be good to know if it's true.

Cheers

Dub

Currently in Switzerland working as an Application Developer with UBS Investment Bank...using Drupal 7 and lots of swiss chocolate

merlinofchaos’s picture

CCK is now minimally operational. There's still quite a bit to do, but it is my understanding that we'll have the rest of it ready by March-ish.

I got CCK integrated with Views which managed to eliminate a huge chunk of work that needed to be done.

-- Merlin

[Point the finger: Assign Blame!]
[Read my writing: ehalseymiles.com]

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

imerlin’s picture

Very nice.

What still needs to be done and is this commited to CVS yet?

ultraBoy’s picture

Thats great!

But.. I can't make it working.

1. I downloaded latest versions of the files (link "code" at the top of the page).
2. added cck.mysql to the db
3. enabled all the cck-modules (also tried combos like content.module+text.module)

But, I don't see the link "administer -> content -> content types.", as it is in the README.

Tried with 4.6.3 and 4.7b3 (4.7b3 was a clean installation)

Can you help me please?

P.S. Sorry, IT WORKS WITH CVS!

tomamic’s picture

I'm getting these errors, both with php4 and php5. Maybe I'm doing stg wrong. Anyway, I hope this can help you!

* warning: array_merge() [function.array-merge]: Argument #2 is not an array in D:\ibrp.org\drupal-cvs\modules\cck\content.module on line 895.
* warning: array_merge() [function.array-merge]: Argument #2 is not an array in D:\ibrp.org\drupal-cvs\modules\cck\content.module on line 869.

Also, I noticed you defined text fields in the db to hold dates, according to the iso standard... finally! Much better than unix timestamps, for the general use. But I'm trying to figure out what's the advantage over ansi dates... Just curiosity! :)

I'm also having a look at the new Relationship module. Have you noticed it? I think it's great, really! I'm going to choose the better approach to move a db of articles (thousands) into Drupal, or even some other CMS. The taxonomy system, and now the ability of annotate articles in a semantic way, are very valuable features!

What do you think? Could in some distant future CCK be the basis for that kind of modules and applications to be built onto?

Thank you, I cannot wait to see this module appear! :)

tema’s picture

...anyway

this module is the 'most wanted' thing for many Drupal users (IMO).

merlinofchaos - January 19, 2006 - 08:57
>CCK is now minimally operational...

hurrah! but finally when we will see it in a project/Modules/cvs list?

[update February 8]

Yes! hurrah! [loud applause]

respinos’s picture

FYI: CCK seems to function in PHP4.

With PHP5, I get the above errors, and can't seem to actually make any fields "stick".

willismorse’s picture

I created a content type, creating a new piece of content fails. When I hit the Submit button on the create content page, I go to a blank page, with no errors displayed or logged.

I tracked it down to line 198 of text.module:

    case 'submit':
      dprint_r($node);
      return;

The function dprint_r() doesn't exist. I changed it to print_r(), and everything works fine.

Is this a typo, or is this some new function I couldn't find reference to?

I would just filed a bug for this, but this project doesn't seem to exist in the bug database.

willismorse’s picture

There's another one on line 229 of text.module. This one causes submit to fail when you edit an existing piece of content.

- Willis Morse

Dublin Drupaller’s picture

hi willimouse, please be careful when posting and using CODE tags.

I edited your post to correct the error.

Dub

Currently in Switzerland working as an Application Developer with UBS Investment Bank...using Drupal 7 and lots of swiss chocolate

willismorse’s picture

Thanks, sorry bout that. By the time I noticed it, my time window to edit the post had expired. What is it, like 10 minutes or so?

sepeck’s picture

You can edit until someone replies to your comment. Once there is a reply, you cannot edit further.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

merlinofchaos’s picture

dprint_r is a function provided by the devel module, and it is used to provide debugging messages.

You can safely comment them out or remove them; they probably shouldn't get checked in, but since CCK is still a work in progress, enh. It can happen.

-- Merlin

[Point the finger: Assign Blame!]
[Read my writing: ehalseymiles.com]

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

willismorse’s picture

I added a few fields that I later realized I didn't need. I'm able to remove them from the content type definition, but they still exist in the DB and in the "Add existing field" popups. I guess that's OK, although I didn't expect it.

But they also show up as choices when you create a field filter in the Views module. I don't think anything will break if I choose one of the field types, but it does make it that much more complicated to implement a View based on a custom content type.

- Willis Morse

abloodworth’s picture

I was just wondering the same thing, and it appears that if you remove the fields from all content types, the fields are permanently deleted and no longer appear in the drop-down. I didn't verify in the db, though...

Montuelle’s picture

I have installed CCK on my Drupal installation (CVS of 27 january 2006) to see how this promising module works. So far I have tested the text fields (long and short). I have just found that there is a small problem with TinyMCE.
When in admin/settings/tinymce the default tinymce state is set to on (and the user has not changed this setting), TinyMCE does show on a node/add/CCK-content textarea.
If the disable rich-text below the textarea is clicked then TinyMCE appears and disable rich-text is redisplayed (which is correct this time).

TinyMCE behaves as expected with core modules like page or story and also with Flexinode.

I had a look in the source of the page. The name of the textarea is "edit[field_example] [value]" when TinyMCE init function expects "edit[field_example-value]". Anong these two what is the correct syntax defined by Drupal API for field element names?

This is just for reporting the problem as I found it (CCK is not yet in the list of drupal.org/projects/issues).
Thank you for developping this successor for Flexinode.

coupet’s picture

Excellent!

Is this module optimize for 4.6 or 4.7 ?

Thanks, Darly

Apache is bandwidth limited, PHP is CPU limited, and MySQL is memory limited.

greggles’s picture

I believe it's targeted for 4.7 only.

--
Knaddison Family Blog

dww’s picture

hurrah! but finally when we will see it in a project/Modules/cvs list?

it's there now.

also, project/cck exists (as of February 7, 2006), which is great news. i just wanted to leave a note here so anyone who finds this forum post knows they should move most of this discussion to the cck issue tracker.

thanks,
-derek

___________________
3281d Consulting

pamphile’s picture

If blogs become CCK types, would it be easier to create
multiple blogs per user ?

Marcel
http://ComputingNews.com
http://BusinessLetters.com

greggles’s picture

what does "multiple blogs per user" mean?

You can do that now with page/story/flexinode and taxonomy.

--
Knaddison Family Blog

merlinofchaos’s picture

You *can* do that, but it's kind of difficult. Taxonomy isn't really good for that -- it's hard to let users create terms (new blogs) and taxonomy based permissions seem to have a whole exciting kettle of side effects.

-- Merlin

[Point the finger: Assign Blame!]
[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

-- Merlin

[Read my writing: ehalseymiles.com]
[Read my Coding blog: Angry Donuts]

pamphile’s picture

Like blogger.com

One account and 2 or 10 blogs per user.

Marcel
Targeted Pixel Advertising

Rory--’s picture

Would anybody consider making something to convert Flexinode nodes into the CCK? It would help us 4.6-ers adapt to 4.7 and cvs a lot faster.

scroogie’s picture

There is a flexinode version for 4.7 so you can use that until CCK is finished.

Rory--’s picture

Well, I thought the CCK was supposed to be a more efficient version of Flexinode. I wondered if switching Flexinode to CCK would provide any advantages, management-wise.

scroogie’s picture

Not yet I think. Now and then CCK still changes its database scheme, and I guess polishing the UI isnt one of the early tasks.

bomarmonk’s picture

I also had the impression that CCK would offer performance advantages over flexinode, in terms of resource useage for busy sites, etc.. I think this has to do with CCK's database schema. Correct me if I'm wrong.

alexandreracine’s picture

CCK will be better then flexinode, but they are not there yet. You will have to wait 12 to 16 months and drupal 4.8 ;)

Alexandre Racine

www.gardienvirtuel.com Sécurité informatique, conformité, consultation, etc

www.salsamontreal.com La référence salsa à Montréal

ultraBoy’s picture

No, it already works ok. Maybe not all the functionalities, but works. Please, don't post here any more, it's too long!

bradlis7’s picture

Um, drupal 4.8 is planned for september '06 I think. I think it will be less than 12 months. It will probably be a stable enough module, even if it isn't in core by 4.8.

--
Bradlis7.com | Churchofchristnet

sepeck’s picture

Code freeze is set for September. Code freeze is not the same as release.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

Rory--’s picture

How so? As in, what'll be different about it?

keesee’s picture

Hi everyone...

Restrict access to individual fields in currently marked 3, but it is a feature that our organization needs. Could someone contact me regarding sponsoring such an enhancement. I are will to pay for it's development if there are any Drupal devs out there that have an established record of working with and developing on/for CCK.

Thank in advance.
--
cX.

stella’s picture

Hi,

I was just wondering if anyone is working on creating fieldset functionality for CCK, i.e. the ability to group certain form elements together in a set and have that set collapsible and expandable. Also, will the "password" type input field be supported? And will it be possible to add plain text, e.g. like a paragraph or header (not really needed if we have fieldsets)?

Cheers,
Stella

thierry_gd’s picture

Just added a new module for creation / validation of phone number field via CCK
check it out at : http://drupal.org/project/phone

It 's a beginning, can still be improve

------------
Thierry Guégan
Paris + Vancouver

macm’s picture

I have "My Content cck Type"

If I try print $type

I will receive "My Content Cck Type"

I would like to know if "My Content Cck Type"" have a numeric ID? and How can I print it?

greggles’s picture

It doesn't have a numeric ID, but you can see from doing a "select distinct type from node" in your database what types exist for nodes on your site. If you create a CCK node of this type then you will see it's specific internal unique string. Also, you can see the string from example.com/node/add/content_stuff It's the content_stuff which is your internal cck node name. There are probably dozens of places to find it, but those are some.

--
Knaddison Family | mmm Beta Burritos