Re: [development] Implementing without nodes (Alessandro Feij?)
FYI, I just cut-n-pasted (with a little editing) Larry's forms intro into a handbook page in the module-developer's section: http://drupal.org/node/202756 Hopefully having a page here will make it easier for new devs to get started with the Forms API. -Peter
---------- Forwarded message ---------- From: Alessandro Feijó <patrao@legendas.feijo.info> To: <development@drupal.org> Date: Wed, 19 Dec 2007 11:11:30 -0200 Subject: Re: [development] Implementing without nodes What a fantastic reply!! Thanks a lot, Garfield,
I successfully set my form to work!!
Feijó
----- Original Message ----- From: "Larry Garfield" <larry@garfieldtech.com> To: <development@drupal.org> Sent: Wednesday, December 19, 2007 12:01 AM Subject: Re: [development] Implementing without nodes
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ó
Nifty, thanks Peter. I made a few whitespace cleanups to it just now (it still had a few hard wordwraps in it.) --Larry Garfield On Thu, 20 Dec 2007 14:07:05 -0500, "Peter Wolanin" <pwolanin@gmail.com> wrote:
FYI, I just cut-n-pasted (with a little editing) Larry's forms intro into a handbook page in the module-developer's section: http://drupal.org/node/202756
Hopefully having a page here will make it easier for new devs to get started with the Forms API.
-Peter
---------- Forwarded message ---------- From: Alessandro Feijó <patrao@legendas.feijo.info> To: <development@drupal.org> Date: Wed, 19 Dec 2007 11:11:30 -0200 Subject: Re: [development] Implementing without nodes What a fantastic reply!! Thanks a lot, Garfield,
I successfully set my form to work!!
Feijó
----- Original Message ----- From: "Larry Garfield" <larry@garfieldtech.com> To: <development@drupal.org> Sent: Wednesday, December 19, 2007 12:01 AM Subject: Re: [development] Implementing without nodes
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ó
That's nice, Peter! :) Feijó ----- Original Message ----- From: "Peter Wolanin" <pwolanin@gmail.com> To: <development@drupal.org> Sent: Thursday, December 20, 2007 5:07 PM Subject: Re: [development] Implementing without nodes (Alessandro Feij?) FYI, I just cut-n-pasted (with a little editing) Larry's forms intro into a handbook page in the module-developer's section: http://drupal.org/node/202756 Hopefully having a page here will make it easier for new devs to get started with the Forms API. -Peter
---------- Forwarded message ---------- From: Alessandro Feijó <patrao@legendas.feijo.info> To: <development@drupal.org> Date: Wed, 19 Dec 2007 11:11:30 -0200 Subject: Re: [development] Implementing without nodes What a fantastic reply!! Thanks a lot, Garfield,
I successfully set my form to work!!
Feijó
participants (3)
-
Alessandro Feijó -
Larry Garfield -
Peter Wolanin