$page->isChanged() method

Has the Page changed since it was loaded?

To check if only a specific property on the page has changed, specify the property/field name as the first argument. This method assumes that change tracking is enabled for the Page (as it is by default). Pages that are new (i.e. don't yet exist in the database) always return true.

Examples

// Check if page has any changes
if($page->isChanged()) {
  // There are changes to this page
  $changes = $page->getChanges();
}
// When page is about to be saved, update summary when body has changed
$this->addHookBefore('Pages::saveReady', function($event) {
  $page = $event->arguments('page');
  if($page->isChanged('body')) {
    // get first 300 chars from body
    $summary = substr($page->body, 0, 300);
    // truncate to position of last period
    $period = strrpos($summary, '.');
    if($period) $summary = substr($summary, 0, $period);
    // populate to the page, so that summary is also saved
    $page->summary = $summary;
  }
});

Usage

// basic usage
$bool = $page->isChanged();

// usage with all arguments
$bool = $page->isChanged(string $what = '');

Arguments

NameType(s)Description
what (optional)string

If specified, only checks the given property for changes rather than the whole page.

Return value

bool

True if property has changed, false if not.

See Also


$page methods and properties

API reference based on ProcessWire core version 3.0.185

Twitter updates

  • ProcessWire 3.0.187: This week we have some very useful new additions to both the core Repeater Fieldtype and the ProFields Repeater Matrix Fieldtype. This post covers all the details along with a couple of brief demonstration videos— More
    22 October 2021
  • ProcessWire 3.0.185 (dev) core updates, plus new Session Allow module— More
    17 September 2021
  • Three new ProcessWire Textformatter modules: Find/Replace, Markdown in Markup, and Emoji— More
    3 September 2021

Latest news

  • ProcessWire Weekly #388
    In the 388th issue of ProcessWire Weekly we'll check out the latest core update, introduce two new third party modules, and more. Read on!
    Weekly.pw / 16 October 2021
  • ProcessWire 3.0.184 new master/main version
    This week we have a new master/main version released after a full year in the making. As you might imagine, this new version has a ton of great new stuff and we’ll try to cover much of it here.
    Blog / 27 August 2021
  • Subscribe to weekly ProcessWire news

“The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.” —Jonathan Lahijani