Jump to content


Developer Documentation

Displaying a form

Outputting the form

Casting the $form object to a string returns the HTML to display the form. You don't usually need to cast the form explicitly, simply adding it to the output buffer (e.g. \IPS\Output::i()->output) will be fine. e.g.

\IPS\Output::i()->output .= $form;


Adding custom CSS to a form

By default, the form is "horizontal". To use "vertical", or to apply any other classes to the form, you can do:

$form->class = 'ipsForm_vertical';

The class property is a simple string (not an array), so simply use a space-separated list of CSS classnames.

If you use your own CSS styles rather than built-in classnames, don't forget to include your CSS file too!


Using custom form templates

By default, standard built-in form templates are used when displaying a form. For further customization though, you can call $form->customTemplate() passing a callback with a template to use. This allows you to totally customize the look of the form.

A common use of this is to use a template that looks better in modals:

\IPS\Output::i()->output = $form->customTemplate( array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'popupTemplate' ) );

The template you create must contain the following template header, including these parameters:

<ips:template parameters="$id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar, $form=NULL" />


Passing custom parameters

If you need to pass additional custom parameters to your form template, you can do that in the second parameter of the customTemplate method, like so:

$templateToUse = array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'popupTemplate' );
$form->customTemplate( $templateToUse, $myCustomParameter, $anotherParameter );

Your parameters are added to the front of the template parameter list, meaning in this case, your template header would be:

<ips:template parameters="$myCustomParameter, $anotherParameter, $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='', $attributes=array(), $sidebar, $form=NULL" />


  Report Document

  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy