. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Elements; use Fisharebest\Webtrees\Census\Census as Censuses; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Individual; use Fisharebest\Webtrees\Module\CensusAssistantModule; use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Services\ModuleService; use Fisharebest\Webtrees\Tree; use Psr\Http\Message\ServerRequestInterface; /** * Census */ class Census extends AbstractElement { protected const SUBTAGS = [ 'DATE' => '0:1', 'AGE' => '0:1', 'PLAC' => '0:1', 'NOTE' => '0:M', 'OBJE' => '0:M', 'SOUR' => '0:M', 'RESN' => '0:1', ]; /** * An edit control for this data. * * @param string $id * @param string $name * @param string $value * @param Tree $tree * * @return string */ public function edit(string $id, string $name, string $value, Tree $tree): string { $html = $this->editHidden($id, $name, $value) . view('modules/GEDFact_assistant/select-census', [ 'census_places' => Censuses::censusPlaces(I18N::languageTag()), ]); $xref=app(ServerRequestInterface::class)->getAttribute('xref', ''); $census_assistant = app(ModuleService::class)->findByInterface(CensusAssistantModule::class)->first(); $record = Registry::individualFactory()->make($xref, $tree); if ($census_assistant instanceof CensusAssistantModule && $record instanceof Individual) { $html .= $census_assistant->createCensusAssistant($record); } return $html; } }