[drupal-devel] Storing arbitrary data for a user
Moshe Weitzman
weitzman at tejasa.com
Sun Feb 20 11:51:18 UTC 2005
user_save() is a bit strange. Just keep playing with it and you'll get
it. you have the right direction. You could also grep the Contrib
repository for examples.
note that your example menu item should go into the !$may_cache section
since it has a userID in it. If you don't do so, you might confuse an
admin working on the admin/menu page.
On Feb 20, 2005, at 1:13 AM, Dan Robinson wrote:
> ok - I'm almost there....
>
> Everything is working - except i'm working in a callback specified in
> <mymodule>_menu -
>
> function forummail_menu($may_cache) {
> global $user;
>
> $items = array();
>
> if ($may_cache) {
> $items[] = array('path' => "user/$user->uid/forummail", 'title'
> => t('my forum mail settings'),'callback' => forummail_page, 'type' =>
> MENU_LOCAL_TASK);
> }
>
> return $items;
> }
>
>
> this sets up a "tab" in the user/2/forummail. So now I have a form and
> everything is working - however I'm not hooking 'form' or 'validate' so
> it is not saving the user. I've tried to manually call user_save - but
> it doesn't like that very much. Here is the code I'm trying to
> execute -
>
> function forummail_page() {
> ..snip..
>
> if ($edit['saved']) { // we're back from a save form event
> $user->forummail_mode = $edit['mode'];
> // save off the data here!!
> }
>
> ..snip..
>
> }
>
> Thanks,
>
> Dan
>
>> 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';
>>
>>
>
More information about the drupal-devel
mailing list