Skip to content

Commit

Permalink
https://github.com/UksusoFF/webtrees-faces/issues/70
Browse files Browse the repository at this point in the history
  • Loading branch information
Kirill Uksusov committed Apr 21, 2023
1 parent a0cfae0 commit 532195f
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 10 deletions.
7 changes: 5 additions & 2 deletions resources/views/templates.phtml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@ use Fisharebest\Webtrees\I18N;
<script type="javascript/template" id="faces-tooltip-template">
<div class="faces-tooltip-wrapper">
<p class="faces-tooltip-name">{%=o.person.name%}</p>
<p class="faces-tooltip-life">{%=o.person.life%}</p>
<p class="faces-tooltip-life">
{%=o.person.age%}<br />
{%=o.person.life%}
</p>
</div>
</script>
<script type="javascript/template" id="faces-person-template">
Expand All @@ -77,4 +80,4 @@ use Fisharebest\Webtrees\I18N;
data-name="{%=o.person.name%}">(&times;)</span>
{% } %}
</span>
</script>
</script>
38 changes: 31 additions & 7 deletions src/Http/Controllers/DataController.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@
use Fisharebest\Webtrees\Services\LinkedRecordService;
use Fisharebest\Webtrees\Tree;
use Fisharebest\Webtrees\Webtrees;
use Illuminate\Support\Collection;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\RequestHandlerInterface;
use UksusoFF\WebtreesModules\Faces\Wrappers\FactWrapper;
use UksusoFF\WebtreesModules\Faces\Helpers\ExifHelper;
use UksusoFF\WebtreesModules\Faces\Modules\FacesModule;
use UksusoFF\WebtreesModules\Faces\Wrappers\FactWrapper;

class DataController implements RequestHandlerInterface
{
Expand Down Expand Up @@ -174,6 +175,7 @@ private function getMediaMapForTree(Media $media, string $fact): array
$result = [];
$pids = [];
$areas = $this->getMediaMap($media, $fact);
$priorFact = $this->getMediaFacts($media)->first();

foreach ($areas as $area) {
$pid = (string)$area['pid'];
Expand Down Expand Up @@ -201,10 +203,10 @@ private function getMediaMapForTree(Media $media, string $fact): array
? $person->url()
: null,
'name' => $public
? html_entity_decode(strip_tags(str_replace([
'<q class="wt-nickname">',
'</q>',
], '"', $person->fullName())), ENT_QUOTES)
? $this->getPersonDisplayName($person, $priorFact)
: I18N::translate('Private'),
'age' => $public
? $this->getPersonDisplayAge($person, $priorFact)
: I18N::translate('Private'),
'life' => $public
? strip_tags($person->lifespan())
Expand All @@ -219,6 +221,23 @@ private function getMediaMapForTree(Media $media, string $fact): array
return $result;
}

private function getPersonDisplayName(Individual $person, ?Fact $fact): string
{
return html_entity_decode(strip_tags(str_replace([
'<q class="wt-nickname">',
'</q>',
], '"', $person->fullName())), ENT_QUOTES);
}

private function getPersonDisplayAge(Individual $person, ?Fact $fact): string
{
$view = view('fact-date', ['cal_link' => false, 'fact' => $fact, 'record' => $person, 'time' => false]);

preg_match('#\((.*?)\)#', $view, $match);

return head($match);
}

private function getMediaTitle(Media $media, string $fact): string
{
[$file, $order] = $this->module->media->getMediaImageFileByFact($media, $fact);
Expand All @@ -232,7 +251,7 @@ private function getMediaTitle(Media $media, string $fact): string
: $file->filename();
}

private function getMediaMeta(Media $media): array
private function getMediaFacts(Media $media): Collection
{
return $this->links->linkedIndividuals($media, 'OBJE')
->flatMap(function(Individual $individual) use ($media) {
Expand All @@ -246,7 +265,12 @@ private function getMediaMeta(Media $media): array
})
->unique(function(Fact $fact) {
return $fact->attribute('DATE');
})
});
}

private function getMediaMeta(Media $media): array
{
return $this->getMediaFacts($media)
->map(function(Fact $fact) {
return array_filter([
$fact->attribute('PLAC'),
Expand Down
2 changes: 1 addition & 1 deletion src/Wrappers/FactWrapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ public static function getMedia(Fact $fact): array

return $media;
}
}
}

0 comments on commit 532195f

Please sign in to comment.