You are here

function _content_menu_menu_item_target_types_alter in Content Menu 8

Same name and namespace in other branches
  1. 7 content_menu.menu_admin.inc \_content_menu_menu_item_target_types_alter()

Actual implementation for content_menu_menu_item_target_types_alter().

Extend the target types for a new menu item provided by default. See content_menu.api.php for further documentation.

1 call to _content_menu_menu_item_target_types_alter()
content_menu_menu_item_target_types_alter in ./content_menu.module
Implements hook_menu_item_target_types_alter().

File

./content_menu.menu_admin.inc, line 708

Code

function _content_menu_menu_item_target_types_alter(&$target_types, &$context) {
  $target_types['url'] = array(
    'label' => t('URL'),
    'handler' => 'content_menu_menu_form_handler_url',
    'clean_menu_save_message' => TRUE,
  );
  $target_types['dummy'] = array(
    'label' => t('Placeholder'),
    'handler' => 'content_menu_menu_form_handler_dummy',
    'clean_menu_save_message' => FALSE,
  );
  foreach (node_type_get_types() as $node_type) {
    if (user_access('create ' . $node_type->type . ' content') || user_access('administer nodes')) {
      $node_menu_options = variable_get('menu_options_' . $node_type->type, array(
        'main-menu' => 'main-menu',
      ));
      if (in_array($context['menu_name'], $node_menu_options)) {
        $target_types['node_' . $node_type->type] = array(
          'label' => t('New @type', array(
            '@type' => t($node_type->name),
          )),
          'handler' => 'content_menu_menu_form_handler_node',
          'arguments' => array(
            'type' => $node_type->type,
          ),
          'clean_menu_save_message' => TRUE,
        );
      }
    }
  }
  $target_types['existing'] = array(
    'label' => t('Existing content'),
    'handler' => 'content_menu_menu_form_handler_menu_position_existing',
    'clean_menu_save_message' => TRUE,
  );
  if (module_exists('views')) {
    $target_types['existing_view'] = array(
      'label' => t('Existing view'),
      'handler' => 'content_menu_menu_form_handler_existing_view',
      'clean_menu_save_message' => TRUE,
    );
  }
  if (module_exists('menu_position') && user_access('administer menu positions')) {
    $target_types['menu_position_rule'] = array(
      'label' => t('Menu position rule'),
      'handler' => 'content_menu_menu_form_handler_menu_position_rule',
      'clean_menu_save_message' => TRUE,
    );
  }
}