public function migrateSettings($data)
 {
     // Migrate 'Folder' setting to 'FolderID'
     if (isset($data['Folder'])) {
         $this->FolderID = $data['Folder'];
         unset($data['Folder']);
     }
     parent::migrateSettings($data);
 }
 public function migrateSettings($data)
 {
     // Migrate 'Default' setting to 'CheckedDefault'
     if (isset($data['Default'])) {
         $this->CheckedDefault = (bool) $data['Default'];
         unset($data['Default']);
     }
     parent::migrateSettings($data);
 }
 /**
  * Migrate custom settings for the given field
  *
  * @param EditableFormField $field
  * @param string $stage
  */
 protected function migrateCustomSettings(EditableFormField $field, $stage)
 {
     // Custom settings include:
     // - ExtraClass
     // - RightTitle
     // - ShowOnLoad (show or '' are treated as true)
     //
     // - CheckedDefault (new field on EditableCheckbox - should be read from old "default" value)
     // - Default (EditableCheckbox)
     // - DefaultToToday (EditableDateField)
     // - Folder (EditableFileField)
     // - Level (EditableFormHeading)
     // - HideFromReports (EditableFormHeading / EditableLiteralField)
     // - Content (EditableLiteralField)
     // - GroupID (EditableMemberListField)
     // - MinValue (EditableNumericField)
     // - MaxValue (EditableNumericField)
     // - MinLength (EditableTextField)
     // - MaxLength (EditableTextField)
     // - Rows (EditableTextField)
     $customSettings = $field->CustomSettings ? unserialize($field->CustomSettings) : array();
     // Skip blank rules or fields with custom rules already
     if (empty($customSettings)) {
         return;
     }
     $field->migrateSettings($customSettings);
     $field->write();
 }