Drupal 6.x Profiles and Multi-value Fields?

I need to allow users of a Drupal 6.x site to edit their own profiles in a way that makes profiles actually useful: to allow them to edit rows of values where each column can be an input of some sort, essentially creating field-rows of data which can then be mined later on through reports, etc. I have no clue how to do this because I need something like the CCK functionality you get when you have an input that can support unlimited values.

Generic Visual Example:
[TABLE=“class: grid, width: 500”]
[TR]
[TD]Product Number
[/TD]
[TD]Product Type
[/TD]
[TD]Number Available
[/TD]
[TD]Year Acquired
[/TD]
[TD]Reason
[/TD]
[/TR]
[TR]
[TD]00001
[/TD]
[TD]Monitor
[/TD]
[TD]2
[/TD]
[TD]2001
[/TD]
[TD]Development and Testing
[/TD]
[/TR]
[TR]
[TD]00002
[/TD]
[TD]Keyboard
[/TD]
[TD]1
[/TD]
[TD]2000
[/TD]
[TD]Basic Use
[/TD]
[/TR]
[TR]
[TD]00003
[/TD]
[TD]Laser Mouse
[/TD]
[TD]1
[/TD]
[TD]2000
[/TD]
[TD]Basic Use
[/TD]
[/TR]
[TR]
[TD]00004
[/TD]
[TD]Extra Ram
[/TD]
[TD]2
[/TD]
[TD]2002
[/TD]
[TD]Testing
[/TD]
[/TR]
[TR]
[TD]00005
[/TD]
[TD]Kim Kardashian Mousepad
[/TD]
[TD]1
[/TD]
[TD]2011
[/TD]
[TD]To Stab, Relieve Stress, and Eliminate those lonely nights we all have from time-to-time. ;.)
[/TD]
[/TR]
[/TABLE]

Each column in this example might have the following input types:
[TABLE=“class: grid, width: 500”]
[TR]
[TD]Numeric
[/TD]
[TD]Single Line Text
[/TD]
[TD]Numeric
[/TD]
[TD]Date
[/TD]
[TD]Multi-line Text
[/TD]
[/TR]
[/TABLE]

But when you go to edit your profile to edit a group, you could do so by either editing the actual fields or else use the “Add Another Item” to add a value to the group of values already present… (Like with CCK fields that use the “unlimited values” setting.)

Does anything like this exist for Drupal 6.x?

Search yielded this: http://groups.drupal.org/node/12350

Looks like the consensus is to create a node with a user reference so that fields can be attached using cck. Pretty damn dirty if you ask me. Otherwise though you would be writing a lot of custom code to alter the profile form not to mention managing db table schema for data.

Thanks for the info, oddz. I’ll keep looking… I tried the “Content Profile” module and I thought that might work, but really all it does is just create a new content type. I’m actually surprised this hasn’t been implemented… Seems like something someone would’ve thought of (unless I’m just blind or can’t Google worth a damn).

What are the actual fields you want to add about? I’m having a hard time trying to understand how a grid is better than a series of fields. In D6 (in Core-Optional) you have the Profile module that lets you add and configure fields and field groups. I’m sure you’re familiar with it; it lets you add CCK-like fields to your profiles but more importantly it lets you add field groups that you can use to organize your fields with. I’m not sure it that’s going to be useful though…

I think, if you’re in serious need of the ability to gather and use data you might want to start looking at the realm of CRM’s to make this happen. There are a few for Drupal. Drupal 7 is better equipped than Drupal 6 but civiCRM is a heavyweight in this sort of thing and you can create custom profile fields and expose them to the user editing panel. On the reporting side, it has very powerful data crunching and reporting tools and with some configuration, views can be used to pull and display CRM contact data. It’s a big undertaking though so make sure you have the time and budget (if it’s a client) to take it on.

The fields I need are represent items which our team needs to inventory, which can be of variable amounts. Do you understand what I mean by this? Whether it’s a grid or not is beside the point: I need a field capability that can allow users to add unlimited values in fields. That’s really all this is about… Storing unlimited values in profile fields. Let me know if this still doesn’t make sense.

(I think I’m going to be forced to manually develop this because there just doesn’t seem to be anything like this already created for Drupal 6.)

Ok, so is this sort of a way to assign tasks to individuals? It’s a bit like project/team management from the sounds of things?

Have you looked at Open Atrium or Drupal Commons for ideas? They are much more complex that what you want but they may have elements of what you have in mind…

I think you’re right though and that is that you’ll need to create this yourself. I can’t really think of anything offhand that you can leverage to do this. There are plenty of modules that add/relate data to user profiles but they’re all pretty complex so digging in their internals for inspiration will be frustrating.

I’m thinking that maybe some things to look at for inspiration might be Organic Groups, [URL=“http://drupal.org/project/to_do”]To Do List, [URL=“http://drupal.org/project/list”]List, Maybe [URL=“http://drupal.org/project/nodequeue”]Nodequeue ([URL=“http://drupal.org/project/smartqueue_users”]Smart Queue Per User).

This might be a tough one…