Formularios Básicos

Buen día a todos, primeramente me llamo Dario Garcia, llevo trabajando con drupal aproximadamente 6 meses, anteriormente habia tratado con algunos otros CMS, pero sin entrar en polemica me decidi a usar Drupal, en esta ocasión tratare un tema que fuen bastante ineteresante para mi, el manejo de formularios, se que exitsten módulos como webform, dedicados al manejo de formularios, mas sin embargo existen diversas razones para conocer el funcionamiento de la api de formularios de Drupal:

  • Mayor control
  • Uso de formularios personalizados
  • Formularios complejos
  • etc

El objetivo de este articulo es servir como guia breve para crear un formulario personalizado usando la api de drupal, cabe destacar que este miniarticulo, es para la version 4.7

Comenzare con un preintroducción y describiendo un caso sencillo para su posterior explicación

0 . - Tener 2 cuadros de texto
Primeramente se debe crear un nodo, contenido nuevo, y en el tipo de entrada especificar php, en el contenido introduciremos el código que generara dos campos de texto llamados nombre y email.

<?php
$form
['name'] = array(
 
'#type' => 'textfield',
 
'#title' => t('Nombre'),
'#default_value' => $object['nombre'],
 
'#size' => 50,
 
'#maxlength' => 128,
);

$form['email'] = array(
 
'#type' => 'textfield',
 
'#title' => t('Email'),
'#default_value' => $object['email'],
 
'#size' => 50,
 
'#maxlength' => 128,
);

$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Enviar'),
  
'#weight' => 19,);

$output = drupal_get_form('contacto', $form);
  return
$output;
?>

Si funciono de manera correcta, tendrán un formulario simple con dos cuadros de texto llamados, nombre y email.
Tomemos el primero de ellos para explicar brevemente el cometido de cada una

$form['name'] = array(
  '#type' => 'textfield',
  '#title' => t('Nombre'),
  '#size' => 50,
  '#maxlength' => 128,
);

$form['name']  

Es el nombre del cuadro de texto y tiene las siguientes propiedades:
 
'#type' => 'textfield',  

Especificando que se trata de un cuadro de texto

'#title' => t('Nombre'), 

EL titulo que en XHTML seria la etiqueta label
 
'#size' => 50,  

El tamaño del cuedro de texto
'#maxlength' => 128,  

El numeromáximo de caracteres que admite

Las api de dupal para formularios puede consultarse en http://api.drupal.org/api/4.7/file/developer/topics/forms_api_reference....

y finalmente las lineas:

  $output = drupal_get_form('contacto', $form);
  return $output;
 

en etas se llama a la funcion drupal_get_form que viene a ser la que genera los formularios, como parametros lleva El array con formularios "$form" y el nombre del formulario,en este caso "contacto".

Este documento lo hice en base a mi experiencia personal, si lo consideran util haganmelo saber para seguir escribiendo miniarticulos, sobre manejo de formularios, aclaro que no soy experto en la materia y unicamente quisiera describir mi experiencia.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Hola juanka alguien te

Hola juanka alguien te comento como hacer para enviar a la la base de datos la info de este formulario, estoy empezando a usar drupal y no resuelvo el mismo tema
credit| default| swaps

Y como guardo la información en la tabla

Disculpen y como se guarda la información en la tabla y más aún , digamos que quiero validar que ese registro ya exista, donde puedo cargar una funcíon de validación global para llamar desde cualquier nodo y no declarar en cada uno

tutoriales

no veo nada.. :S
donde esta el manual

El Manual

El Manual, o tutorial o como quieran llamarlo... está ahí encima... no lo ven? si ocupa la mayor parte de la página.... o derrepente sus monitores se están revelando????

Yo tampoco encuentro el

Yo tampoco encuentro el manual
¿donde esta?

Aprendiendo a emprender

pues yo tampoco lo veo

pues yo tampoco lo veo

formularios de bases de datos

He visto formularios que cargan la informacion en una base de datos e incluso que permiten subir imagenes en ese formulario, supongamos una pagina inmobiliaria echa con drupal, al respecto y no se si se va del tema, cómo puedo hacer ese tipo de formulario.
Ademas, yo me pregunto, le habrá einstein explicado a su abuela su teoria

formularios de base de datos

Hola rlilloy,

Lo de la abuela de einstein no lo se :)

Pero en cuanto a usar drupal para inmobiliarias, recuerdo haber visto varios proyectos para esto, puedes hacer una busqueda en google de "real state drupal" y vas a encontrar varios proyectos...

Espero te sirva

Liz -> Mi blog

Hola estoy aprendiendo

Hola estoy aprendiendo Drupal y me parecio bueno el tutorial
Me baje el Drupal 5 y como esta especificado el tutorial es para 4.7 asi que aqui esta la version para 5.
Saludos
Mario

<?php
function crearFormulario(){

$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Nombre'),
'#default_value' => $object['nombre'],
'#size' => 50,
'#maxlength' => 128,
);

$form['email'] = array(
'#type' => 'textfield',
'#title' => t('Email'),
'#default_value' => $object['email'],
'#size' => 50,
'#maxlength' => 128,
);

$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Enviar'),
'#weight' => 19,);

  return
$form;
}

$output = drupal_get_form('crearFormulario');
return
$output;
?>

Registrar datos en una Tabla

Hola Mario. Estuve haciendo una pagina con este formulario y con estos dos campos(y todo ok.), pero ahora como podria hacer que cuando presione sobre el boton enviar, me envie a una pagina y éste lo envie (grabe), por ejemplo en una tabla 'amigos', claro está que la tabla ya lo creado en mysql, como tambien los dos campos(nombre y email).

Gracias y saludos a toda la comunidad de Drupal