You are here

function megamenu_settings_form in Megamenu 7

Same name and namespace in other branches
  1. 6.2 megamenu.admin.inc \megamenu_settings_form()
  2. 6 megamenu.admin.inc \megamenu_settings_form()

Form constructor for single megamenu configuration.

See also

megamenu_settings_form_validate()

megamenu_settings_form_submit()

1 string reference to 'megamenu_settings_form'
megamenu_menu in ./megamenu.module
Implements hook_menu().

File

./megamenu.admin.inc, line 85

Code

function megamenu_settings_form($form, &$form_state, $menu_name = '') {
  drupal_set_title(t('Megamenu settings for: @menu-name', array(
    '@menu-name' => $menu_name,
  )));
  $form = array();
  $form['orientations'] = array(
    '#title' => t('Orientations'),
    '#type' => 'fieldset',
    '#description' => t('Set the orientation of various menu elements.'),
  );
  $form['orientations']['menu_orientation'] = array(
    '#title' => t('Menu Orientation'),
    '#type' => 'radios',
    '#options' => array(
      'horizontal' => t('Horizontal'),
      'vertical' => t('Vertical'),
    ),
    '#default_value' => _megamenu_get_menu_orientation_by_name($menu_name),
    '#description' => t('Select whether the mega menu will extend horizontally and drop down, or if it will extend vertically and fly out.'),
  );
  $form['orientations']['slot_orientation'] = array(
    '#title' => t('Slot Orientation'),
    '#type' => 'radios',
    '#options' => array(
      'columnar' => t('Columnar'),
      'stacking' => t('Stacking'),
    ),
    '#default_value' => _megamenu_get_slot_orientation_by_name($menu_name),
    '#description' => t('Select whether slots will sit next to each other (columnar) or stack on top of each other (stacking).'),
  );
  $form['style'] = array(
    '#title' => 'Style Settings',
    '#type' => 'fieldset',
    '#description' => t('Select a skin for this menu'),
  );

  // @todo Create a function to return a list of default skins.
  $form['style']['skin_options'] = array(
    '#title' => t('Skin Type'),
    '#type' => 'radios',
    '#options' => array(
      'supplied_skin' => t('Use a skin supplied with this module'),
      'custom_skin' => t('Use your own custom skin'),
    ),
    '#default_value' => _megamenu_is_skin_default($menu_name) ? 'supplied_skin' : 'custom_skin',
    '#description' => t('Select if you wish to use a pre-defined skin'),
  );
  $form['style']['default_skin'] = array(
    '#title' => t('Supplied Skin Name'),
    '#type' => 'select',
    '#options' => array(
      'friendly' => t('Friendly'),
      'minimal' => t('Minimal'),
    ),
    '#default_value' => _megamenu_is_skin_default($menu_name) ? _megamenu_get_skin_by_name($menu_name) : 'minimal',
    '#description' => t('Select one of the supplied skins to use'),
  );

  // @todo Make this path a variable somehow so it can be called more easily.
  // @todo Make the "file exists/does not" text stand out.

  /*
  $form['style']['custom_css'] = array(
    '#type' => 'item',
    '#title' => t('Custom CSS File'),
    '#value' => '<p>'. t('You can add your own custom CSS for extending or creating skins at %csspath', array('%csspath'=> file_directory_path() .'/megamenu/megamenu-custom.css')) .'</p><p>'. (file_exists(file_directory_path() .'/megamenu/megamenu-custom.css') ? t('Custom CSS file exists') : t('Custom CSS file does not exist')),
  );
  */
  $form['style']['custom_skin'] = array(
    '#title' => t('Custom Skin Name'),
    '#type' => 'textfield',
    '#default_value' => _megamenu_is_skin_default($menu_name) ? '' : _megamenu_get_skin_by_name($menu_name),
    '#description' => t('Type in the name of your custom skin (This will become a class value applied to the menu: megamenu-skin-[skin name]).'),
  );
  $form['save_configuration'] = array(
    '#type' => 'submit',
    '#value' => t('Save Configuration'),
  );

  // Value placeholder.
  $form['menu_name'] = array(
    '#type' => 'value',
    '#value' => $menu_name,
  );
  return $form;
}