Skip to content

Commit

Permalink
Rewrite the GEDCOM error check. Fixes: fisharebest#4255. Fixes fishar…
Browse files Browse the repository at this point in the history
  • Loading branch information
fisharebest authored and ddrury committed Apr 21, 2022
1 parent 3c9ba1d commit 0807706
Show file tree
Hide file tree
Showing 7 changed files with 288 additions and 201 deletions.
45 changes: 25 additions & 20 deletions app/Gedcom.php
Expand Up @@ -19,6 +19,7 @@

namespace Fisharebest\Webtrees;

use Fisharebest\Webtrees\Contracts\ElementFactoryInterface;
use Fisharebest\Webtrees\Contracts\ElementInterface;
use Fisharebest\Webtrees\Elements\AddressCity;
use Fisharebest\Webtrees\Elements\AddressCountry;
Expand Down Expand Up @@ -1784,31 +1785,35 @@ private function customSubTags(): array
return $subtags;
}

public function registerTags(): void
public function registerTags(ElementFactoryInterface $element_factory, bool $include_custom_tags): void
{
// Standard GEDCOM.
Registry::elementFactory()->registerTags($this->gedcom551Tags());
$element_factory->registerTags($this->gedcom551Tags());

// webtrees extensions.
Registry::elementFactory()->registerTags($this->webtreesTags());
Registry::elementFactory()->registerSubTags($this->webtreesSubTags());
$element_factory->registerTags($this->webtreesTags());

// Third-party extensions.
Registry::elementFactory()->registerTags($this->ancestryTags());
Registry::elementFactory()->registerTags($this->brothersKeeperTags());
Registry::elementFactory()->registerTags($this->familySearchTags());
Registry::elementFactory()->registerTags($this->familyTreeBuilderTags());
Registry::elementFactory()->registerTags($this->familyTreeMakerTags());
Registry::elementFactory()->registerTags($this->gedcomLTags());
Registry::elementFactory()->registerTags($this->genPlusWinTags());
Registry::elementFactory()->registerTags($this->legacyTags());
Registry::elementFactory()->registerTags($this->personalAncestralFileTags());
Registry::elementFactory()->registerTags($this->phpGedViewTags());
Registry::elementFactory()->registerTags($this->reunionTags());
Registry::elementFactory()->registerTags($this->rootsMagicTags());
Registry::elementFactory()->registerTags($this->theMasterGenealogistTags());
if ($include_custom_tags) {
// webtrees extensions.
$element_factory->registerSubTags($this->webtreesSubTags());

// Creating tags from all the above are grouped into one place
Registry::elementFactory()->registerSubTags($this->customSubTags());
// Third-party extensions.
$element_factory->registerTags($this->ancestryTags());
$element_factory->registerTags($this->brothersKeeperTags());
$element_factory->registerTags($this->familySearchTags());
$element_factory->registerTags($this->familyTreeBuilderTags());
$element_factory->registerTags($this->familyTreeMakerTags());
$element_factory->registerTags($this->gedcomLTags());
$element_factory->registerTags($this->genPlusWinTags());
$element_factory->registerTags($this->legacyTags());
$element_factory->registerTags($this->personalAncestralFileTags());
$element_factory->registerTags($this->phpGedViewTags());
$element_factory->registerTags($this->reunionTags());
$element_factory->registerTags($this->rootsMagicTags());
$element_factory->registerTags($this->theMasterGenealogistTags());

// Creating tags from all the above are grouped into one place
$element_factory->registerSubTags($this->customSubTags());
}
}
}
3 changes: 2 additions & 1 deletion app/Http/Middleware/RegisterGedcomTags.php
Expand Up @@ -20,6 +20,7 @@
namespace Fisharebest\Webtrees\Http\Middleware;

use Fisharebest\Webtrees\Gedcom;
use Fisharebest\Webtrees\Registry;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
Expand Down Expand Up @@ -48,7 +49,7 @@ public function __construct(Gedcom $gedcom)
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->gedcom->registerTags();
$this->gedcom->registerTags(Registry::elementFactory(), true);

return $handler->handle($request);
}
Expand Down

0 comments on commit 0807706

Please sign in to comment.