Inputfield::addHeaderAction() method

Add header action

This adds a clickable icon to the right side of the Inputfield header. There are three types of actions: 'click', 'toggle' and 'link'. The 'click' action simply triggers your JS event whenever it is clicked. The 'toggle' action has an on/off state, and you can specify the JS event to trigger for each. This function will automatically figure out whether you want a click, toggle or 'link' action based on what you provide in the $settings argument. Below is a summary of these settings:

Settings for 'click' or 'link' type actions

  • icon (string): Name of font-awesome icon to use.
  • tooltip (string): Optional tooltip text to display when icon hovered.
  • event (string): Event name to trigger in JS when clicked ('click' actions only).
  • href (string): URL to open ('link' actions only).
  • modal (bool): Specify true to open link in modal ('link' actions only).

Settings for 'toggle' (on/off) type actions

  • on (bool): Start with the 'on' state? (default=false)
  • onIcon (string): Name of font-awesome icon to show for on state.
  • onEvent (string): JS event name to trigger when toggled on.
  • onTooltip (string): Tooltip text to show when on icon is hovered.
  • offIcon (string): Name of font-awesome icon to show for off state.
  • offEvent (string): JS event name to trigger when toggled off.
  • offTooltip (string): Tooltip text to show when off icon is hovered.

Other/optional settings (applies to all types)

  • name (string): Name of this action (-_a-zA-Z0-9).
  • parent (string): Name of parent action, if this action is part of a menu.
  • overIcon (string): Name of font-awesome icon to show when hovered.
  • overEvent (string): JS event name to trigger when mouse is over the icon.
  • downIcon (string): Icon to display when mouse is down on the action icon (3.0.241+).
  • downEvent (string): JS event name to trigger when mouse is down on the icon (3.0.241+).
  • cursor (string): CSS cursor name to show when mouse is over the icon.
  • setAll (array): Set all of the header actions in one call, replaces any existing. Note: to get all actions, call the method and omit the $settings argument.

Settings for dropdown menu actions (3.0.241+)

Note that menu type actions also require jQuery UI and /wire/templates-admin/scripts/main.js, both of which are already present in PW’s admin themes (AdminThemeUikit recommended). Requires ProcessWire 3.0.241 or newer.

  • icon (string): Icon name to use for dropdown toggle, i.e. 'fa-wrench'.
  • tooltip (string): Optional tooltip to describe what the dropdown is for.
  • menuAction (string): Action that toggles the menu to show, one of 'click' or 'hover' (default).
  • menuItems (array): Definition of menu items, each with one or more of the following properties.
    • label (string): Label text for the menu item (required).
    • icon (string): Icon name for the menu item, if desired.
    • callback (function|null): JS callback to execute item is clicked (not applicable in PHP).*
    • event (string): JS event name to trigger when item is clicked.
    • tooltip (string): Tooltip text to show when hovering menu item (title attribute).
    • href (string): URL to go to when menu item clicked.
    • target (string): Target attribute when href is used (i.e. "_blank").
    • modal (bool): Open href in modal window instead?
    • active (function|bool): Callback function that returns true if menu item active, or false.* if disabled. You can also directly specify true or false for this option.
    • NOTE 1: All menuItems properties above are optional, except for 'label'.
    • NOTE 2: To use callback or active as functions, you must define your menu in JS instead.
    • NOTE 3: For examples see the addHeaderAction() method in /wire/templates-admin/scripts/inputfields.js

Available since version 3.0.240.

Usage

// basic usage
$array = $inputfield->addHeaderAction();

// usage with all arguments
$array = $inputfield->addHeaderAction(array $settings = []);

Arguments

NameType(s)Description
settings (optional)array

Specify array containing the appropriate settings above.

Return value

array

Returns all currently added actions.


Inputfield methods and properties

API reference based on ProcessWire core version 3.0.244

Latest news

  • ProcessWire Weekly #562
    In the 562nd issue of ProcessWire Weekly we're going to cover the latest core updates, introduce a very interesting triplet of newly released third party modules by Bernhard Baumrock, and more. Read on!
    Weekly.pw / 15 February 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“Indeed, if ProcessWire can be considered as a CMS in its own right, it also offers all the advantages of a CMF (Content Management Framework). Unlike other solutions, the programmer is not forced to follow the proposed model and can integrate his/her ways of doing things.” —Guy Verville, Spiria Digital Inc.