Add custom Tab to user profile page Drupal 7

drupal, drupal-7

Solution

You can keep the `node/add/photos` menu item as is. You need to keep the URL pattern formatting like it is for the `user/%user/addphoto` in order to make the tab appear on the user profile page. However, try using `drupal_goto()` in your new menu item to redirect to the `node/add/photos` page.

Try this:

$items['user/%user/addphoto'] = array(
  'title' => t('Add Photos'),
  'page callback' => 'drupal_goto',
  'page arguments' => array('node/add/photos'),
  'access callback' => 'user_is_logged_in',
  'type' => MENU_LOCAL_TASK,
);

References:

- `drupal_goto()`

- `user_is_logged_in()`

- Drupal 7 menu system

Problem

I am trying to add two new tabs to the user account page at mysite.com/user on my Drupal 7 site. I want to add links to Add Photos node/add/photos and Add Videos node/add/videos but the following code for my module user_menu_add is not working for me: ``` function user_menu_add_menu() { $items['node/add/photos'] = array( 'title' => t('Add Photos'), 'page callback' => 'user_menu_add', 'page arguments' => array(1), 'access callback' => TRUE, 'access arguments' => array('access user menu add'), 'type' => MENU_LOCAL_TASK, ); return $items; } ``` an example i have referenced is here which works but only for links beneath the "/user" sub directory ``` function my_module_menu() { $items['user/%user/funky'] = array( 'title' => t('Funky Button'), 'page callback' => 'my_module_funky', 'page arguments' => array(1), 'access callback' => TRUE, 'access arguments' => array('access funky button'), 'type' => MENU_LOCAL_TASK, ); return $items; } ```

Original source