Deciding which modules to use for profiles

Deciding which modules to use for profiles

Posted by Michelle on Mon, 04/30/2007 - 15:15 in

[Update July 23, 2008: For those on D6, you might want to read this thread and learn about Content Profile, which is shaping up to be the successor to both bio and nodeprofile.]

So you want to pretty up your user profiles? But what module do you use? As with most things in Drupal, there's a lot of options. Of course, I recommend using Advanced Profile for the overall glue, but you still need some place to store the user profile data. This article will run through the pros and cons of each.

The contenders:

Bio

Usage:
Download, install, and enable the Bio module.
Setup at admin/user/bio
Add CCK fields as needed

Pros

  • Integrates with the user page for both viewing and editing just by checking boxes in settings
  • Uses any node type for the biography or you can extend the built in type with CCK
  • Lets you link to the bio from content without any special coding
  • Automatically enforces one bio per user
  • Let's you choose fields from your bio node to put on the registration screen
  • Designed to be lightweight and simple

Cons:

  • You can have one and only one node per user which is not as flexible as nodeprofile for complex profiles
  • Currently no way to have it auto create the profile node unless you put at least one field on the reg screen, but this may change soon.
  • Doesn't work with some views such as in buddylist so you end up needing to use usernode as well. This may be changing soon as well.

My opinion:
If you only need one node to hold the profile data per user, I reccomend using Bio. It's simple and works well with advanced profile. You can add a lot of other information to the profile panel using advprofile so bio should work for most sites' needs.

Nodeprofile

Usage:
Install nodeprofile, nodefamily, and subform element modules
Edit the content type you want to use for your profile and tell it that it's a node profile
Edit the options on the new nodeprofile tab that appears
More complex usage can be had by having multiple content types for your profile and using pageroute to hook it all together.

Pros:

  • Can have multiple content types that are node profiles which is great for complex profiles or for having different profiles for different roles.
  • Lets you put your node profiles on the user view page
  • Lets you add multiple node profiles to the registration page. This is nice because you can have one of your profile node types show and not others or put them all depending on your needs.
  • Is part of a family of modules including usernode and pageroute that give you a ton of options

Cons:

  • Unlike bio, which lets you totally take over the user page, nodeprofile just adds the profile nodes to what is there. The author considers this a pro but I, personally, don't like the looks of this, so I'm marking it as a con.
  • It's complex. In order to provide the flexibility of having 1 or more profile nodes from multiple content types the setup and code is complicated.
  • You need usernode as well to make it work with some views, which adds another node per user, and views fusion, which lets you merge the usernode view and the nodeprofile view is complex.

My opinion:
Nodeprofile is part of an awesome family of modules that let you do complex user profiles. If you need to get fancy with different profiles for different roles or having a wizard like process for the user to fill out multiple nodes in their profile, then this is what you want.

Core profile module

Usage:
Enable the module (it comes with Drupal)
Configure the profile by adding items in categories. Each category will show up on a separate tab of the edit account page.

Pros:

  • For each field, you can control the visibility with these options:
    • Hidden profile field, only accessible by administrators, modules and themes.
    • Private field, content only available to privileged users.
    • Public field, content shown on profile page but not used on member list pages.
    • Public field, content shown on profile page and on member list pages.
  • It has the ability to set a page title for a field so you can do things such as view everyone who's favourite colour is blue.
  • For each field, you can set whether it shows up on the registration page.
  • Editing and displaying of the profile is right on the account page with no extra work
  • No additional modules to install; just enable it

Cons:

  • Profiles are not nodes, which can limit flexibility, especially with views.
  • According to the Lullabot podcast, the backend is a mess

My opinion:
I only briefly played with this module but it was a lot better than I was expecting. It's simple to use and has some nice options. If you don't need profiles to be nodes, this looks like a solid option. There are a lot of handbook pages dedicated to customizing it and it can do quite a bit more advanced things than I thought. Not working with views is a big drawback but that will be eliminated in D6 with views 2.

More information:
Profile: extending user account information
Customising the user profile layout

Usernode with CCK fields

Usage:
The usernode module can be used to create user profiles by adding fields to it with CCK.

Pros:

  • No need to add extra modules. Just install usernode (and CCK if you don't have that) and add fields
  • Usernodes are automatically created / deleted with users
  • You can use views with your profiles

Cons:

  • If you decide later you'd rather have multiple pages in your profile, you're out of luck
  • No facility for adding the profile fields to the registration form
  • Adding the profile into the user page requires jumping through some hoops

My opinion:
This option is deceptive in that it looks like the best option on the surface if you only need one node profile per user. The trouble is that you are then locked into using the usernode as your profile. If you later decide you want the extra functionality that bio or nodeprofile provide, you're out of luck. The maintainer doesn't reccomend this option and neither do I, but I'm presenting it here for completeness.

Looking to the future

What about D6? There's a possibility that bio and nodeprofile may come together for a new and improved module. Interested? See Profiles as nodes in d6 for the discussion.

If you have comments or suggestions for improving this article, feel free to add a comment. Please do not use the comments for support requests.

great info

Great stuff. Any chance you can include screen shots for each example (Bio, Nodeprofile, Core profile)

thanks,

Mark

Posted by Visitor (not verified) on Thu, 01/31/2008 - 00:17
Of what?

Not sure what I would take a screen shot of... The admin pages?

Michelle

Posted by Michelle on Thu, 01/31/2008 - 00:29
Michelle, the OC is asking

Michelle, the OC is asking for how will the user page will look when u install these modules. :)

Infact I am myself looking for best solution. I want to keep /user/michelle but want to add more fields to that form. Say a person should be able to add his mobile number, contact email etc. Which module can help me here ?

Thanks

Posted by Visitor (not verified) on Fri, 02/01/2008 - 13:58
Looks the same

Changing the module that connects the user to the data won't change how the page looks. So all the screenshots would look the same.

If you want to add fields to the user page but not take it over with an entire profile, then use the core profile module without advprofile.

Michelle

Posted by Michelle on Fri, 02/01/2008 - 15:36
great review of the stand on

great review of the stand on user profile,
thanks,

Posted by Visitor (not verified) on Tue, 02/05/2008 - 11:46
just great

... i mean the documentation.
never saw such a complete, easy to read and detailed documentation on a module and the choices to be made.
the hard part getting things working still has to come. but i feel secure with such help around!
if there would be a rating for docs, you had tons of stars from me ;)

really great work!!!

Posted by bernadotte (not verified) on Wed, 02/20/2008 - 08:02
Thanks :)

It's not too hard. Just takes some time to play around and figure out how it all works.

Michelle

Posted by Michelle on Wed, 02/20/2008 - 13:58
Thanks Michelle

Decisions are always the hard part. You're an outstanding member of the Drupal community. Keep it up. By the way, what are you using for your WYSIWYG editor on the comments here, and how did you get it on the preview field only? Like the icons and the quick loading element also.

Posted by rpmute (not verified) on Sun, 04/06/2008 - 14:18
editor

Awww, thanks :)

It's BUEditor. It's not technically WYSIWYG. More of a helper for HTML. I love it because I can save typing the HTML code without the mess that WYSIWYGs leave behind. Having it on the preview only wasn't intentional. It's a side effect of having the comment form right on the node. It doesn't show on the node/* path by default. I went in and added it so it's available right away now.

Michelle

Posted by Michelle on Sun, 04/06/2008 - 14:32
Will you do an "upgraded"

Will you do an "upgraded" article on Content Profile and the core profile module + Views 2? :)

Posted by Visitor (not verified) on Tue, 04/15/2008 - 21:16
Eventually

Content Profile is Nodeprofile for D6. Core profile hasn't changed any that I'm aware of. I don't know, yet, if bio will be upgraded to D6. If it is, then I'll need to evaluate it against content profile at some point. I don't plan on using D6 until likely late summer, though.

Michelle

Posted by Michelle on Tue, 04/15/2008 - 21:56
How.. About ??

so with the topic, i want to ask some question about node profile... from you opinion, i like to choose node profile rather than BIO, coz maybe it cost a little bit complex from BIO but its flexible..... and can be customize... i like the node profile... Thanks alot for information.

Posted by Steven (not verified) on Thu, 07/10/2008 - 23:11
Post new comment
The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><blockquote>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options