FAPI fonksiyonları dışında $ form_state nasıl?

1 Cevap php

Ben özel bir modül yazıyorum ve başka bir sigara-form api fonksiyonu mevcut formun $ form_state kullanmak istiyorum -> custom_facet_view_build ().

herhangi bir yardım takdir :)

<?php
/**
 * Implementation of hook_perm().
 */
function custom_facet_perm() {
  return array(
    'access foo content',
    'access baz content',
  );
}

/**
 * Implementation of hook_menu().
 */
function custom_facet_menu() {
  $items['faceted-search'] = array(
    'title' => 'Faceted Search',
    'page callback'    => 'drupal_get_form',
    'access arguments' => array(),
  );

  $items['facet-search-test'] = array(
    'page callback'    => 'drupal_get_form',
    'page arguments'   => array('custom_facet_form'),
    'access callback'  => TRUE,
    'type'             => MENU_CALLBACK,
  );

  return $items;
}

/**
 * Form definition; ahah_helper_demo form.
 */
function custom_facet_form($form_state) {
  $form = array();

  ahah_helper_register($form, $form_state);

  if (isset($form_state['storage']['categories'])) {
    $categories_default_value = $form_state['storage']['categories']["#value"];
  }

  $form['facet_search_form'] = array(
    '#type'   => 'fieldset',
    '#title'  => t('Faceted Search'),
    '#prefix' => '<div id="billing-info-wrapper">', // This is our wrapper div.
    '#suffix' => '</div>',
    '#tree'   => TRUE, // Don't forget to set #tree!
  );

  $form['facet_search_form']['categories'] = array(
    '#type' => 'select',
    '#title' => t('Category'),
    '#options' => _custom_facet_taxonomy_query(1),
    '#multiple' => TRUE,
    '#default_value' => $categories_default_value,
  );

  $form['save'] = array(
    '#type'  => 'submit',
    '#value' => t('Save'),
  );

  return $form;
}

/**
 * Validate callback for the form.
 */
function custom_facet_form_validate($form, &$form_state) {

}

/**
 * Submit callback for the form.
 */
function custom_facet_form_submit($form, &$form_state) {
  drupal_set_message('nothing done');
  $form_state['storage']['categories'] = $form['facet_search_form']['categories'];
  // dpm($form_state); // There's a value returned in form_state['storage] within this function
}

/**
 * Implementation of hook_views_api().
 */
function custom_facet_views_api() {
  return array(
    'api' => 2,
  );
}

function custom_facet_view_build(&$view) {
    dpm($form_state); // form_state['storage] remains NULL even though there's a value on previous submission
}

1 Cevap

PHP fonksiyonları diğer işlevleri olduğunu ne değişkenler farkında değildir.

Işlevleri aynı istek döngüsünde denir, bir genel değişken $ form_state değişkeni saklayabilirsiniz. Başka db değişkeni saklamak gerekir. Bu vatansız sistemi HTTP, bir ağrıdır.