[development] Implementing without nodes

Larry Garfield larry at garfieldtech.com
Wed Dec 19 02:01:17 UTC 2007


If you want a form that is detached from the node concept, you just define the 
form itself and call it from the menu handler directly.  You can use 
hook_forms() for it, but don't have to.  The form itself gets submitted as 
normal, and you have complete control over it.

A bare skeleton might look like this:

function example_menu($may_cache) {
  $items = array();

  if ($may_cache) {
    $items[] = array(
      'path' => 'example', 
      'callback' => 'drupal_get_form', 
      'callback arguments' => array('example_form'),
  }

  return $items;
}

function example_form() {
  // define your $form here, reading from the DB as needed.
}

function example_form_validate($form_id, $form_values) {
  // Do stuff with $form_values here and set errors if needed.
}

function example_form_submit($form_id, $form_values) {
  // Do stuff with $form_values here and call DB queries if needed.
}

Now going to /example will display the form defined by example_form(), and 
when it's submitted it will first be validated by example_form_values() and, 
it passes, will get passed to example_form_submit() for whatever saving you 
want to do.  

For more information, see:
http://api.drupal.org/api/file/forms_api.html/6
http://api.drupal.org/api/file/forms_api_reference.html/6

You can, of course, get ridiculously more complicated than that (especially 
when you start working with custom theming of forms, which is all sorts of 
exciting), but that should get you started.

Cheers!

On Tuesday 18 December 2007, Feijó Legendas wrote:
> I'm trying to figure out how to implement several modules, that do not use
> nodes at all
>
> I need to set lots of forms, this forms are used to edit, insert or search
> my tables
>
> I'm having dificulty controling the data flow of my forms.  What hooks I
> use? I try hook_form, but any code I set there isnt executed.
>
> Every site about hook_form, uses node! Can I do that without nodes?
>
>
> TIA
>
> Feijó


-- 
Larry Garfield			AIM: LOLG42
larry at garfieldtech.com		ICQ: 6817012

"If nature has made any one thing less susceptible than all others of 
exclusive property, it is the action of the thinking power called an idea, 
which an individual may exclusively possess as long as he keeps it to 
himself; but the moment it is divulged, it forces itself into the possession 
of every one, and the receiver cannot dispossess himself of it."  -- Thomas 
Jefferson


More information about the development mailing list