Deciding which modules to use for profiles

Deciding which modules to use for profiles

Posted 04/30/2007 - 15:15 by Michelle

[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
Bio

Thanks for the writeup!

Posted by jacobcoulter on Thu, 10/02/2008 - 22:10
combination of more possibilities?

hi Michelle,
I am on Drupal 5. How about the combination profile-advanced profile with nodeprofile-usernode?

Using usernode to have a node per user, using nodeprofile to integrate the usernode with the profile as described here:http://drupal.org/node/130756

Using advanced profiel to get the user profile page into panels 2

Is this a right strategy?

One question though, using regular profile together with nodeprofile, I am not able to set the order of the "'History" information. I figured out how to "not show" this information using: http://drupal.org/project/myaccount_alter, but I very much would like to be able to set the order of the different History information.

Thanks in advance for your reply!

greetings,
Martijn

Posted by Martijn (not verified) on Thu, 10/09/2008 - 02:47
Er... huh?

Sorry, really can't follow what you're saying here.

Michelle

Posted by Michelle on Thu, 10/09/2008 - 10:39
Usernode and Bio?

Hi Michelle,

I'm currently using usernode so that I can use views to do things with profiles (plotting user locations with gmap module).

However, I'm really into the advanced profile package and see that I have to start using Bio/Nodeprofile.

Do I have to uninstall usernode? Or can I just install Bio and keep going? If I replace usernode with Bio, can I still plot user locations on a Gmap?

Hope that's not too complex! Thanks,

James

Posted by sandman79 (not verified) on Fri, 10/31/2008 - 12:33
You can use usernode and bio

You can use usernode and bio on the same site. Bio is for making the profiles. Usernode is for making users into nodes to work with views.

Michelle

Posted by Michelle on Tue, 11/04/2008 - 16:18
http://stephenondrupal.blogsp
Posted by Visitor (not verified) on Sat, 01/10/2009 - 04:06
Hi Michelle, As of early 2009

Hi Michelle,

As of early 2009 and 6.8 might any of the advice above have changed, or have there been new modules I should consider? (Yes, I have been looking at the community modules, anywhere else I should look).

For background: I'm a Drupal n00b (with a Comp Sci background) implementing a community oriented site (ie it doesn't have to be a full social networking service with friends, but tagged profiles, forums etc are good stuff).

thanks, regards
Mark

Posted by markvan on Sat, 01/10/2009 - 04:44
@#18: Yeah... Very similar,

@#18: Yeah... Very similar, including direct quotes out of my article. Some credit would have been nice, but I'm not going to make a fuss over something that happened over a year ago.

@markvan: In D6 the answer is pretty simple. If you only need a few profile fields, maybe to store a real name or other simple things, use the profile module. If you want a full featured profile like users on SN sites expect, use content profile.

Michelle

Posted by Michelle on Sat, 01/10/2009 - 08:52
Thanks! mark

Thanks!
mark

Posted by markvan on Sat, 01/10/2009 - 10:02
hello everyone , thanks, but

hello everyone ,

thanks, but Im still confuse abuot usernode how it works with core profile .... I'm using core profile usernode views favorite node and I set it show me the users who added favorite but output is empty what wrong ... how do I set usernode for core profile ?

thanks in adv

Posted by tarfficgum (not verified) on Fri, 02/27/2009 - 07:50