function menu_reference_field_widget_form in Menu Reference 7
Implements hook_field_widget_form().
File
- ./
menu_reference.module, line 155 - Primarily Drupal hooks and global API functions for module Menu Reference.
Code
function menu_reference_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
$value = isset($items[$delta]['mlid']) ? $items[$delta]['mlid'] : '';
$widget = $element;
$widget['#delta'] = $delta;
switch ($instance['widget']['type']) {
case 'menu_reference_select':
$options = array();
$menu_list = menu_get_menus(TRUE);
$allowed_menus = array_filter($field['settings']['allowed_menus']);
$language_visibility = !empty($field['settings']['language_visibility']) ? $field['settings']['language_visibility'] : MENU_REFERENCE_LANG_ALL;
$languages = array();
if ($language_visibility == MENU_REFERENCE_LANG_NODE || $language_visibility == MENU_REFERENCE_LANG_NODE_UND && isset($form['#node'])) {
$node = $form['#node'];
$languages[] = $node->language;
}
if ($language_visibility == MENU_REFERENCE_LANG_NODE_UND && !in_array(LANGUAGE_NONE, $languages)) {
$languages[] = LANGUAGE_NONE;
}
foreach ($allowed_menus as $menu) {
$options[$menu_list[$menu]] = menu_reference_get_menu_hierarchy($menu, $languages);
}
$widget += array(
'#type' => 'select',
'#default_value' => $value,
'#options' => array(
'' => t('- Select -'),
) + $options,
);
break;
}
$element['mlid'] = $widget;
return $element;
}