FieldInitialValue by Robin S

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

Field Initial Value

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:

initial-value-1

Example with explanatory notes in a CKEditor field:

initial-value-2

Differences from "Default value"


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".

Supported field types


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.

Unsupported field types


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)

Notes


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 #554
    In the 554th issue of ProcessWire Weekly we'll check out the latest core updates, introduce a couple of new third party modules, and more. Read on!
    Weekly.pw / 21 December 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • 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 superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH