execute(array(WT_GED_ID, $search))->fetchAll(); foreach ($rows as $row) { $record = WT_Individual::getInstance($row->xref, $row->gedcom_id, $row->gedcom); foreach ($record->getFacts() as $fact) { $old_place = $fact->getAttribute('PLAC'); if (preg_match('/(^|, )' . preg_quote($search, '/') . '$/i', $old_place)) { $new_place = preg_replace('/(^|, )' . preg_quote($search, '/') . '$/i', '$1' . $replace, $old_place); $changes[$old_place] = $new_place; if ($confirm == 'update') { $gedcom = preg_replace('/(\n2 PLAC (?:.*, )*)' . preg_quote($search, '/') . '(\n|$)/i', '$1' . $replace . '$2', $fact->getGedcom()); $record->updateFact($fact->getFactId(), $gedcom, false); } } } } $rows = WT_DB::prepare( "SELECT f_id AS xref, f_file AS gedcom_id, f_gedcom AS gedcom". " FROM `##families`". " LEFT JOIN `##change` ON (f_id = xref AND f_file=gedcom_id AND status='pending')". " WHERE COALESCE(new_gedcom, f_gedcom) REGEXP CONCAT('\n2 PLAC ([^\n]*, )*', ?, '(\n|$)')" )->execute(array($search))->fetchAll(); foreach ($rows as $row) { $record = WT_Family::getInstance($row->xref, $row->gedcom_id, $row->gedcom); foreach ($record->getFacts() as $fact) { $old_place = $fact->getAttribute('PLAC'); if (preg_match('/(^|, )' . preg_quote($search, '/') . '$/i', $old_place)) { $new_place = preg_replace('/(^|, )' . preg_quote($search, '/') . '$/i', '$1' . $replace, $old_place); $changes[$old_place] = $new_place; if ($confirm == 'update') { $gedcom = preg_replace('/(\n2 PLAC (?:.*, )*)' . preg_quote($search, '/') . '(\n|$)/i', '$1' . $replace . '$2', $fact->getGedcom()); $record->updateFact($fact->getFactId(), $gedcom, false); } } } } } $controller = new WT_Controller_Page(); $controller ->restrictAccess(Auth::isManager()) ->setPageTitle(WT_I18N::translate('Administration - place edit')) ->pageHeader(); ?>