You are here

function menu_fields_entity_info in Menu Item Fields 7

Implements hook_entity_info().

File

./menu_fields.module, line 725
Main file contain hooks/functions.

Code

function menu_fields_entity_info() {

  // Add a bundle for every activated menu in the fields settings.
  $menus = menu_get_menus();
  $enabled_menus = menu_fields_enabled_menus();
  $bundles = array();
  foreach ($menus as $key => $value) {

    // Always use underscores for menu key hyphens,
    // because hyphens are not allowed for bundle names.
    $machine_name = menu_fields_create_machine_name($key);
    $bundles[$machine_name] = array(
      'label' => $value,
    );
    if (in_array($key, $enabled_menus)) {
      $bundles[$machine_name]['admin'] = array(
        'path' => 'admin/structure/menu/manage/%',
        'real path' => 'admin/structure/menu/manage/' . str_replace('_', '-', $machine_name),
        'bundle argument' => 4,
        'access callback' => 'menu_fields_admin_access',
        'access arguments' => array(
          4,
        ),
      );
    }
  }
  $info['menu_fields'] = array(
    'label' => t('Menu Fields'),
    'controller class' => 'EntityAPIController',
    'base table' => 'menu_fields',
    'fieldable' => TRUE,
    'entity keys' => array(
      'id' => 'id',
      'bundle' => 'menu_name',
    ),
    'bundle keys' => array(
      'bundle' => 'menu_name',
    ),
    'bundles' => $bundles,
    'entity class' => 'Entity',
    'module' => 'menu_fields',
    'view modes' => array(
      'full' => array(
        'label' => t('Full'),
        'default' => FALSE,
      ),
      'block' => array(
        'label' => t('Block'),
        'default' => FALSE,
      ),
    ),
  );
  return $info;
}