public function onAfterWrite()
 {
     parent::onAfterWrite();
     $changedFields = $this->getChangedFields();
     // Reset
     $this->subpagesToPublishIfPublishingThisRecord = array();
     // For detecting a change to $SubmissionPageTitleField sp that all child pages can have their title
     // fields updated to match the $SubmittedFormField.Value
     $hasChangedSubmissionPageTitleField = false;
     if (isset($changedFields['SubmissionPageTitleField']) && $changedFields['SubmissionPageTitleField'] && $changedFields['SubmissionPageTitleField']['before'] !== $changedFields['SubmissionPageTitleField']['after'] && $changedFields['SubmissionPageTitleField']['after'] != '') {
         $hasChangedSubmissionPageTitleField = true;
     }
     // For detecting a change to $TemplatePageMarkup so that all child pages have their $Content field
     // updated to the HTML provided.
     $hasChangedTemplatePageMarkup = false;
     if (isset($changedFields['TemplatePageMarkup']) && $changedFields['TemplatePageMarkup'] && $changedFields['TemplatePageMarkup']['before'] !== $changedFields['TemplatePageMarkup']['after']) {
         $hasChangedTemplatePageMarkup = true;
     }
     if ($hasChangedSubmissionPageTitleField || $hasChangedTemplatePageMarkup) {
         $classes = UserSubmissionExtension::get_classes_extending();
         $list = SiteTree::get()->filter(array('ClassName' => $classes, 'ParentID' => $this->ID));
         foreach ($list as $record) {
             $record->updateDBFromSubmission();
             if ($record->getChangedFields(true)) {
                 $isVersionedAndLatestPublished = $record->has_extension('Versioned') && !$record->stagesDiffer('Stage', 'Live');
                 $record->write();
                 if ($isVersionedAndLatestPublished) {
                     // Only publish subpages that aren't already in a 'Modified' state.
                     $this->subpagesToPublishIfPublishingThisRecord[] = $record;
                 }
             }
         }
     }
 }