Fieldtype class

Fieldtype is a module type used to represent a type of field. All Fieldtype modules descend from this.

Almost all methods in a Fieldtype are primarily of concern to module developers, as Fieldtype modules do not have a public API (most of the time). Instead, they provide methods used by Page and Field objects (and related) to work with the field data. Most Fieldtype modules only need to implement a few methods like Fieldtype::sanitizeValue() (which is required) and Fieldtype::getDatabaseSchema(), as the default implementation of most other methods provided in this Fieldtype class accounts for most situations already.


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

Show class?             Show args?        

Loading

NameReturnSummary 
Fieldtype::getBlankValue($page, Field $field)
string int object nullReturn the blank value for this fieldtype, whether that is a blank string, zero value, blank object or array 
Fieldtype::getLoadQuery(Field $field, DatabaseQuerySelect $query)
DatabaseQuerySelectReturn the query used for loading all parts of the data from this field. 
Fieldtype::getLoadQueryAutojoin(Field $field, DatabaseQuerySelect $query)
DatabaseQuerySelect nullReturn the query used for Autojoining this field (if different from getLoadQuery) or NULL if autojoin not allowed. 
Fieldtype::loadPageField(Page $page, Field $field)
mixed nullLoad the given page field from the database table and return the value.
Fieldtype::loadPageFieldFilter(Page $page, Field $field, $selector)
mixed nullLoad the given page field from the database table and return a *filtered* value.
Fieldtype::sanitizeValue(Page $page, Field $field, $value)
string int WireArray objectSanitize the value for runtime storage and return it. 
Fieldtype::wakeupValue(Page $page, Field $field, $value)
string int array objectGiven a raw value (value as stored in database), return the value as it would appear in a Page object.

Other

NameReturnSummary 
Fieldtype::cloneField(Field $field)
FieldReturn a cloned copy of $field
Fieldtype::get(string $key)
mixedGet a property from this Fieldtype’s data 
Fieldtype::getInputfield(Page $page, Field $field)
Inputfield nullReturn new instance of the Inputfield module associated with this Fieldtype. 
Fieldtype::install()
(nothing)Install this Fieldtype, consistent with optional Module interface
Fieldtype::longName string Long name of Fieldtype, which is typically the module title.  
Fieldtype::name string Name of Fieldtype module.  
Fieldtype::shortName string Short name of Fieldtype, which excludes the "Fieldtype" prefix.  
Fieldtype::uninstall()
(nothing)Uninstall this Fieldtype, consistent with optional Module interface
Fieldtype::upgrade($fromVersion, $toVersion)
(nothing)Called when module version changes

Common

NameReturnSummary 
Fieldtype::getFieldClass()
stringGet class name to use Field objects of this type (must be class that extends Field class) 
Fieldtype::importValue(Page $page, Field $field, $value)
string float int array object)
Fieldtype::isDeleteValue(Page $page, Field $field, mixed $value)
boolIs given value one that should cause the DB row(s) to be deleted rather than saved? 
Fieldtype::renamedField(Field $field, $prevName)
(nothing)

Additional methods and properties

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

API reference based on ProcessWire core version 3.0.163

Twitter updates

  • This week we’re proud to announce the newest ProcessWire master version 3.0.164. Relative to the previous master (3.0.148) this version adds a ton of new & useful features and fixes more than 85 issues, with more than 225 commits over 7 months— More
    7 August 2020
  • ProcessWire 3.0.163 resolves more than a dozen issue reports and adds new hooks and configurable module install options, among numerous other updates. In addition, a major update to ProCache (v4.0) has been released— More
    24 July 2020
  • Weekly update for 17 July 2020 and a look at new features coming in next week's version of ProCache— More
    17 July 2020

Latest news

  • ProcessWire Weekly #326
    In the 326th issue of ProcessWire Weekly we're going to introduce the latest ProcessWire master version, take a quick look at a brand new third party module called Textformatter Video Markup, and more. Read on!
    Weekly.pw / 8 August 2020
  • ProcessWire 3.0.164 new master version
    This week we’re proud to announce the newest ProcessWire master version 3.0.164. Relative to the previous master version (3.0.148) this version adds a ton of new and useful features and fixes more than 85 issues, with more than 225 commits over a period of 7 months.
    Blog / 7 August 2020
  • Subscribe to weekly ProcessWire news

“To Drupal, or to ProcessWire? The million dollar choice. We decided to make an early switch to PW. And in retrospect, ProcessWire was probably the best decision we made. Thanks are due to ProcessWire and the amazing system and set of modules that are in place.” —Unni Krishnan, Founder of PigtailPundits