FieldInitialValue by Robin S

For most field types, allows the definition of an initial value that is automatically set when pages are created.

For most field types, allows the definition of an initial value that is automatically set when pages are created.

The initial value can be set in template context if you want a different initial value in different templates.

Example for a "Countries" Page Reference field using AsmSelect:


Example with explanatory notes in a CKEditor field:


The core allows setting a "Default value" for certain field types. The "Initial value" setting added by this module is different from the "Default value" setting in the following ways:

  1. The "Default value" is a setting that applies only to the inputfield, meaning that the value is shown in the inputfield by default but is not stored until you save the page. By contrast, the "Initial value" is automatically saved to the page when the page is first created.
  2. Related to point 1, when a page is created via the API rather than in the ProcessWire admin the "Initial value" is saved to the page but the "Default value" is not.
  3. The "Default value" has no effect when a field is not "required", but the "Initial value" is set for both required and not required fields.
  4. Related to point 3, a user can empty a field that had an "Initial value" applied but a field with a "Default value" set cannot be emptied.
  5. The "Initial value" setting is available for more field types than "Default value".

The following field types are supported, along with any types that extend them:

  • FieldtypeText (includes types that extend it such as Textarea, CKEditor, URL, etc.)
  • FieldtypeDatetime
  • FieldtypeInteger
  • FieldtypeDecimal
  • FieldtypeFloat
  • FieldtypePage (with all core inputfield types)
  • FieldtypeCheckbox
  • FieldtypeOptions (with all core inputfield types)
  • FieldtypeToggle
  • FieldtypeSelector
  • FieldtypeMultiplier (ProField)
  • FieldtypeCombo (ProField, only supported when File and Image subfields are not used)
  • FieldtypeStars (third-party module)

If you want to try field types beyond this you can define additional types in the module config, but your mileage may vary.

It's not possible to set an initial value for these field types, along with any types that extend them:

  • FieldtypeFile (and FieldtypeImage)
  • FieldtypeRepeater (includes types that extend it such as Repeater Matrix and Fieldset Page)
  • FieldtypePageTable
  • FieldtypeTable (ProField)

Seeing as the initial value is defined in the field config it has no idea of the current page - for the purposes of rendering the initial value inputfield the home page is supplied as a dummy page. This probably isn't an issue in most cases but it might have an effect for some Page Reference fields if they use the current page to limit the selectable pages.

Install and use modules at your own risk. Always have a site and database backup before installing new modules.

Latest news

  • ProcessWire Weekly #489
    In the 489th issue of ProcessWire Weekly we'll check out what's new in the core this week, share a brand-new recipe of the week, and more. Read on! / 23 September 2023
  • ProcessWire 3.0.226 new main/master version
    After 8 months in development we are excited to bring you ProcessWire 3.0.226 main/master. This version has a ton of great new features, improvements and optimizations, plus more than 100 issue fixes. This post takes an in-depth look at highlights from this great new version.
    Blog / 25 August 2023
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH