You are here

function _node_breadcrumb_rule_form in Node breadcrumb 6

1 call to _node_breadcrumb_rule_form()
node_breadcrumb_admin_settings in ./node_breadcrumb.module

File

./node_breadcrumb.module, line 71

Code

function _node_breadcrumb_rule_form($fieldset_title, $node_type, $tids, $condition, $mid, $weight, $weight_delta, $submit) {
  $form = array(
    '#type' => 'fieldset',
    '#title' => $fieldset_title,
  );

  // node type
  $types = node_get_types();
  $types_select = array(
    '#type' => 'select',
    '#title' => t('Content type'),
    '#options' => array(
      '' => "<" . t('none') . ">",
    ),
  );
  foreach ($types as $type) {
    $types_select['#options'][$type->type] = $type->name;
  }
  if ($type) {
    $types_select['#default_value'] = $node_type;
  }
  $form['node_type'] = $types_select;

  // term
  if (module_exists('taxonomy')) {
    $form['tid'] = array(
      '#type' => 'fieldset',
      '#title' => t('Categories'),
      '#attributes' => array(
        'class' => 'node_breadcrumb_categories',
      ),
    );
    $vocabularies = taxonomy_get_vocabularies();
    $none_option = "<" . t('none') . ">";
    $vid2tid = array();
    if (is_array($tids)) {
      foreach ($tids as $tid) {
        if ($tid > 0) {
          $term = taxonomy_get_term($tid);
          $vid2tid[$term->vid] = $tid;
        }
        elseif ($tid < 0) {
          $vid2tid[-$tid] = $tid;
        }
      }
    }
    foreach ($vocabularies as $vocabulary) {
      $taxonomy_form = taxonomy_form($vocabulary->vid);
      unset($taxonomy_form['#options']['']);
      $taxonomy_form['#multiple'] = FALSE;
      $taxonomy_form['#default_value'] = $vid2tid[$vocabulary->vid] ? $vid2tid[$vocabulary->vid] : 0;
      unset($taxonomy_form['#size']);
      unset($all_option);
      $all_option->option = array(
        -$vocabulary->vid => "<" . t("any") . ">",
      );
      array_unshift($taxonomy_form['#options'], $all_option);
      array_unshift($taxonomy_form['#options'], $none_option);
      $form['tid']["vid_{$vocabulary->vid}"] = $taxonomy_form;
    }
  }

  // php condition
  $form['condition'] = array(
    '#type' => 'textarea',
    '#rows' => 1,
    '#title' => t('Condition'),
    '#description' => t('Additional PHP expression, e. g., $node->type == \'story\' || $node->type == \'news\''),
    '#default_value' => $condition,
  );

  // menu item
  $menu_item = menu_link_load($mid);
  $form['mid'] = array(
    '#type' => 'select',
    '#title' => t('Menu item'),
    '#required' => true,
    '#options' => menu_parent_options(menu_get_menus(), array(
      'mlid' => 0,
    )),
    '#default_value' => "{$menu_item['menu_name']}:{$mid}",
  );

  // weight
  $form['weight'] = array(
    '#type' => 'weight',
    '#title' => t('Weight'),
    '#default_value' => $weight,
    '#required' => true,
    '#delta' => $weight_delta,
  );

  // submit
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => $submit,
  );
  return $form;
}