Hello Drupal experts,

I need your advice on setting up an "experts" site. We'll have profiles of experts and also articles written by these experts. The profiles part is where I need your help.

The profile page of each expert/author will be a personal bio (education, companies worked for, etc). The problem is, we also want expertise-specific data for each profile/expert type -- eg. a webmaster should be able to select which web technology (AJAX, flash) they've used, whereas a systems administrator would choose the operating systems (Solaris, Linux, Windows) they're familiar with. It's the expertise-specific data that's challenging.

I've thought about this problem a bit and came up with some possible solutions. None of them are completely do-able out of the box... thus the need for this post! Please look over the following options and let me know if they're totally insane or reasonably doable. Also, if there's a much easier fourth option I'm missing, please let me know! :)

Thanks in advance.

===========

Option 1 -- multiple profiles types

During registration, I would ask "are you a webmaster, network admin or whatever?" and provide a different registration form based on their answer. Consequently, there would be several different profile "types".

It doesn't seem like this is possible with the current drupal technology or maybe I just haven't found it.

The disadvantages are:

a) not easily done (like via a module install),

b) limits profiles to only one expertise.

The advantages are:

a) usability (eg. reader reads an article on search engine optimization, clicks on the byline link, and sees on the profile page that the author has her own SEO company -- one click to read author's background),

b) tightly couples the bio with the user/author (imagine a page that lists authors and one of their profile fields like "college attended").

Option 2 -- flexinode profiles

One alternative would be to use flexinodes for the experts' profile (rather than profile.module) -- eg. flexinode-1 for webmasters, flexinode-2 for CEOs.

The problem now becomes: How would I associate a user with their respective flexinode profile? (eg. click on the byline and it sends you to their flexinode profile, or having a page that shows author and the college they attended.) And how would I limit each user to one (and only one) flexinode profile?

The advantage here (over option 1) is that each user can be an expert in multiple fields... so they could fill out a webmaster profile + a netadmin profile. But then which flexinode profile should a byline link go to? Or would I have links from the user profile page to the flexinode profiles?

Option 3 -- ingenius theming of profile categories

I would create different categories (the profile fields categories, not taxonomy categories) for each expert type. So, on the user's profile page, they would have a netadmin tab and/or a CEO tab and/or a webmaster tab.

We would have all the advantages of option 2 (each user can have multiple expertise) without any of the disadvantages (article byline links to profile page with each expertise neatly organized by tabs).

The challenge here is to make the registration process sane. With 10+ fields per expertise, and perhaps over a dozen expert types, it would be a nasty registration form with 100+ fields!

Possible implementation:

1) use javascript to selectively show/hide profile categories (ie. click here to expand the webmaster/netadmin/CEO form if you're a webmaster/netadmin/CEO).

2) break up the registration process into multiple pages. For example, the first registration page would ask for a username, email address and their expertise (multi-select form?). Then they would click NEXT to bring up the next questionnaire; continuing to click next until we covered each selected expertise. How would I get started on configuring a multi-page registration process?

=============

Option 3 (theme + profile categories) seems like the best solution of the three here. If you guys have any advice/criticism/solution or getting started pointers, I would love to hear it.

Thanks in advance,
smokey

PS: I'm pretty new to drupal, but am not a complete tard (I hope). Would prefer to not have to hack away at modules, but I'm not adverse to coding if necessary. Besides, I'm a sysadmin by trade, not a programmer.

I've been searching for a suitable CMS so I could migrate my nightmare-to-maintain/upgrade/restyle home rolled php/mysql site. Flexinode's power (we have multiple content types and I had to write custom php scripts to handle each one -- ugh!) and the bare bones default installation (liked the maintainers' thinking) sold me on drupal. Now it's migration time....

Comments

d2002’s picture

I have similar questions. The limitations on profiles is baffling, as Drupal is suppose to be a community-oriented website, it should be able to handle different types of users.

smokey-1’s picture

after more poking around, i found a few forum posts that might help. i guess it really depends on what kind of "custom" profiles you need.

this post from dublin drupaller points us to jordan williams' hack of profile.module that allows custom profile fields based on role. this seems to do more-or-less what i want (option 1 above)... however, i'm afraid of "in the wild" code modifications that only provides a patch against some version of the original module.

another way to go is to use the user related content module. we could create flexinodes (option 2 above) of expert profiles, then relate that flexinode to the appropriate user (thinkg: "claim this profile").

i'll let you know how it goes....

jochenh’s picture

I also am running into exactly the same issues with profiles. it is pretty stunning that drupal is so inflexible when it comes to having different user profiles. I am going to try the flexinode/user-content route and see what happens...

jochenh’s picture

actually just got done messing around with this. since my site will need pretty good security this will not work for me. my goal is to have a certain group of users that need a different profile be able to create a specific posting with content that no other user, even users within the same group can't see...
so the whole flexinode/user-content route didn't really work

travischristopher’s picture

try this node for the latest developments in profile usage. http://drupal.org/node/51057

mbria’s picture

Drupal Centric’s picture