You are here

public function PowerMenuNodeHandler::menuFormAlter in Power Menu 7.2

Overrides PowerMenuHandlerInterface::menuFormAlter

See also

PowerMenuHandlerInterface::menuFormAlter()

File

plugins/menu_handlers/PowerMenuNodeHandler.class.php, line 55

Class

PowerMenuNodeHandler
Implementation of the interface PowerMenuHandlerInterface.

Code

public function menuFormAlter(&$menu_item_form, &$form_state) {
  $form = array();
  $bundles = power_menu_get_entities_and_bundles();
  $bundles_used = variable_get('power_menu_node_bundles', array());
  $bundles_selected = array();
  foreach ($bundles as $key => $value) {

    // Is this bundel used by a menu item. When not leave it as an option.
    if (!empty($bundles_used[$key])) {

      // Is it used from this menu item. Leave it as selected option
      if ($bundles_used[$key]['mlid'] == $menu_item_form['mlid']['#value']) {
        $bundles_selected[] = $key;
      }
      else {
        unset($bundles[$key]);
      }
    }
  }
  $form['power_menu_node_bundles'] = array(
    '#type' => 'select',
    '#multiple' => TRUE,
    '#options' => $bundles,
    '#default_value' => $bundles_selected,
    '#description' => t('Select the entity/bundle on which this menu item should be marked as active. The entity/bundels that are not available for selection are already being used for an other menu item.'),
  );
  return $form;
}