 form tools ctools form tool is a replacement for drupalgetform that includes some additional functionality it takes formstate as an argument which is accepted as a reference meaning when the form is complete you can examine the formstate to see what the form did it can handle get as an input source or the input can be provided from some other source it can be told not to render or not to redirect which can be important during ajax operations it can provide a special wrapper form which is used by the wizard tool to provide a standard set of buttons to a form usage ctoolsinclude form output ctoolsbuildform formid formstate previously arguments to the form builder were passed into drupalgetform this is no longer true you have two options for passing arguments to the form with ctoolsbuildform set formstate args to an array which will then be passed to the builder as before or simply set formstate values and refer to them in the builder values you can set on formstate noredirect if set to true completely disables redirecting no matter what formstate redirect has been set to rerender defaults to true if set the form will be rerendered after submit if not redirected if set to false the form will not be rerendered after submit and output will be null method defaults to post may be set to get if get is in use form ids and tokens will not be used and all get forms will automatically be assumed to be submitted beware as this can have unexpected effects on default values as fapi doesn t quite know how to handle this state input defaults to post if using get you should set this to get wrapper callback if this is set to a function name the form will be wrapped in another form this changes how the builder callback work first form is set to a blank array then the wrapper callback is called with form and formstate as arguments then the form builder is called with form and formstate as arguments no other arguments are given args an array of arguments that will be passed to the form builder callback just as though they were passed as arguments to drupalgetform want form defaults to false if set instead of rendering the return value will be the form array it can then be rendered via drupalrender normally this is particularly useful for ajax operations that may need to process a form and then only render a part of it  