Want to get Lullabot article, videocast, and podcast announcements delivered right to your in-box? Let us know your email address (we won't share it) and we'll let you know when anything exciting happens.

Subscribe to our bi-weekly audio podcast - The Lullabot Drupal Podcast, our daily interview snippets - Drupal Voices, our periodic videocasts, or everything. Just choose your favorite podcast-listening application or service and click away!


Drupal Podcast No. 38: Deprecated!

  • Artist: Lullabot
  • Title: Drupal Podcast No. 38: Deprecated!
  • Album: Drupal Podcast
  • Track: 38
  • Year: 2007
  • Length: 99:49 minutes (23.66 MB)
  • Format: Mono 22kHz 33Kbps (VBR)

Angie Byron, Robert Douglass, Jeff Eaton, and Jeff Robbins discuss outdated methods and modules for Drupal.

Comments on this post will automatically be closed three months from the original post date.

Comments

I'm with you Jeff

I had to drop out of the podcast before you got to profile.module, but I agree; it is 100% deprecated. Don't use it. Use node profile instead. It now lets you expose fields in the registration process.

I think..

He was recommending "bionode module".

I'm not sure what to use now. I was usnig profiles to create an "I accpet the terms and conditions" button. Is there a better way to do it?

It's bio module. You should

It's bio module. You should use legal module for terms and conditions. Waaay better than profile module for that.

bio module

I know he was recommending bio module, but node profile module has a new release (released after the podcast was recorded) which just might make bio module deprecated.

whoa

So there's at least 3 methods to force acceptance of T&C:

* current profile method (in the handbook. create a profile field and force it to be checked during registration)
* bio module
* node profile module
* legal module

So seriously-- I'm starting a new site here. What's the right way to do it?

I'd love to drop profile but...

On several sites I would love to replace profile with a real node type. But - on quite a few of these sites - I have other modules that integrate with profile (e.g. ldapdata from the ldap integration module).

Do any of the newer profile replacing modules have any way to pretend to be profile (and I think we're talking at the db level here) while at the same time being a real node?

usernode isn't intended for profiles

Hi!
Thanks for mentioning nodeprofile robert.
I'm the author of all the mentioned "strange" nodefamily, usernode stuff as well as nodeprofile.

To clarify:
- Nodeprofile builds profiles as nodes..
- Nodefamily let's you limit the number of nodes per user and build extended profiles by using node relations.
- usernode was never intended for profiles, although some people are using it that way with drupal 5. For profiles I wrote nodeprofile. Usernode is useful in particular in conjunction with views (list users with views!)
- views_fusion: A views extension, to list data that is stored in several nodes. Useful if your nodeprofile makes use of multiple nodes per user.
- pageroute: A module that allows building wizards for filling out user profiles (works with core profiles as well now)

I disagree that auto loading profile data in the user object is a good idea. Although the usual global user object doesn't invoke hook users load operation, that autoloads core profile information, user objects are loaded with user_load in a couple of situations where profile information is just not needed.
Furthermore people use the autoloaded data to customize their themes, without knowing if the data has been checked appropriately yet. This is a common pitfall where users are creating XSS holes in their sites!

Nodeprofile 1.1 tries also to make themers life easier by providing some ready to use functions for loading the profile node, that can be themed easily like any other node.

show notes

Sweet, Robert came through with some good links, but I'd already started taking notes, so double the pleasure this time around.

Upcoming Lullabot Workshops. You know you want to.

Speak & Spell. If you're not old enough to remember playing with one of these, then you are just too darned young.

Matt Westgate and John VanDyk's Pro Drupal Development book. Order it from the provided link and earn the Drupal Association some scratch. Still waiting on my pre-ordered copy to arrive. Any day now, any day ...

jjeff has got some new modules that might suit your fancy:

And while we're at it, so does Eaton:

Busy boys.

Robert suggests the taxonomy module has been deprecated by ... CCK. Jeff and the gang more or less agree, but Angie has some reservations. I'm still waiting to be convinced that a common term designation API of which taxonomy was but one implementation wouldn't be a good solution.

Robert was trying to say anthropomorphism, and got darned close, too.

Bless his heart.

Jeff suggests that Flexinode has been deprecated by ... CCK. I think we can all agree on that.

webform and survey modules have potentially been deprecated by ... CCK (if you aren't picking up on the thread here, your pattern recognition skills need some honing)

image module has been deprecated by ... CCK (yep), and imagefield and imagecache. See Angie/webchick and Nate's fine article about using these great modules over
here
.

Have the audio and video modules been deprecated by ... CCK and mediafield? The 'bots think they are pretty close.

event module has been deprecated by ... Views and (you guessed it) CCK (and date (field) or calendar ... both maintained by the ever-prolific KarenS)

Jeff R. feels strongly that the profile (core) module has been deprecated by ... CCK (sigh) and Views.

(not to mention bio, usernode (singular), usernodes (plural, nodefamily, etc..)

myspice.com is taken!. Dammit, I was going to register that on a lark.

nodeaccess may not be deprecated, but it is being abused. In most cases you'd want to use (say it with me now) CCK. Or contemplate.

Angie explains exactly what the Data API actually is ... yay Angie!

Someone mentioned separating node fields into their own entities rather than passing them back to the theme level as one giant $content blob. Yes. Yes, please!

jQuery and actions potentially
deprecate lots of stuff. Like, maybe, comment mail someday.

Any node type implementing module has probably been deprecated by ... CCK and Views. But you could have guessed that.

Geez guys, that was a long show.

-- your friendly neighborhood href man (drawk @ wwdd)

images

The only problem with imagecache is an incredibly high skill level to use it and lack of documentation on drupal.org. Until that need for custom code is reduced somewhat and the available documentation improves, image module still wins for simplicity in implementation.

Steven

Event module

Event module is alive and kicking, thanks...

I am currently rewriting it to do away with the pesky timestamps, Dikini has done some hcalendar stuff. I have no plan to retire it any time soon.

image library

As far as I know, there is not yet a way to build a library of reusable images with CCK imagefield and imagecache. Undoubtedly, such a feature will be developed in the future, but until that time, image.module and img_assist.module suit our needs.

CCK file fields

As far as I can tell (and I seriously worked on them very recently), current releases of the mentioned CCK file fields (filefield, imagefield, imagecache, and mediafield) are nice, and the future without doubt, but not yet ready for mass consumption.

It may only be a small effort missing for them to be great (and, in this respect, I hope dopry and quicksketch apply my patches soon), but at the moment they suffer from database inconsistencies (leftover entries, no entry in the {file_revisions} table), no support for node revisions, not-working private downloads, and a few annoying bugs (files don't upload, images don't get resized, octet-stream download starts) when used together with other modules.

So, we might be getting there, maybe in two or three months already, but those fields are not quite there yet. Soon. (Let's hope dopry finds a bit more time.)

Problems with Imagefield

You're right! The behavior from Imagefield for example where an empty div shows up if no image is included indicates that a lot of work still needs to be done. (The proper behavior where there's no image, is to include no div at all.)

More here: http://drupal.org/node/138879

Defense of profile.module use

While profile.module's implementation is definitely outdated when compared to CCK, there's a good reason to keep using it on current 5.x sites if you don't need the flexibility of the node system. Even though there hasn't been much movement in migrating CCK to core, when that does happen (and it will) Drupal core will certainly provide an upgrade path for current profile.module users.

Those people using bio.module or nodeprofile will find that they're using a non-standard profile configuration and it will be up to those contrib authors to depreciate *those* modules and provide an upgrade path to the equivalent "standard" CCK-enabled profile.module.

"Do one thing, do it well."

As I listened to the podcast I had the nagging feeling in the back of my mind that maybe we're moving away from the Unix ideal (popular years ago, and well on its way back in) of buidling many, small, specialized programs. (consider "ps aux | grep brian | less" for example)

(I had no idea this existed, but there's a Wikipedia entry on this. Go figure.)

Anyway, does the convergence of all these functions into CCK and Views represent movement toward a more monolithic solution base, or does it simply mean that the focus of modularization is moving down a step from core Drupal into CCK/Views? Are we going to give up the preference for small, specialized puzzle pieces, or will this actually allow us to make even smaller, more specialized pieces?

I'm not sure, yet.

CCK *is* that philosophy

CCK is not one module, but instead a collection of small modules that implement field types and widgets to define the collection, storing, and display of pieces of information. You can wire them together however you like to create your own custom node types. It's a *Kit* for *Constructing* *Content*. :-) Lots of small pieces that do specialized things. Very Unixy!

Views, on the other hand, has an extensive API so that smaller modules can add their own Views, add View criteria, etc.. And although Views is one of the largest (group of) modules out there, it is actually a graphical programming system to allow the administrator to create their own custom views of the content. Its power is in its flexibility. Perhaps more Mac OSX philosophy than Unix, but cool nonetheless!

It's a *Kit* for


It's a *Kit* for *Constructing* *Content*.

They don't call it the KCC for nothing!

Oh, wait.

Hmm. Maybe it should be the CTCK (content TYPE construction kit)

Taxonamy and Node access certainly have a future.

Nice job, excellent cast.... I stayed till the end, but that may be cause I've got the flu. Not upset but.... a couple of things to ponder.

A properly used taxonomy should span content types, work for a movie, and audio snippet ,etc. Given the future of key word media keyword tagging, I don't see this module dissapearing any time soon. I agree people (including myself) have used taxonmy to track attributes of a particular content type. Cause I didn't have views (and cause flexidnode wouldn't coexist with ckk.

Node access is the only value based security we have in drupal that I'm aware of. (not field based, but value based). In the example you used you'd have to give the user access to all of the original pictures resolution. Combinations between value based and field based and security seem expensive. Why not instead think of it as anode access module that implements security in terms of the existence of another related content type (e.g. an order content tpe.) You might even be able to write a node_access module today that does this. I agree the way forward involves making node_acess useful for more than crud, but action based security. (e.g. publish a node).

Finally rather than making everything a node, maybe the views module and ckk need to combine with the data API, such that creating leveraging ckk and views for orther table structures just meant creating a table of the right type, and calling the views and ckk apis telling it which table the field data landed in. That lets nodeId and relational constructs apply without the overhead of ckk. But ckk still gets used to store all of the static attributes of an object. Heady, but your podcast made me think.... a dangerous thing at best.

Nice flashing! I'm sure it was worth the effort.

Great Podcast Folks

Another great podcast this week! Thank You.

I found it interesting that Jeff at one point asked the question - would someone with a simple blog on drupal need all the complexities of CCK, Views etc as compared to the drop in modules which are becoming deprecated?

I personally would love to use more of the methods mentioned in the podcast in preference to some of these modules which appear to slowly becoming deprecated (as although they are an easy install option they are not always an 'out of the box' perfect fit for a site) but at the moment these take a level of understanding which most days are beyond me (I have the occassional eureka moment though!). I'm sure other new/less-experienced drupal users would be in the same boat.

I guess if this gulf gets filled by better documentation, better UI's, installation profiles etc then yes these drop in modules will become surplus to requirements but I think us mere mortals will require them for a while longer yet.

Anyway thanks again got to run off and look at these user node thingy-mi-jiggs! lol

Stuart
aka Nutmeg @ my-spice.com

p.s. I checked and myspice.com is already taken by a dating webiste- what a let down, that would have made for a great social networking opportunity for the culinary impaired ;)

Category Module

In the podcast Angie discussed something like an outline module and features that Plone has for organizing a site hierarchy.

I use the Category module for that purpose. What it does for me is allow me to create containers, hidden containers, and categories (different node types can be categories). The power of this for me is that Menu entries are created automatically (if I choose), and bread crumbs are maintained. I use the views insert module on my Container pages instead of the views feature of Category module.

I keep hearing how CCK and Views is nirvana, but how does CCK allow one to maintain proper bread crumbs and automatically populate the menu? I would love to hear this discussed on a podcast.

I'll keep using Category module.

BTW, thanks for the this great forum. I never miss it.

Rich

How to image gallery with CCK, imagefield, imagecache

Great podcast - thanks.

I guess one thing I like about image module is the easy way one can build image galleries with the gallery module included. But I imagine there are much better methods. Any recommendations for best way to do galleries with CCK images?

I had an adverse reaction to

I had an adverse reaction to most of what was discussed on the Podcast, as it seems that everything I've already implemented in my simple personal site is already being deprecated — but these are the features I chose Drupal for in the first place. That's why I thought it was important that Jeff brought up the topic of individual users who just want to create a blog … Drupal lets me do a blog plus.

I think as we as a community discuss these features and set direction for them, we have to understand what made the older features valuable in the first place.

For taxonomy, I'm glad it spans content types. I'm glad it's global. I'm glad I can edit it standalone, without having to go to each node to make changes or additions. I'm glad it's hierarchical. I also am very very very happy — and this point should not be lost — that it works with BlogAPI.

I just started my first book, literally the night before I listened to the Podcast. Books are one reason I was interested in Drupal, I finally created one, and now I'm being told that they might be deprecated. Urgh!

For event, although I don't use it currently, it seems like we really need a content type that mirrors the iCalendar format. There is a reason why everything has a start and end time, for example — events and time and calendaring and so on are a complicated human construct, when you get down to time zones and daylight saving time and atomic clocks — what I'd like to see are user interfaces for quickly creating certain kinds of events so that you don't always have to go through the mental hurdle of specifying a start and end for, say, an all-day event. Desktop calendar apps have gotten over this hurdle long ago, why can't Web apps?

Overall, my take on this Podcast was that it was the first one in a long time that made my head hurt. I don't want to develop with Drupal, I just want to use it. Publish with it. I'm willing to let others do the development and make hard choices, but don't lose what makes the software great now.

As it is, for an individual running his or her own site, Drupal is very hard to keep up with. My biggest problems are keeping up with modules and updates and migrating from one version to another. Modules I want to use may never even make it to Drupal 5.1 — I'm on 4.7 — and that's exceedingly frustrating. It seems like we could begin making some hard choices to prevent the whole system from being quicksand for module developers and especially for module users.

This has got to get simpler for noobs to get into, and there has to be an easy migration path from the deprecated to the new. It feels like more commercial vendors than open source projects realize this.

Great Podcast - pushing Imagecache forward ...

Thanks a lot of the great podcast. Incredibly informative to learn about new directions in which the drupal community is moving. This was probably my favorite yet!

I would love to see image cache replace the image module. This will never happen until the learning curve required is brought down for the average user. Perhaps it should ship with an optional extra module that would provide:

  • a cck definition for a image node type
  • a few presets already defined (thumbnail, small, preview).
  • perhaps it could also have a view defined to create image galleries of the new image nodes.

Thoughts?

One thing I'm very curious about ... Would it be possible to create image nodes from images that were already attached to other content types? ie. I have an performance type and use a multivalue image field to put promotional photos into the performances description page. But later I'd also like to use some of the same photos in a photo gallery. In order to be able to attach a larger description or associate taxonomy terms to a photo I need the Image node type to have the option of either uploading a new image or browsing through the images that are attached to other node types. How would that be done?

Another defense of profile.module

I speak as an interested party, but I'm rather happy with the way that profile.module stores data in the database. I'm the author of site_user_list.module, which is a module for moderate sites (say, < 1000 users), which provides a directory of users (searchable and sortable), displaying data from their profile. For my sites (both of them), this is a major feature that we need.

Because of the way that profile.module stores data, I can make a database view (not to be confused with a views.module view) which is always up-to-date with the data from the profile. Because I'm letting the database do the hard work, it's _much_ faster than trying to user_load every user at the site to get this information. Yes there are some weird edges (if the data stored in the profile field is serialized, well, things don't really work). But it does the job.

Last year (mid-2006), I looked into making a CCK plug-in. From what I recall of that, it would be much harder to extract the data from a CCK-type bio node as an SQL query that could be turned into a CREATE VIEW statement...

Slight level of field-level access control

I wrote a module restricted_text.module which will allow you to limit access to parts of a text field. It's an input filter, so it's somewhat limited in what it can do and where it can do it. But it can be useful...

cck, bio or nodeprofile ?

in the end, what would you recommend ?

podcast and comments seem to agree that core profile module is deprecated.

however, what solution do you recommend ?

i would have used cck in this general tendency to avoid using any content type implemented as a module.

however jeff mentioned bio module and robert mentioned nodeprofile.

It is a field in flux, and

It is a field in flux, and the Lullabots don't agree with each other :D BUT I think that fago's nodeprofile is pretty slick in its latest form: http://www.lullabot.com/audiocast/drupal_podcast_no_38_deprecated#commen...

Great podcast. Less modules

Great podcast.

Less modules that do more (and that are preferably in core) seems to me the perfect solution for the big problem of updating contributed modules.

Just now when I feel that the many very interesting contributed modules are finally upgraded to be compatible with Drupal 5, there will soon be a Drupal 6...
If there is half a year between two main versions of Drupal core, but on the other hand it takes also half a year for the contributed modules to upgrade to be compatible with the new release of Drupal core there is a problem.
If you are using a lot of contributed modules, you always have to choose for the previous Drupal version, which doesn't feel right.

Maybe there should be some kind of voting option for the modules on drupal.org so the most interesting/used ones float on top.

And hopefully contributors will still have the same spirit when they would have to cooperate on a larger module rather than having their own little baby.

Andrew Morton is working on

Andrew Morton is working on metrics for drupal projects (aka voting for modules is a metric, among other possible metrics) as part of his Google Summer of Code project. I hope to see more information for the modules on Drupal.org within the half-year.

Deprecated (or Depreciated) video

I'm rather frustrated because mediafield doesn't seem to be working for me and I would like to use the latest future-looking modules but if they don't work, then I am forced to use the less-desirable video module that is deprecated. I have a support request posted on mediafield, btw. I am not yet at the level that I can easily debug someone else's module, although I am busy reading the Pro Drupal book.

I am curious whether the flashvideo module would also be considered deprecated. I know it does have a non-standard install and requires a host that provide the FFMPEG service. It also supposedly works as a CCK field, so that might indicate that it is future-looking and therefore not deprecated or in imminent danger of being D'd.

(my homepage is not YET a drupal site. I am currently developing a drupal site that will be using video very extensively for education and social networking)

CCK recipes

Thanks for the insightful discussion.

If specialized modules like audio and profile are being replaced by CCK, this leads to greater complexity for new users. You mentioned that the advantage of the all-in-one modules is largely their simplicity (from the user perspective). It would simplify the experience for new users of CCK if easy to use "recipes" were available that automatically set up custom node types. I created a feature request for this on CCK, and I'd be interested to know what you think of the idea.

Taxonomy

Taxonomy is - of course - not deprecated!

I dont like the way the category module is doin it, I think this is a crappy trend. Okay, it has some interesting effects, but the whole concept - to handle categories as nodes - is not a beautiful way. It confuses a lot more than the word "taxonomy".

Finished modules vs. CCK/Views

Hello!

I'm a new subscriber to the podcast, so I've been downloading older episodes and listening to them. I've learned a lot -- thank you very much!

I had a strange experience of serendipity with this one: I had just spent many late night hours over a couple of weeks trying to get nodeprofile/usernode/cck working on my 4.7 based site, with the idea of improving the user profiles and creating a browsable list of site members. The night before I listened to this podcast, I gave up on the effort. I got nowhere, really. (I'm a happy customer of a Drupal hosting service, so "just go to Drupal 5" isn't a solution for me. Yet.)

I'm concerned that CCK and Views may have the unintended effect of making Drupal less friendly and powerful for users like me -- site admins who are not programmers. Why? Because it may encourage developers to stop providing more "finished" modules, assuming that "everybody" will just use CCK and Views to create a finished product.

I hope that such a Drupal dystopia, where the Drupal community drifts without any conscious intention towards a "programmers only" environment never comes to pass. If it is to be the future, I pray fervently that Robert's publisher has commissioned a new edition of his truly excellent book -- this time with meaty chapters on CCK and Views!

In all seriousness, a workshop just on CCK and Views is something I would get on a plane for.

Maybe a user profile was a bad idea for a first CCK experience -- too complex. Try something simpler, maybe...hmm...nah, gotta go to bed!

Tomorrow is another day
to take a run at CCK
And on the second day we'll use
A brand new list all done in Views...

Not convinced.

Count me as one of the newer users to Drupal who isn't convinced that deprecating other, fully usable modules with CCK is such a great idea.

To me, it strikes me as trying to build sites out of lego blocks when there are nice specific metal parts in place that have been tooled directly to fit a purpose. For a lego enthusiast, it's very easy to get into the mindset that everything should be lego. The other parts seem so rigid. But you cannot build a well-oiled machine out of lego.

I'm mostly concerned that applying CCK as the solution to everything could lead to a great deal of backend bloat. Considering how Drupal for many is used in shared hosting situations, the SQL side of things especially could get very taxing. Drupal already IMO makes an absurd amount of queries per page and it seems the trend for the future is more, not less.

My own rebuttal

On the other hand, lego is a lot of fun. ;)

Taxonomy on miltilingual

I agree with Robert but on the multilingual sites when you are need to make you shre when you are need to have the exact translation.
When you need to made breadcrumbs or "taxonomy" classification visual you need to know what term you are translate. Is not the same when you are translate words thanwhen you translate terms in a specific location on the page.
I'm say taxonomy is not deprecated because the object is diferent than CCK, but if CCK add that distinction is great. In other thougth I think is great for programmers but not for the content user, always we need to think on the people who will use what are not programmers. This last comment is because the great of DRupaL I think is what we programers do to have a simple CMS to maintaine.

Fairly Loose Definition of "Deprecated"

I think the definition of "deprecated" used in this discussion would probably be better replaced by "we think might one day be deprecated". Like the opening statement that taxonomy is deprecated (!!) - sounds more like hype, hope or future prediction than real deprecation. Deprecation was however reasonably defined at the start - I believe it is when a method is completely replaced by another, superior, method or group of methods. Therefore by definition the replacement methods can achieve everything the replaced method achieved and possibly more, leaving no reason to initiate the use of the replaced method. I didn't look in the dictionary but that is the definition I've come to understand, initially I suppose from programming with Java.

This means not much that was discussed fits the bill exactly. There was a much more sensible comment at the end of the taxonomy bit saying something like "taxonomy is about 30% of the way to being deprecated". I think that's a better perspective.

So, I think the author of the comment titled I had an adverse reaction to (and some of the other disappointed authors) can relax because these things have not yet happened. Drupal is not moving so fast and as hard to keep up with as you think because this podcast discussed the possible future more than the present. It was actually recorded 1.5 years before I am writing this and I still believe it's largely discussing the future.

Anyway, I do understand for recording purposes it sounds much more exciting if you say "this is deprecated!" than "this might be kind of deprecated one day but maybe not." :-) I definitely enjoyed the information discussed, and keeping in mind my reservation as discussed in this post, it made for very informative listening.

Fletch
Salt Websites web design, Valencia.