Inputfield class

Inputfield is the base class for modules that collect user input for fields.

// Create an Inputfield
$inputfield = $modules->get('InputfieldText');
$inputfield->label = 'Your Name';
$inputfield->attr('name', 'your_name');
$inputfield->attr('value', 'Roderigo');
// Add to a $form (InputfieldForm or InputfieldWrapper)
$form->add($inputfield); 

There are 42 Inputfield types in the core, plus many more Inputfield modules in our directory.

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the Inputfield class also inherits all the methods and properties of: WireData and Wire.

Show class?     Show args?       Only hookable?    

Attribute methods

NameReturnSummary 
Inputfield::addClass($class)
$thisAdd a class or classes to this Inputfield (or a wrapping element)
Can also be used as property: Inputfield::addClass
 
Inputfield::attr($key)
Inputfield array string int object floatGet or set an attribute (or multiple attributes) 
Inputfield::class()
string InputfieldGet class attribute or add a class to the class attribute. 3.0.110
Can also be used as property: Inputfield::class
Inputfield::has(string $key)
boolDoes this Inputfield have the requested property or attribute? 
Inputfield::hasClass($class)
boolDoes this Inputfield have the given class name (or names)? 
Inputfield::id()
string InputfieldGet or set the id attribute. 3.0.110
Can also be used as property: Inputfield::id
Inputfield::isEmpty()
boolIs this Inputfield empty? (Value attribute reflects an empty state) 
Inputfield::name()
string InputfieldGet or set the name attribute. 3.0.110
Can also be used as property: Inputfield::name
Inputfield::removeAttr(string $key)
$thisRemove an attribute 
Inputfield::removeClass($class)
$thisRemove the given class (or classes) from this Inputfield 
Inputfield::wrapAttr()
Inputfield string array nullGet or set attribute for the element wrapping this Inputfield 

Attribute properties

These properties are retrieved or manipulated via the attribute methods above.

NameReturnSummary 
Inputfield::value mixed HTML 'value' attribute for the Inputfield.  

Settings

NameReturnSummary 
Inputfield::get(string $key)
mixed nullGet a property or attribute from the Inputfield 
Inputfield::getSetting(string $key)
mixedGets a setting (or API variable) from the Inputfield, while ignoring attributes. 
Inputfield::has(string $key)
boolDoes this Inputfield have the requested property or attribute? 
Inputfield::set(string $key, mixed $value)
Inputfield WireDataSet a property or attribute to the Inputfield 

Traversal

NameReturnSummary 
Inputfield::getForm()
InputfieldForm nullGet the InputfieldForm element that contains this field or null if not yet defined 
Inputfield::getParent()
InputfieldWrapper nullGet this Inputfield’s parent InputfieldWrapper, or NULL if it doesn’t have one. 
Inputfield::getParents()
arrayGet array of all parents of this Inputfield. 
Inputfield::getRootParent()
InputfieldForm InputfieldWrapper nullGet the root parent InputfieldWrapper element (farthest parent, commonly InputfieldForm) 
Inputfield::parent()
null Inputfield InputfieldWrapperGet or set parent of Inputfield 
Inputfield::parents()
arrayGet array of all parents of this Inputfield 
Inputfield::setParent(InputfieldWrapper $parent)
$thisSet the parent (InputfieldWrapper) of this Inputfield. 

Labels

NameReturnSummary 
Inputfield::appendMarkup()
string InputfieldGet or set the 'appendMarkup' property via method. 3.0.110
Can also be used as property: Inputfield::appendMarkup
Inputfield::description()
string InputfieldGet or set the 'description' property via method. 3.0.110
Can also be used as property: Inputfield::description
Inputfield::detail string Optional text details that appear under notes. 3.0.140  
Inputfield::head()
string InputfieldGet or set the 'head' property via method. 3.0.110
Inputfield::icon()
string InputfieldGet or set the 'icon' property via method. 3.0.110
Can also be used as property: Inputfield::icon
Inputfield::label()
string InputfieldGet or set the 'label' property via method. 3.0.110
Can also be used as property: Inputfield::label
Inputfield::notes()
string InputfieldGet or set the 'notes' property via method. 3.0.110
Can also be used as property: Inputfield::notes
Inputfield::prependMarkup()
string InputfieldGet or set the 'prependMarkup' property via method. 3.0.110
Can also be used as property: Inputfield::prependMarkup
Inputfield::requiredLabel()
string InputfieldGet or set the 'requiredLabel' property via method. 3.0.110
Can also be used as property: Inputfield::requiredLabel
Inputfield::tabLabel string Label for tab if Inputfield rendered in its own tab via Inputfield::collapsedTab* setting. 3.0.201  

Appearance

NameReturnSummary 
Inputfield::collapsed()
int InputfieldGet or set collapsed property via method. 3.0.110
Can also be used as property: Inputfield::collapsed
Inputfield::columnWidth()
int InputfieldGet or set columnWidth property via method. 3.0.110
Can also be used as property: Inputfield::columnWidth
Inputfield::showIf()
string InputfieldGet or set showIf selector property via method. 3.0.110
Can also be used as property: Inputfield::showIf
Inputfield::skipLabel()
int InputfieldGet or set the skipLabel constant property via method. 3.0.110
Can also be used as property: Inputfield::skipLabel

Uikit

Settings for Inputfields recognized and used by AdminThemeUikit.

NameReturnSummary 
Inputfield::themeBlank bool Makes <input> element display with no minimal container / no border when true.  
Inputfield::themeBorder string Border style for Inputfield, one of 'none', 'card', 'hide' or 'line'.  
Inputfield::themeColor string Color theme for Inputfield, one of 'primary', 'secondary', 'warning', 'danger', 'success', 'highlight', 'none'.  
Inputfield::themeInputSize string Input size height/font within Inputfield, one of 's', 'm', or 'l'.  
Inputfield::themeInputWidth string Input width for text-type inputs, one of 'xs', 's', 'm', 'l', or 'f' (for full-width).  
Inputfield::themeOffset bool string Offset/margin for Inputfield, one of 's', 'm', or 'l'.  

Behavior

NameReturnSummary 
Inputfield::required()
string InputfieldGet or set required state. 3.0.110
Can also be used as property: Inputfield::required
Inputfield::requiredAttr int bool null Use HTML5 “required” attribute when used by Inputfield and $required is true? Default=null.  
Inputfield::requiredIf()
string InputfieldGet or set required-if selector. 3.0.110
Can also be used as property: Inputfield::requiredIf
Inputfield::useLanguages bool null When multi-language support active, can be set to true to make it provide inputs for each language, where supported .  

Other

NameReturnSummary 
Inputfield::contentClass()
string InputfieldGet content class attribute or add a class to it. 3.0.110
Can also be used as property: Inputfield::contentClass
Inputfield::hasField null Field The Field object associated with this Inputfield, or null when not applicable or not known.  
Inputfield::hasFieldtype null bool Fieldtype The Fieldtype using this Inputfield, or boolean false when known not to have a Fieldtype, or null when not known.  
Inputfield::hasInputfield null Inputfield If this Inputfield is owned/managed by another (other than parent/child relationship), it may be set here. 3.0.176  
Inputfield::hasPage null Page The Page object associated with this Inputfield, or null when not applicable or not known.  
Inputfield::headerClass()
string InputfieldGet header class attribute or add a class to it. 3.0.110
Can also be used as property: Inputfield::headerClass
Inputfield::wrapClass()
string InputfieldGet wrapper class attribute or add a class to it. 3.0.110
Can also be used as property: Inputfield::wrapClass

Output

NameReturnSummary 
Inputfield::entityEncode(string $str)
stringEntity encode a string with optional Markdown support. 
Inputfield::entityEncodeLabel null bool int Set to boolean false to specifically disable entity encoding of field header/label .  
Inputfield::entityEncodeText null bool Set to boolean false to specifically disable entity encoding for other text: description, notes, etc. .  
Inputfield::render()
stringRender the HTML input element(s) markup, ready for insertion in an HTML form.
Inputfield::renderFlags int Options that can be applied to render, see "render*" constants . 3.0.204  
Inputfield::renderReady()
boolMethod called right before Inputfield markup is rendered, so that any dependencies can be loaded as well. 
Inputfield::renderValue()
stringRender just the value (not input) in text/markup for presentation purposes.
Inputfield::renderValueFlags int Options that can be applied to renderValue mode, see "renderValue" constants .  
Inputfield::textFormat int null Text format to use for description/notes text in Inputfield (see textFormat constants)  

Input

NameReturnSummary 
Inputfield::processInput(WireInputData $input)
$thisProcess input for this Inputfield directly from the POST (or GET) variables

States

NameReturnSummary 
Inputfield::clearErrors()
NoneClear errors from this Inputfield 
Inputfield::editable()
boolGet or set editable state for this Inputfield 
Inputfield::error(string $text)
$thisRecord an error for this Inputfield 
Inputfield::getErrors()
arrayReturn array of strings containing errors that occurred during input processing 

Module

Methods primarily of interest during module development.

NameReturnSummary 
Inputfield::getConfigAllowContext(Field $field)
arrayReturn a list of config property names allowed for fieldgroup/template context
Inputfield::getConfigArray()
arrayAlternative method for configuration that allows for array definition
Inputfield::getConfigInputfields()
InputfieldWrapperGet any custom configuration fields for this Inputfield
Inputfield::init()
NonePer the Module interface, init() is called after any configuration data has been populated to the Inputfield, but before render. 
Inputfield::install()
NonePer the Module interface, this method is called when this Inputfield is installed
Inputfield::uninstall()
NonePer the Module interface, uninstall() is called when this Inputfield is uninstalled

Languages

NameReturnSummary 
Inputfield::getLanguageValue($language)
string mixedGet language value for Inputfield that supports it. Requires LanguageSupport module. $language can be Language, id (int) or name (string). 3.0.238
Inputfield::setLanguageValue($language, $value)
NoneSet language value for Inputfield that supports it. Requires LanguageSupport module. $language can be Language, id (int) or name (string). 3.0.238
Inputfield::useLanguages bool null When multi-language support active, can be set to true to make it provide inputs for each language, where supported .  

Advanced

NameReturnSummary 
Inputfield::footerMarkup string null Optional markup to add to the '.Inputfield' container, after '.InputfieldContent'. 3.0.241  

Collapsed constants

Constants allowed for the Inputfield::collapsed property.

NameReturnSummary 
Inputfield::collapsedBlank const2Collapsed only when blank 
Inputfield::collapsedBlankAjax const11Collapsed only when blank, and dynamically loaded by AJAX when opened 
Inputfield::collapsedBlankLocked const7Collapsed when blank, value visible but not editable 
Inputfield::collapsedHidden const4Hidden, not rendered in the form at all 
Inputfield::collapsedNever const9Never collapsed, and not collapsible 
Inputfield::collapsedNo const0Not collapsed (display as "open", default) 
Inputfield::collapsedNoLocked const6Not collapsed, value visible but not editable 
Inputfield::collapsedPopulated const5Collapsed only when populated 
Inputfield::collapsedTab const20Collapsed into a separate tab @3.0.201  
Inputfield::collapsedTabAjax const21Collapsed into a separate tab and AJAX loaded @3.0.201  
Inputfield::collapsedTabLocked const22Collapsed into a separate tab and locked (not editable) @3.0.201  
Inputfield::collapsedYes const1Collapsed unless opened 
Inputfield::collapsedYesAjax const10Collapsed and dynamically loaded by AJAX when opened 
Inputfield::collapsedYesLocked const8Collapsed unless opened (value becomes visible but not editable) 

SkipLabel constants

Constants allowed for the Inputfield::skipLabel property.

NameReturnSummary 
Inputfield::skipLabelBlank const4Skip rendering of the label when it is blank 
Inputfield::skipLabelFor consttrueDon't use a "for" attribute with the <label> 
Inputfield::skipLabelHeader const2Don't show a visible header (likewise, do not show the label) 
Inputfield::skipLabelMarkup const8Do not render any markup for the header/label at all @3.0.139  
Inputfield::skipLabelNo constfalseDon't skip the label (default) 

TextFormat constants

Constants for formats allowed in description, notes, label.

NameReturnSummary 
Inputfield::textFormatBasic const4Only allow basic/inline markdown, and no HTML (default) 
Inputfield::textFormatMarkdown const8Full markdown support with HTML also allowed 
Inputfield::textFormatNone const2Plain text: no type of markdown or HTML allowed 

Render constants

NameReturnSummary 
Inputfield::renderFirst const1Render flags: place first in render 
Inputfield::renderLast const2Render flags: place last in render 

RenderValue constants

Options for Inputfield::renderValueFlags property, applicable Inputfield::renderValue() method call.

NameReturnSummary 
Inputfield::renderValueFirst const8If there are multiple items, only render the first (where supported by the Inputfield). 
Inputfield::renderValueMinimal const2Render only the minimum output when in "renderValue" mode. 
Inputfield::renderValueNoWrap const4Indicates a parent InputfieldWrapper is not required when rendering value. 

Additional methods and properties

In addition to the methods and properties above, Inputfield also inherits the methods and properties of these classes:

Core Inputfield types

TypeSummary
InputfieldAsmSelectMultiple selection, progressive enhancement to select multiple
InputfieldButtonForm button element that you can optionally pass an href attribute to.
InputfieldCKEditorCKEditor textarea rich text editor.
InputfieldCheckboxSingle checkbox toggle
InputfieldCheckboxesMultiple checkbox toggles
InputfieldCommentsAdminProvides an administrative interface for working with comments
InputfieldDatetimeInputfield that accepts date and optionally time
InputfieldEmailE-Mail address in valid format
InputfieldFieldsetGroups one or more fields together in a container
InputfieldFileOne or more file uploads (sortable)
InputfieldFloatFloating point number with precision
InputfieldFormContains one or more fields in a form
InputfieldHiddenHidden value in a form
InputfieldIconSelect an icon
InputfieldImageOne or more image uploads (sortable)
InputfieldIntegerInteger (positive or negative)
InputfieldMarkupContains any other markup and optionally child Inputfields
InputfieldPageSelect one or more pages
InputfieldPageAutocompleteMultiple Page selection using auto completion and sorting capability. Intended for use as an input field for Page reference fields.
InputfieldPageListSelectSelection of a single page from a ProcessWire page tree list
InputfieldPageListSelectMultipleSelection of multiple pages from a ProcessWire page tree list
InputfieldPasswordPassword input with confirmation field that doesn&#039;t ever echo the input back.
InputfieldRadiosRadio buttons for selection of a single item
InputfieldRepeaterRepeats fields from another template. Provides the input for FieldtypeRepeater.
InputfieldSelectSelection of a single value from a select pulldown
InputfieldSelectMultipleSelect multiple items from a list
InputfieldSelectorBuild a page finding selector visually.
InputfieldSubmitForm submit button
InputfieldTextSingle line of text
InputfieldTextTagsEnables input of user entered tags or selection of predefined tags.
InputfieldTextareaMultiple lines of text
InputfieldTinyMCETinyMCE rich text editor version 6.8.2.
InputfieldToggleA toggle providing similar input capability to a checkbox but much more configurable.
InputfieldURLURL in valid format

See also: Inputfield modules in the modules directory

API reference based on ProcessWire core version 3.0.251