diff options
Diffstat (limited to 'app/Module/BatchUpdate/BatchUpdateDuplicateLinksPlugin.php')
| -rw-r--r-- | app/Module/BatchUpdate/BatchUpdateDuplicateLinksPlugin.php | 123 |
1 files changed, 68 insertions, 55 deletions
diff --git a/app/Module/BatchUpdate/BatchUpdateDuplicateLinksPlugin.php b/app/Module/BatchUpdate/BatchUpdateDuplicateLinksPlugin.php index e1c2d1d623..acd7be7eb7 100644 --- a/app/Module/BatchUpdate/BatchUpdateDuplicateLinksPlugin.php +++ b/app/Module/BatchUpdate/BatchUpdateDuplicateLinksPlugin.php @@ -21,66 +21,79 @@ use Fisharebest\Webtrees\I18N; /** * Class BatchUpdateDuplicateLinksPlugin Batch Update plugin: remove duplicate links in records */ -class BatchUpdateDuplicateLinksPlugin extends BatchUpdateBasePlugin { - /** - * User-friendly name for this plugin. - * - * @return string - */ - public function getName() { - return I18N::translate('Remove duplicate links'); - } +class BatchUpdateDuplicateLinksPlugin extends BatchUpdateBasePlugin +{ + /** + * User-friendly name for this plugin. + * + * @return string + */ + public function getName() + { + return I18N::translate('Remove duplicate links'); + } - /** - * Description / help-text for this plugin. - * - * @return string - */ - public function getDescription() { - return I18N::translate('A common error is to have multiple links to the same record, for example listing the same child more than once in a family record.'); - } + /** + * Description / help-text for this plugin. + * + * @return string + */ + public function getDescription() + { + return I18N::translate('A common error is to have multiple links to the same record, for example listing the same child more than once in a family record.'); + } - /** - * This plugin will update all types of record. - * - * @return string[] - */ - public function getRecordTypesToUpdate() { - return ['INDI', 'FAM', 'SOUR', 'REPO', 'NOTE', 'OBJE']; - } + /** + * This plugin will update all types of record. + * + * @return string[] + */ + public function getRecordTypesToUpdate() + { + return [ + 'INDI', + 'FAM', + 'SOUR', + 'REPO', + 'NOTE', + 'OBJE', + ]; + } - /** - * Does this record need updating? - * - * @param GedcomRecord $record - * - * @return bool - */ - public function doesRecordNeedUpdate(GedcomRecord $record): bool { - $gedcom = $record->getGedcom(); + /** + * Does this record need updating? + * + * @param GedcomRecord $record + * + * @return bool + */ + public function doesRecordNeedUpdate(GedcomRecord $record): bool + { + $gedcom = $record->getGedcom(); - return - preg_match('/(\n1.*@.+@.*(?:(?:\n[2-9].*)*))(?:\n1.*(?:\n[2-9].*)*)*\1/', $gedcom) || - preg_match('/(\n2.*@.+@.*(?:(?:\n[3-9].*)*))(?:\n2.*(?:\n[3-9].*)*)*\1/', $gedcom) || - preg_match('/(\n3.*@.+@.*(?:(?:\n[4-9].*)*))(?:\n3.*(?:\n[4-9].*)*)*\1/', $gedcom); - } + return + preg_match('/(\n1.*@.+@.*(?:(?:\n[2-9].*)*))(?:\n1.*(?:\n[2-9].*)*)*\1/', $gedcom) || + preg_match('/(\n2.*@.+@.*(?:(?:\n[3-9].*)*))(?:\n2.*(?:\n[3-9].*)*)*\1/', $gedcom) || + preg_match('/(\n3.*@.+@.*(?:(?:\n[4-9].*)*))(?:\n3.*(?:\n[4-9].*)*)*\1/', $gedcom); + } - /** - * Apply any updates to this record - * - * @param GedcomRecord $record - * - * @return string - */ - public function updateRecord(GedcomRecord $record): string { - $old_gedcom = $record->getGedcom(); + /** + * Apply any updates to this record + * + * @param GedcomRecord $record + * + * @return string + */ + public function updateRecord(GedcomRecord $record): string + { + $old_gedcom = $record->getGedcom(); - $new_gedcom = preg_replace([ - '/(\n1.*@.+@.*(?:(?:\n[2-9].*)*))((?:\n1.*(?:\n[2-9].*)*)*\1)/', - '/(\n2.*@.+@.*(?:(?:\n[3-9].*)*))((?:\n2.*(?:\n[3-9].*)*)*\1)/', - '/(\n3.*@.+@.*(?:(?:\n[4-9].*)*))((?:\n3.*(?:\n[4-9].*)*)*\1)/', - ], '$2', $old_gedcom); + $new_gedcom = preg_replace([ + '/(\n1.*@.+@.*(?:(?:\n[2-9].*)*))((?:\n1.*(?:\n[2-9].*)*)*\1)/', + '/(\n2.*@.+@.*(?:(?:\n[3-9].*)*))((?:\n2.*(?:\n[3-9].*)*)*\1)/', + '/(\n3.*@.+@.*(?:(?:\n[4-9].*)*))((?:\n3.*(?:\n[4-9].*)*)*\1)/', + ], '$2', $old_gedcom); - return $new_gedcom; - } + return $new_gedcom; + } } |
