buenas.
Estoy intentando construir un formulario multipage, pero no lo tengo bien construido, y me funciona mal.
Como base para construirlo estoy usando el recurso de drupal org http://drupal.org/node/101707 y pro drupal development, pero desgraciadamente no lo explica muy bien ninguno de los dos.
el error que me da es:
* warning: Missing argument 1 for alta_partidados() in /var/www/periodico/sites/all/modules/campanya/campanya.module on line 265.
* warning: Missing argument 2 for alta_partidados() in /var/www/periodico/sites/all/modules/campanya/campanya.module on line 265.mi código de formulario es:
<?php
function alta_partidados($param1, $param2, $form_values = NULL) {
if (!isset($form_values)) {
$step = 1;
}
else {
$step = $form_values['step'] + 1;
}
$form['step'] = array(
'#type' => 'hidden',
'#value' => $step,
);
switch ($step) {
case 1:
$form['alta_partida'] = array (
'#type' => 'fieldset',
'#title' => t('alta de partidas'),
'#weight' => -6,
);
// Nombre del jugador a
$form['alta_partida']['jugador_a'] = array(
'#type' => 'value',
'#value' => $user->uid,
);
// Nombre del ejercito del jugador a
$form['alta_partida']['jugador_a_ejercito'] = array(
'#type' => 'value',
'#value' => $user->profile_ejercito,
);
// fieldset para agrupar los datos del jugador b
$form['contrincante'] = array(
'#type' => 'fieldset',
'#title' => t('Datos de tu contrincante'),
'#weight' => -5,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$ejercito_b['0'] = t("Selecciona un ejerccio");
$ejercito_b['1'] = "Marines";
$ejercito_b['2'] = "Orkos";
$ejercito_b['3'] = "Eldars";
// Ejercito del jugador b
$form['contrincante']['jugador_b_ejercito'] = array (
'#type' => 'select',
'#title' => t('selecciona el ejercito de tu contrincante:'),
'#options' => $ejercito_b,
'#default_value' => $ejercito_b['0'],
'#weight' => -15,
);
//fieldset de la campaña
$form['campanya'] = array(
'#type' => 'fieldset',
'#title' => t('Datos de la campaña'),
'#weight' => -4,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$nombre_campanya = "Asalto al imperio frances";
//nombre de la campanya.
$form['campanya']['nombre_campanya'] = array (
'#type' => 'item',
'#title' => t('Nombre de la campaña:'),
'#value' => $nombre_campanya,
'#weight' => -4,
);
//lugar de la partida
$form['campanya']['lugar'] = array(
'#type' => 'select',
'#title' => t('Donde se ha jugado la partida:'),
'#options' => array(
'0' => t('Paris centro'),
'1' => t('Sudeste de paris'),
'2' => t('En los suburbios'),
'3' => t('En el almacen del puerto'),
),
'#weight' => -3,
);
//fieldset del tipo de partida
$form['tipo_partida'] = array(
'#type' => 'fieldset',
'#title' => t('Tipo de partida que se ha jugado'),
'#weight' => 2,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
//tipo de batalla, hace referencia a la cantidad de puntos que se juegan en la partida.
$form['tipo_partida']['tipo_batalla'] = array(
'#type' => 'select',
'#title' => t('Tamaño de la partida:'),
'#options' => array(
'0' => t('escaramuzas'),
'1' => t('patrullas'),
'2' => t('normal'),
'3' => t('grande'),
'4' => t('enorme'),
),
'#weight' => -5,
);
//tipo de batalla, hace referencia al tipo de miniaturas, tamaño, que se utiliza en la partida..
$form['tipo_partida']['tipo_ejercito'] = array(
'#type' => 'select',
'#title' => t('Tipo de miniaturas:'),
'#options' => array(
'0' => t('06mm a 15mm'),
'1' => t('16 mm a 25mm'),
'2' => t('26 mm a 35mm'),
'3' => t('36mm a 55mm'),
'4' => t('barcos'),
'5' => t('aviones'),
'6' => t('naves espaciales'),
),
'#weight' => -4,
);
//fieldset del tipo de misión que se ha jugado en la partida
$form['tipo_mision'] = array(
'#type' => 'fieldset',
'#title' => t('Tipo de misión'),
'#weight' => 1,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
//que tipo de misión se ha jugado, hay 3 opciones, normales, especiales, eventos
$form['tipo_mision']['mision'] = array(
'#type' => 'select',
'#title' => t('Que tipo de misión se ha jugado:'),
'#options' => array(
'0' => t('normales'),
'1' => t('especiales'),
'2' => t('eventos'),
),
'#weight' => -4,
);
//Resulatdo de la partida
$form['resultado'] = array(
'#type' => 'fieldset',
'#title' => t('Tipo de resultado'),
'#weight' => 9,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
//selecciona como ha finalizado la partida.
$form['resultado']['ganar_perder'] = array(
'#type' => 'radios',
'#title' => t('Resultado de la partida'),
'#options' => array(t('he ganado'), t('He empatado'), t('He perdido')),
);
break;
case 2:
//el nombre del jugador b tendría que mostrar un array de datos de nombres de jugadores que juegan con el ejercito que se ha señalado en el paso uno.
//algo así como select uid, name from {tabla_jugador} where ejercito = $form['contrincante']['jugador_b_ejercito']
// Nombre del jugador b
$form['contrincante']['jugador_b_'] = array (
'#type' => 'select',
'#title' => t('¿Como se llamaba tu contrincante?:'),
'#options' => array(
'0' => t('General Lee'),
'1' => t('Mc Arthur'),
'2' => t('Almirante Nelson'),
'3' => t('Godoy'),
),
'#weight' => -14,
);
//lo mismo que el caso de arriba, pero en este caso depende de lo que se seleccione en
// $form['tipo_mision']['mision'] aquí se tiene que mostrar unos datos u otros.
//Se muestran las misiones que se pueden jugar.
$form['tipo_mision']['clase_mision'] = array(
'#type' => 'select',
'#title' => t('selecciona la misión que se ha jugado:'),
'#options' => array(
'0' => t('mision 1'),
'1' => t('mision 2'),
'2' => t('mision 3'),
),
'#weight' => -3,
);
break;
}
// This part is important!
$form['#multistep'] = TRUE;
$form['#redirect'] = FALSE;
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
?>¿Alguien sabe que hago mal?
Gracias
Oskar