1ef21b467SGreg Roach<?php 23976b470SGreg Roach 3ef21b467SGreg Roach/** 4ef21b467SGreg Roach * webtrees: online genealogy 5*d11be702SGreg Roach * Copyright (C) 2023 webtrees development team 6ef21b467SGreg Roach * This program is free software: you can redistribute it and/or modify 7ef21b467SGreg Roach * it under the terms of the GNU General Public License as published by 8ef21b467SGreg Roach * the Free Software Foundation, either version 3 of the License, or 9ef21b467SGreg Roach * (at your option) any later version. 10ef21b467SGreg Roach * This program is distributed in the hope that it will be useful, 11ef21b467SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 12ef21b467SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13ef21b467SGreg Roach * GNU General Public License for more details. 14ef21b467SGreg Roach * You should have received a copy of the GNU General Public License 1589f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>. 16ef21b467SGreg Roach */ 17fcfa147eSGreg Roach 18e7f56f2aSGreg Roachdeclare(strict_types=1); 1915d603e7SGreg Roach 20ef21b467SGreg Roachnamespace Fisharebest\Webtrees\Census; 21ef21b467SGreg Roach 22ef21b467SGreg Roachuse Fisharebest\Webtrees\Individual; 23ef21b467SGreg Roach 2410e06497SGreg Roachuse function strlen; 2510e06497SGreg Roach 26ef21b467SGreg Roach/** 27ef21b467SGreg Roach * The individual's birth place. 28ef21b467SGreg Roach */ 29c1010edaSGreg Roachclass CensusColumnBirthPlace extends AbstractCensusColumn implements CensusColumnInterface 30c1010edaSGreg Roach{ 31ef21b467SGreg Roach /** 32ef21b467SGreg Roach * Generate the likely value of this census column, based on available information. 33ef21b467SGreg Roach * 34ef21b467SGreg Roach * @param Individual $individual 3515d603e7SGreg Roach * @param Individual $head 36ef21b467SGreg Roach * 37ef21b467SGreg Roach * @return string 38ef21b467SGreg Roach */ 395a62e0a6SGreg Roach public function generate(Individual $individual, Individual $head): string 40c1010edaSGreg Roach { 41392561bbSGreg Roach $birth_place = $individual->getBirthPlace()->gedcomName(); 42ef21b467SGreg Roach $census_place = $this->place(); 43ef21b467SGreg Roach 44ef21b467SGreg Roach // Ignore the census country 45ef21b467SGreg Roach if ($birth_place === $census_place) { 46ef21b467SGreg Roach return ''; 47ef21b467SGreg Roach } 48ef21b467SGreg Roach 49ad51e0bbSGreg Roach if (substr($birth_place, -strlen($census_place) - 2) === ', ' . $census_place) { 50ef21b467SGreg Roach return substr($birth_place, 0, -strlen($census_place) - 2); 51ef21b467SGreg Roach } 52b2ce94c6SRico Sonntag 53b2ce94c6SRico Sonntag return $birth_place; 54ef21b467SGreg Roach } 55ef21b467SGreg Roach} 56