function menu_fields_add_fields_entity_fields in Menu Item Fields 7
Add the menu fields entity to the given form.
1 call to menu_fields_add_fields_entity_fields()
- menu_fields_form_menu_edit_item_alter in ./
menu_fields.module - Implements hook_form_ID_alter().
File
- ./
menu_fields.module, line 599 - Main file contain hooks/functions.
Code
function menu_fields_add_fields_entity_fields($menu_name, $mlid, &$form, &$form_state) {
// Create bundle name for the given menu name.
$bundle_name = menu_fields_create_machine_name($menu_name);
// Check is this field selected for menu fields.
$selected_menus = menu_fields_enabled_menus();
// Check is this menu selected for fieldable.
if (in_array($menu_name, $selected_menus)) {
$form['#submit'][] = 'menu_fields_form_menu_edit_fields_submit';
// Load entity id for this menu link.
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'menu_fields')
->propertyCondition('mlid', $mlid)
->propertyCondition('menu_name', $bundle_name);
$result = $query
->execute();
// Is no entity found, create a new one.
if (empty($result)) {
$entity = entity_create('menu_fields', array(
'menu_name' => $bundle_name,
'mlid' => $mlid,
));
}
else {
$entity_nid = array_keys($result['menu_fields']);
$entity = entity_load('menu_fields', $entity_nid);
$entity = reset($entity);
}
// Set the correct parents for the attached field values,
// because they are added to a fieldset.
$form['menu_fields'] = array(
'#type' => 'fieldset',
'#title' => t('Menu Fields'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#tree' => TRUE,
);
// Enable/disable fields for the menu item.
$form['menu_fields']['enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enable fields for this menu link'),
'#default_value' => !empty($entity->id) ? TRUE : FALSE,
);
// Add menu fields.
$form['menu_fields']['fields'] = array(
'#type' => 'container',
'#states' => array(
'visible' => array(
':input[name="menu_fields[enabled]"]' => array(
'checked' => TRUE,
),
),
),
);
// Get the language code.
$langcode = NULL;
if (function_exists('entity_language')) {
$langcode = entity_language('menu_fields', $entity);
}
// Add entity fields.
field_attach_form('menu_fields', $entity, $form['menu_fields']['fields'], $form_state, $langcode);
// Add entity to form.
$form['menu_fields']['entity'] = array(
'#type' => 'value',
'#value' => $entity,
);
}
}