[drupal-devel] Storing arbitrary data for a user

Moshe Weitzman weitzman at tejasa.com
Sat Feb 19 23:55:51 UTC 2005


Dan - all you need to do is set $user with new properties during 
hook_user('form') or hook_user('validate'). They will be saved 
automatically by user.module. So if you want to set a gender, just do 
this

global $user;
$user->gender = 'female';

-moshe

On Feb 19, 2005, at 3:58 AM, Dan Robinson wrote:

>
>
> Steven Wittens wrote:
>
>> Mark wrote:
>>
>>> Dan Robinson wrote:
>>>
>>>> I have a small amount of persistant data I would like to associate 
>>>> with a user and would like to avoid creating a new table to store 
>>>> it in.  I have come across variable_get and variable_set - which is 
>>>> great - but probably not appropriate for what I'm doing.  I've also 
>>>> seen user->categories, but can't find any doco or info on what this 
>>>> is.
>>>>
>>>> Thanks,
>>>>
>>>> Dan
>>>
>>>
>>>
>>> Try the $user->data array.  You should be able to insert your user 
>>> data there.
>>>
>>> To see what's currently stored there (as serialized data):
>>>  select uid, name, data from users;
>>
>>
>> Custom $user fields will already be saved without modifying ->data 
>> directly. In fact, custom fields that do not go into data need to be 
>> unset explicitly in hook_user('save') to prevent this.
>
> I'm kind of getting this, but not quite.  How do I declare a customer 
> $user field?  I'm already using the hook_user stuff so I know "when" 
> to do it, but I still don't know where to put this data.
>
> Thanks,
>
> Dan
>
>>
>>




More information about the drupal-devel mailing list