it-swarm-es.com

¿Cómo resuelvo el error "El argumento 1 pasado a drupal_attributes () debe ser una matriz" en mi system_settings_form ()?

Por lo general, no publico preguntas específicas como esta, y pido ayuda sobre un tema específico, pero estoy al final de mi tiempo perdiendo el tiempo ...

Tengo un módulo D7 simple como se ve a continuación, cuando cargo la página (el elemento del menú de quién está exactamente donde quiero que esté) aparece el siguiente error:

Error fatal recuperable: el argumento 1 pasado a drupal_attributes () debe ser una matriz, nula, llamada en /path/to/site/public_html/includes/form.inc en la línea 3106 y definida en drupal_attributes () (línea 2257 de/ruta /to/site/public_html/includes/common.inc).

como puede ver, la declaración del formulario en sí es muy simple, y todo funciona muy bien hasta que se carga la página.

tenga en cuenta que yo have miró: 3106 en form.inc y el elemento $ se rellena pero los atributos no existen: ¿qué me estoy perdiendo?

<?php
/**
 * Implements hook_menu().
 */
function attach_images_menu() {

    $items['admin/structure/types/manage/%/attach/images'] = array(
        'title' => 'Attach: Images',
        'page callback' => 'attach_images_settings',
        'access arguments' => array('access administration pages'),
        'weight' => '10',
        'type' => MENU_LOCAL_TASK,
    );

    return $items;

}

function attach_images_settings() {
    //$content_type = arg(4);
    $form['attach_images_amount_'] = array(
         '#type'   => 'textfield',
         '#title'  => 'Amount',
         '#default_value' => variable_get('attach_images_amount_',1),
    );
  return system_settings_form($form);
}

?>
6
electblake
$items['admin/structure/types/manage/%/attach/images'] = array(
    'title' => 'Attach: Images',
    'page callback' => 'attach_images_settings',
    'access arguments' => array('access administration pages'),
    'weight' => '10',
    'type' => MENU_LOCAL_TASK,
);

Esto debería ser 'page callback' => 'drupal_get_form', 'page arguments' => array('attach_images_settings'). (no olvides limpiar el caché después de hacer el cambio)

Además, las devoluciones de llamada de formulario en Drupal 7 tienen un argumento obligatorio de $ form.

12
Damien Tournoud

Vale la pena recordar que especificar 'drupal_get_form' en la devolución de llamada de su página no es diferente a implementar su propia devolución de llamada de página personalizada desde cero y llamar a drupal_get_form () en it.

3
Eaton