InputfieldWrapper::new()

Create a new Inputfield, add it to this InputfieldWrapper, and return the new Inputfield

  • Only the $typeName argument is required.
  • You may optionally substitute the $settings argument for the $name or $label arguments.
  • You may optionally substitute Inputfield “description” property for $settings argument.

Available since version 3.0.110.

Usage

// basic usage
$inputfield = $inputfieldWrapper->new(string $typeName);

// usage with all arguments
$inputfield = $inputfieldWrapper->new(string $typeName, $name = '', $label = '', $settings = []);

Arguments

NameType(s)Description
$typeNamestring

Inputfield type, i.e. “InputfieldCheckbox” or just “checkbox” for short.

$name (optional)string array

Name of input (or substitute $settings here).

$label (optional)string array

Label for input (or substitute $settings here).

$settings (optional)array string

Settings to add to Inputfield (optional). Or if string, assumed to be “description”.

Return value

Inputfield InputfieldSelect InputfieldWrapper

An Inputfield instance ready to populate with additional properties/attributes.

Exceptions

Method can throw exceptions on error:

  • WireException - If you request an unknown Inputfield type


Hooking InputfieldWrapper::new(…)

You can add your own hook events that are executed either before or after the InputfieldWrapper::new(…) method is executed. Examples of both are included below. A good place for hook code such as this is in your /site/ready.php file.

Hooking before

The 'before' hooks are called immediately before each InputfieldWrapper::new(…) method call is executed. This type of hook is especially useful for modifying arguments before they are sent to the method.

$this->addHookBefore('InputfieldWrapper::new', function(HookEvent $event) {
  // Get the object the event occurred on, if needed
  $InputfieldWrapper = $event->object;

  // Get values of arguments sent to hook (and optionally modify them)
  $typeName = $event->arguments(0);
  $name = $event->arguments(1);
  $label = $event->arguments(2);
  $settings = $event->arguments(3);

  /* Your code here, perhaps modifying arguments */

  // Populate back arguments (if you have modified them)
  $event->arguments(0, $typeName);
  $event->arguments(1, $name);
  $event->arguments(2, $label);
  $event->arguments(3, $settings);
});

Hooking after

The 'after' hooks are called immediately after each InputfieldWrapper::new(…) method call is executed. This type of hook is especially useful for modifying the value that was returned by the method call.

$this->addHookAfter('InputfieldWrapper::new', function(HookEvent $event) {
  // Get the object the event occurred on, if needed
  $InputfieldWrapper = $event->object;

  // An 'after' hook can retrieve and/or modify the return value
  $return = $event->return;

  // Get values of arguments sent to hook (if needed)
  $typeName = $event->arguments(0);
  $name = $event->arguments(1);
  $label = $event->arguments(2);
  $settings = $event->arguments(3);

  /* Your code here, perhaps modifying the return value */

  // Populate back return value, if you have modified it
  $event->return = $return;
});

InputfieldWrapper methods and properties

API reference based on ProcessWire core version 3.0.251