[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