Categories display as secondary tasks under the Edit tab. If you want a
primary tab on top then yeah - you need to do a new menu hook like
/user/%user/demographics with the type set to MENU_LOCAL_TASK
Jamie Holly
http://www.intoxination.net
http://www.hollyit.net
On 3/2/2010 3:10 PM, Steve Edwards wrote:
I took over a site that has custom user data stored in a separate table, and I
would like to display those fields in a separate tab in the user profile. I
figured I could just write a page and form function, but I'd like to integrate
it with user data. I have the following hook_user implementation:
function hsi_user($op,&$edit,&$account, $category = NULL) {
switch ($op) {
case 'categories':
$data[] = array(
'name' => 'hsi_demo',
'title' => 'Demographics',
'weight' => 3,
'access callback' => TRUE,
);
return $data;
case 'form':
$data = db_fetch_object(db_query("SELECT bday, gender, nation, religion, heard
FROM hsi_demo WHERE uid = %d", $account->uid));
$countries = _hsi_countries();
$fields['hsi_demo']['bday'] = array(
'#type' => 'date',
'#title' => 'Birth Date',
'#default_value' => isset($edit[$field->name]) ?
$edit[$field->name] : '',
'#required' => TRUE,
);
$fields['hsi_demo']['gender'] = array(
'#type' => 'select',
'#title' => 'Gender',
'#options' => array('m' => 'Male', 'f' => 'Female'),
'#default_value' => $data->gender,
);
$fields['hsi_demo']['nation'] = array(
'#type' => 'select',
'#title' => 'Country',
'#options' => $countries,
'#default_value' => $data->nation,
);
$fields['hsi_demo']['denomination'] = array(
'#type' => 'select',
'#title' => 'Denomination',
'#options' => $countries,
'#default_value' => $data->denomination,
'#options' => $denominations,
);
return $fields;
}
}
The problem is, I don't get my Demographics tab displayed. Do I also need a
hook_menu entry for this path (i.e. user/%user/edit/hsi_demo)? What else am I
missing?
Thanks.
Steve