diff options
Diffstat (limited to 'app/Module')
| -rw-r--r-- | app/Module/ClippingsCartModule.php | 13 | ||||
| -rw-r--r-- | app/Module/FixPrimaryTag.php | 15 | ||||
| -rw-r--r-- | app/Module/IndividualFactsTabModule.php | 27 | ||||
| -rw-r--r-- | app/Module/MediaListModule.php | 47 | ||||
| -rw-r--r-- | app/Module/SlideShowModule.php | 18 |
5 files changed, 82 insertions, 38 deletions
diff --git a/app/Module/ClippingsCartModule.php b/app/Module/ClippingsCartModule.php index c860d03950..16a4e9a593 100644 --- a/app/Module/ClippingsCartModule.php +++ b/app/Module/ClippingsCartModule.php @@ -19,7 +19,6 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; -use Aura\Router\Route; use Fisharebest\Webtrees\Auth; use Fisharebest\Webtrees\Encodings\ANSEL; use Fisharebest\Webtrees\Encodings\ASCII; @@ -46,6 +45,7 @@ use Fisharebest\Webtrees\Note; use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\Repository; use Fisharebest\Webtrees\Services\GedcomExportService; +use Fisharebest\Webtrees\Services\LinkedRecordService; use Fisharebest\Webtrees\Session; use Fisharebest\Webtrees\Source; use Fisharebest\Webtrees\Submitter; @@ -116,6 +116,8 @@ class ClippingsCartModule extends AbstractModule implements ModuleMenuInterface private GedcomExportService $gedcom_export_service; + private LinkedRecordService $linked_record_service; + private ResponseFactoryInterface $response_factory; private StreamFactoryInterface $stream_factory; @@ -124,15 +126,18 @@ class ClippingsCartModule extends AbstractModule implements ModuleMenuInterface * ClippingsCartModule constructor. * * @param GedcomExportService $gedcom_export_service + * @param LinkedRecordService $linked_record_service * @param ResponseFactoryInterface $response_factory * @param StreamFactoryInterface $stream_factory */ public function __construct( GedcomExportService $gedcom_export_service, + LinkedRecordService $linked_record_service, ResponseFactoryInterface $response_factory, StreamFactoryInterface $stream_factory ) { $this->gedcom_export_service = $gedcom_export_service; + $this->linked_record_service = $linked_record_service; $this->response_factory = $response_factory; $this->stream_factory = $stream_factory; } @@ -904,7 +909,7 @@ class ClippingsCartModule extends AbstractModule implements ModuleMenuInterface $this->addRepositoryToCart($repository); - foreach ($repository->linkedSources('REPO') as $source) { + foreach ($this->linked_record_service->linkedSources($repository) as $source) { $this->addSourceToCart($source); } @@ -961,10 +966,10 @@ class ClippingsCartModule extends AbstractModule implements ModuleMenuInterface $this->addSourceToCart($source); if ($option === self::ADD_LINKED_INDIVIDUALS) { - foreach ($source->linkedIndividuals('SOUR') as $individual) { + foreach ($this->linked_record_service->linkedIndividuals($source) as $individual) { $this->addIndividualToCart($individual); } - foreach ($source->linkedFamilies('SOUR') as $family) { + foreach ($this->linked_record_service->linkedFamilies($source) as $family) { $this->addFamilyToCart($family); } } diff --git a/app/Module/FixPrimaryTag.php b/app/Module/FixPrimaryTag.php index 9f3ed91a51..f850f6006d 100644 --- a/app/Module/FixPrimaryTag.php +++ b/app/Module/FixPrimaryTag.php @@ -23,6 +23,7 @@ use Fisharebest\Webtrees\Fact; use Fisharebest\Webtrees\GedcomRecord; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Individual; +use Fisharebest\Webtrees\Services\LinkedRecordService; use Fisharebest\Webtrees\Tree; use Illuminate\Support\Collection; @@ -37,6 +38,16 @@ class FixPrimaryTag extends AbstractModule implements ModuleDataFixInterface { use ModuleDataFixTrait; + private LinkedRecordService $linked_record_service; + + /** + * @param LinkedRecordService $linked_record_service + */ + public function __construct(LinkedRecordService $linked_record_service) + { + $this->linked_record_service = $linked_record_service; + } + /** * How should this module be identified in the control panel, etc.? * @@ -104,7 +115,7 @@ class FixPrimaryTag extends AbstractModule implements ModuleDataFixInterface } $html .= '<ul>'; - foreach ($record->linkedIndividuals('OBJE') as $individual) { + foreach ($this->linked_record_service->linkedIndividuals($record) as $individual) { $html .= '<li>' . I18N::translate('Re-order media') . ' – <a href="' . e($individual->url()) . '">' . $individual->fullName() . '</a></li>'; } $html .= '</ul>'; @@ -129,7 +140,7 @@ class FixPrimaryTag extends AbstractModule implements ModuleDataFixInterface foreach ($facts as $fact) { $primary = strtoupper($fact->value()) !== 'N'; - foreach ($record->linkedIndividuals('OBJE') as $individual) { + foreach ($this->linked_record_service->linkedIndividuals($record) as $individual) { $this->updateMediaLinks($individual, $record->xref(), $primary); } diff --git a/app/Module/IndividualFactsTabModule.php b/app/Module/IndividualFactsTabModule.php index c6158d1fa5..d7313839bd 100644 --- a/app/Module/IndividualFactsTabModule.php +++ b/app/Module/IndividualFactsTabModule.php @@ -26,6 +26,7 @@ use Fisharebest\Webtrees\Family; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Individual; use Fisharebest\Webtrees\Services\ClipboardService; +use Fisharebest\Webtrees\Services\LinkedRecordService; use Fisharebest\Webtrees\Services\ModuleService; use Illuminate\Support\Collection; @@ -43,20 +44,24 @@ class IndividualFactsTabModule extends AbstractModule implements ModuleTabInterf { use ModuleTabTrait; - private ModuleService $module_service; - private ClipboardService $clipboard_service; + private LinkedRecordService $linked_record_service; + + private ModuleService $module_service; + /** * IndividualFactsTabModule constructor. * - * @param ModuleService $module_service - * @param ClipboardService $clipboard_service + * @param ModuleService $module_service + * @param LinkedRecordService $linked_record_service + * @param ClipboardService $clipboard_service */ - public function __construct(ModuleService $module_service, ClipboardService $clipboard_service) + public function __construct(ModuleService $module_service, LinkedRecordService $linked_record_service, ClipboardService $clipboard_service) { - $this->module_service = $module_service; - $this->clipboard_service = $clipboard_service; + $this->clipboard_service = $clipboard_service; + $this->linked_record_service = $linked_record_service; + $this->module_service = $module_service; } /** @@ -879,10 +884,10 @@ class IndividualFactsTabModule extends AbstractModule implements ModuleTabInterf { $facts = []; - $asso1 = $person->linkedIndividuals('ASSO'); - $asso2 = $person->linkedIndividuals('_ASSO'); - $asso3 = $person->linkedFamilies('ASSO'); - $asso4 = $person->linkedFamilies('_ASSO'); + $asso1 = $this->linked_record_service->linkedIndividuals($person, 'ASSO'); + $asso2 = $this->linked_record_service->linkedIndividuals($person, '_ASSO'); + $asso3 = $this->linked_record_service->linkedFamilies($person, 'ASSO'); + $asso4 = $this->linked_record_service->linkedFamilies($person, '_ASSO'); $associates = $asso1->merge($asso2)->merge($asso3)->merge($asso4); diff --git a/app/Module/MediaListModule.php b/app/Module/MediaListModule.php index b3c980dc5c..7afe2c6323 100644 --- a/app/Module/MediaListModule.php +++ b/app/Module/MediaListModule.php @@ -19,13 +19,13 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; -use Aura\Router\RouterContainer; use Fig\Http\Message\RequestMethodInterface; use Fisharebest\Webtrees\Auth; -use Fisharebest\Webtrees\Registry; use Fisharebest\Webtrees\GedcomRecord; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Media; +use Fisharebest\Webtrees\Registry; +use Fisharebest\Webtrees\Services\LinkedRecordService; use Fisharebest\Webtrees\Tree; use Fisharebest\Webtrees\Validator; use Illuminate\Database\Capsule\Manager as DB; @@ -37,10 +37,8 @@ use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use function addcslashes; -use function app; use function array_combine; use function array_unshift; -use function assert; use function dirname; use function max; use function min; @@ -56,6 +54,16 @@ class MediaListModule extends AbstractModule implements ModuleListInterface, Req protected const ROUTE_URL = '/tree/{tree}/media-list'; + private LinkedRecordService $linked_record_service; + + /** + * @param LinkedRecordService $linked_record_service + */ + public function __construct(LinkedRecordService $linked_record_service) + { + $this->linked_record_service = $linked_record_service; + } + /** * Initialization. * @@ -199,21 +207,22 @@ class MediaListModule extends AbstractModule implements ModuleListInterface, Req $media_objects = $media_objects->slice(($page - 1) * $max, $max); return $this->viewResponse('modules/media-list/page', [ - 'count' => $count, - 'filter' => $filter, - 'folder' => $folder, - 'folders' => $folders, - 'format' => $format, - 'formats' => $formats, - 'max' => $max, - 'media_objects' => $media_objects, - 'page' => $page, - 'pages' => $pages, - 'subdirs' => $subdirs, - 'data_filesystem' => $data_filesystem, - 'module' => $this, - 'title' => I18N::translate('Media'), - 'tree' => $tree, + 'count' => $count, + 'filter' => $filter, + 'folder' => $folder, + 'folders' => $folders, + 'format' => $format, + 'formats' => $formats, + 'linked_record_service' => $this->linked_record_service, + 'max' => $max, + 'media_objects' => $media_objects, + 'page' => $page, + 'pages' => $pages, + 'subdirs' => $subdirs, + 'data_filesystem' => $data_filesystem, + 'module' => $this, + 'title' => I18N::translate('Media'), + 'tree' => $tree, ]); } diff --git a/app/Module/SlideShowModule.php b/app/Module/SlideShowModule.php index 45fe4f723c..0ccbecc3b1 100644 --- a/app/Module/SlideShowModule.php +++ b/app/Module/SlideShowModule.php @@ -22,6 +22,7 @@ namespace Fisharebest\Webtrees\Module; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Media; use Fisharebest\Webtrees\Registry; +use Fisharebest\Webtrees\Services\LinkedRecordService; use Fisharebest\Webtrees\Tree; use Illuminate\Database\Capsule\Manager as DB; use Illuminate\Database\Query\JoinClause; @@ -49,6 +50,16 @@ class SlideShowModule extends AbstractModule implements ModuleBlockInterface // How long to show each slide (seconds) private const DELAY = 6; + private LinkedRecordService $linked_record_service; + + /** + * @param LinkedRecordService $linked_record_service + */ + public function __construct(LinkedRecordService $linked_record_service) + { + $this->linked_record_service = $linked_record_service; + } + /** * A sentence describing what this module does. * @@ -119,7 +130,7 @@ class SlideShowModule extends AbstractModule implements ModuleBlockInterface ->select('media.*') ->get() ->shuffle() - ->first(static function (object $row) use ($filter_links, $tree): bool { + ->first(function (object $row) use ($filter_links, $tree): bool { $media = Registry::mediaFactory()->make($row->m_id, $tree, $row->m_gedcom); assert($media instanceof Media); @@ -127,7 +138,7 @@ class SlideShowModule extends AbstractModule implements ModuleBlockInterface return false; } - foreach ($media->linkedIndividuals('OBJE') as $individual) { + foreach ($this->linked_record_service->linkedIndividuals($media) as $individual) { switch ($filter_links) { case self::LINK_ALL: return true; @@ -153,6 +164,9 @@ class SlideShowModule extends AbstractModule implements ModuleBlockInterface $content = view('modules/random_media/slide-show', [ 'block_id' => $block_id, 'delay' => self::DELAY, + 'linked_families' => $this->linked_record_service->linkedFamilies($random_media), + 'linked_individuals' => $this->linked_record_service->linkedIndividuals($random_media), + 'linked_sources' => $this->linked_record_service->linkedSources($random_media), 'media' => $random_media, 'media_file' => $random_media->firstImageFile(), 'show_controls' => $controls, |
