summaryrefslogtreecommitdiff
path: root/app/Module
diff options
context:
space:
mode:
Diffstat (limited to 'app/Module')
-rw-r--r--app/Module/ClippingsCartModule.php13
-rw-r--r--app/Module/FixPrimaryTag.php15
-rw-r--r--app/Module/IndividualFactsTabModule.php27
-rw-r--r--app/Module/MediaListModule.php47
-rw-r--r--app/Module/SlideShowModule.php18
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,