summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-01-25 17:15:10 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-01-25 19:09:59 +0000
commit9cad76450e19b542a70c3dfaef6fe5a028eaee70 (patch)
tree54e8c2173a6a661a19b790dddd73d9d7b68b8e25
parent37eb8894d5d4381f3fd9b791a53a32f0012b32ec (diff)
downloadwebtrees-9cad76450e19b542a70c3dfaef6fe5a028eaee70.tar.gz
webtrees-9cad76450e19b542a70c3dfaef6fe5a028eaee70.tar.bz2
webtrees-9cad76450e19b542a70c3dfaef6fe5a028eaee70.zip
Refactor core/custom modules
-rw-r--r--app/Http/Controllers/AdminController.php1
-rw-r--r--app/Http/Controllers/ReportEngineController.php50
-rw-r--r--app/Module.php236
-rw-r--r--modules_v4/GEDFact_assistant/module.php22
-rw-r--r--modules_v4/README.md118
-rw-r--r--modules_v4/ahnentafel_report/module.php22
-rw-r--r--modules_v4/ancestors_chart/module.php22
-rw-r--r--modules_v4/batch_update/module.php22
-rw-r--r--modules_v4/bdm_report/module.php22
-rw-r--r--modules_v4/birth_report/module.php22
-rw-r--r--modules_v4/calendar_menu/module.php22
-rw-r--r--modules_v4/cemetery_report/module.php22
-rw-r--r--modules_v4/change_report/module.php22
-rw-r--r--modules_v4/charts/module.php22
-rw-r--r--modules_v4/charts_menu/module.php22
-rw-r--r--modules_v4/ckeditor/module.php22
-rw-r--r--modules_v4/clippings/module.php22
-rw-r--r--modules_v4/compact-chart/module.php22
-rw-r--r--modules_v4/custom.example/module.php62
-rw-r--r--modules_v4/death_report/module.php22
-rw-r--r--modules_v4/descendancy/module.php22
-rw-r--r--modules_v4/descendancy_chart/module.php22
-rw-r--r--modules_v4/descendancy_report/module.php22
-rw-r--r--modules_v4/extra_info/module.php22
-rw-r--r--modules_v4/fact_sources/module.php22
-rw-r--r--modules_v4/family_book_chart/module.php22
-rw-r--r--modules_v4/family_group_report/module.php22
-rw-r--r--modules_v4/family_nav/module.php22
-rw-r--r--modules_v4/fan_chart/module.php22
-rw-r--r--modules_v4/faq/module.php22
-rw-r--r--modules_v4/gedcom_block/module.php22
-rw-r--r--modules_v4/gedcom_favorites/module.php22
-rw-r--r--modules_v4/gedcom_news/module.php22
-rw-r--r--modules_v4/gedcom_stats/module.php22
-rw-r--r--modules_v4/hourglass_chart/module.php22
-rw-r--r--modules_v4/html/module.php22
-rw-r--r--modules_v4/individual_ext_report/module.php22
-rw-r--r--modules_v4/individual_report/module.php22
-rw-r--r--modules_v4/lifespans_chart/module.php22
-rw-r--r--modules_v4/lightbox/module.php22
-rw-r--r--modules_v4/lists_menu/module.php22
-rw-r--r--modules_v4/logged_in/module.php22
-rw-r--r--modules_v4/login_block/module.php22
-rw-r--r--modules_v4/marriage_report/module.php22
-rw-r--r--modules_v4/media/module.php22
-rw-r--r--modules_v4/missing_facts_report/module.php22
-rw-r--r--modules_v4/notes/module.php22
-rw-r--r--modules_v4/occupation_report/module.php22
-rw-r--r--modules_v4/pedigree-map/module.php22
-rw-r--r--modules_v4/pedigree_chart/module.php22
-rw-r--r--modules_v4/pedigree_report/module.php22
-rw-r--r--modules_v4/personal_facts/module.php22
-rw-r--r--modules_v4/places/module.php22
-rw-r--r--modules_v4/random_media/module.php22
-rw-r--r--modules_v4/recent_changes/module.php22
-rw-r--r--modules_v4/relationships_chart/module.php22
-rw-r--r--modules_v4/relative_ext_report/module.php22
-rw-r--r--modules_v4/relatives/module.php22
-rw-r--r--modules_v4/reports_menu/module.php22
-rw-r--r--modules_v4/review_changes/module.php22
-rw-r--r--modules_v4/search_menu/module.php22
-rw-r--r--modules_v4/sitemap/module.php22
-rw-r--r--modules_v4/sources_tab/module.php22
-rw-r--r--modules_v4/statistics_chart/module.php22
-rw-r--r--modules_v4/stories/module.php22
-rw-r--r--modules_v4/theme_select/module.php22
-rw-r--r--modules_v4/timeline_chart/module.php22
-rw-r--r--modules_v4/todays_events/module.php22
-rw-r--r--modules_v4/todo/module.php22
-rw-r--r--modules_v4/top10_givnnames/module.php22
-rw-r--r--modules_v4/top10_pageviews/module.php22
-rw-r--r--modules_v4/top10_surnames/module.php22
-rw-r--r--modules_v4/trees_menu/module.php22
-rw-r--r--modules_v4/upcoming_events/module.php22
-rw-r--r--modules_v4/user_blog/module.php22
-rw-r--r--modules_v4/user_favorites/module.php22
-rw-r--r--modules_v4/user_messages/module.php22
-rw-r--r--modules_v4/user_welcome/module.php22
-rw-r--r--modules_v4/yahrzeit/module.php22
-rw-r--r--resources/views/admin/modules.phtml3
-rw-r--r--resources/views/report-select-page.phtml6
-rw-r--r--resources/xml/reports/ahnentafel_report.xml (renamed from modules_v4/ahnentafel_report/report.xml)0
-rw-r--r--resources/xml/reports/bdm_report.xml (renamed from modules_v4/bdm_report/report.xml)0
-rw-r--r--resources/xml/reports/birth_report.xml (renamed from modules_v4/birth_report/report.xml)0
-rw-r--r--resources/xml/reports/cemetery_report.xml (renamed from modules_v4/cemetery_report/report.xml)0
-rw-r--r--resources/xml/reports/change_report.xml (renamed from modules_v4/change_report/report.xml)0
-rw-r--r--resources/xml/reports/death_report.xml (renamed from modules_v4/death_report/report.xml)0
-rw-r--r--resources/xml/reports/descendancy_report.xml (renamed from modules_v4/descendancy_report/report.xml)0
-rw-r--r--resources/xml/reports/fact_sources.xml (renamed from modules_v4/fact_sources/report.xml)0
-rw-r--r--resources/xml/reports/family_group_report.xml (renamed from modules_v4/family_group_report/report.xml)0
-rw-r--r--resources/xml/reports/individual_ext_report.xml (renamed from modules_v4/individual_ext_report/report.xml)0
-rw-r--r--resources/xml/reports/individual_report.xml (renamed from modules_v4/individual_report/report.xml)0
-rw-r--r--resources/xml/reports/marriage_report.xml (renamed from modules_v4/marriage_report/report.xml)0
-rw-r--r--resources/xml/reports/missing_facts_report.xml (renamed from modules_v4/missing_facts_report/report.xml)0
-rw-r--r--resources/xml/reports/occupation_report.xml (renamed from modules_v4/occupation_report/report.xml)0
-rw-r--r--resources/xml/reports/pedigree_report.xml (renamed from modules_v4/pedigree_report/report.xml)0
-rw-r--r--resources/xml/reports/relative_ext_report.xml (renamed from modules_v4/relative_ext_report/report.xml)0
97 files changed, 299 insertions, 1805 deletions
diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php
index 2fda694bb2..ee46392691 100644
--- a/app/Http/Controllers/AdminController.php
+++ b/app/Http/Controllers/AdminController.php
@@ -893,7 +893,6 @@ class AdminController extends AbstractBaseController
'title' => I18N::translate('Module administration'),
'modules' => Module::all(),
'deleted_modules' => $this->deletedModuleNames(),
- 'core_module_names' => Module::CORE_MODULES,
]);
}
diff --git a/app/Http/Controllers/ReportEngineController.php b/app/Http/Controllers/ReportEngineController.php
index af73b1cd0d..c995974995 100644
--- a/app/Http/Controllers/ReportEngineController.php
+++ b/app/Http/Controllers/ReportEngineController.php
@@ -26,16 +26,19 @@ use Fisharebest\Webtrees\Html;
use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\Individual;
use Fisharebest\Webtrees\Module;
+use Fisharebest\Webtrees\Module\ModuleReportInterface;
use Fisharebest\Webtrees\Report\ReportHtml;
use Fisharebest\Webtrees\Report\ReportParserGenerate;
use Fisharebest\Webtrees\Report\ReportParserSetup;
use Fisharebest\Webtrees\Report\ReportPdf;
use Fisharebest\Webtrees\Source;
use Fisharebest\Webtrees\Tree;
+use Fisharebest\Webtrees\User;
use Fisharebest\Webtrees\Webtrees;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
/**
* Controller for help text.
@@ -46,16 +49,16 @@ class ReportEngineController extends AbstractBaseController
* A list of available reports.
*
* @param Tree $tree
+ * @param User $user
*
* @return Response
*/
- public function reportList(Tree $tree): Response
+ public function reportList(Tree $tree, User $user): Response
{
- $reports = $this->allReports($tree);
$title = I18N::translate('Choose a report to run');
return $this->viewResponse('report-select-page', [
- 'reports' => $reports,
+ 'reports' => Module::findByComponent('report', $tree, $user),
'title' => $title,
]);
}
@@ -65,20 +68,21 @@ class ReportEngineController extends AbstractBaseController
*
* @param Request $request
* @param Tree $tree
+ * @param User $user
*
* @return Response
*/
- public function reportSetup(Request $request, Tree $tree): Response
+ public function reportSetup(Request $request, Tree $tree, User $user): Response
{
- $pid = $request->get('xref', '');
- $report = $request->get('report', '');
- $reports = $this->allReports($tree);
+ $pid = $request->get('xref', '');
+ $report = $request->get('report', '');
+ $module = Module::findByName($report);
- if (!array_key_exists($report, $reports)) {
- return $this->reportList($tree);
+ if (!$module instanceof ModuleReportInterface) {
+ return $this->reportList($tree, $user);
}
- $report_xml = WT_ROOT . Webtrees::MODULES_PATH . $report . '/report.xml';
+ $report_xml = WT_ROOT . 'resources/xml/reports/' . $module->name() . '.xml';
$report_array = (new ReportParserSetup($report_xml))->reportProperties();
$description = $report_array['description'];
@@ -188,6 +192,12 @@ class ReportEngineController extends AbstractBaseController
$varnames = $request->get('varnames');
$type = $request->get('type');
+ $module = Module::findByName($report);
+
+ if (!$module instanceof ModuleReportInterface) {
+ throw new NotFoundHttpException('Report ' . $report . ' not found.');
+ }
+
if (!is_array($vars)) {
$vars = [];
}
@@ -241,7 +251,7 @@ class ReportEngineController extends AbstractBaseController
}
}
- $report_xml = WT_ROOT . Webtrees::MODULES_PATH . $report . '/report.xml';
+ $report_xml =WT_ROOT . 'resources/xml/reports/' . $module->name() . '.xml';
switch ($output) {
@@ -276,22 +286,4 @@ class ReportEngineController extends AbstractBaseController
return $response;
}
}
-
- /**
- * A list of all available reports.
- *
- * @param Tree $tree
- *
- * @return string[]
- */
- private function allReports(Tree $tree): array
- {
- $reports = [];
-
- foreach (Module::findByComponent('report', $tree, Auth::user()) as $report) {
- $reports[$report->name()] = $report->title();
- }
-
- return $reports;
- }
}
diff --git a/app/Module.php b/app/Module.php
index c0877ce531..d190eb006b 100644
--- a/app/Module.php
+++ b/app/Module.php
@@ -18,18 +18,94 @@ declare(strict_types=1);
namespace Fisharebest\Webtrees;
use Closure;
+use Fisharebest\Webtrees\Module\AhnentafelReportModule;
+use Fisharebest\Webtrees\Module\AlbumModule;
+use Fisharebest\Webtrees\Module\AncestorsChartModule;
+use Fisharebest\Webtrees\Module\BatchUpdateModule;
use Fisharebest\Webtrees\Module\BingWebmasterToolsModule;
+use Fisharebest\Webtrees\Module\BirthDeathMarriageReportModule;
+use Fisharebest\Webtrees\Module\BirthReportModule;
+use Fisharebest\Webtrees\Module\CalendarMenuModule;
+use Fisharebest\Webtrees\Module\CemeteryReportModule;
+use Fisharebest\Webtrees\Module\CensusAssistantModule;
+use Fisharebest\Webtrees\Module\ChangeReportModule;
+use Fisharebest\Webtrees\Module\ChartsBlockModule;
+use Fisharebest\Webtrees\Module\ChartsMenuModule;
+use Fisharebest\Webtrees\Module\CkeditorModule;
+use Fisharebest\Webtrees\Module\ClippingsCartModule;
+use Fisharebest\Webtrees\Module\CompactTreeChartModule;
+use Fisharebest\Webtrees\Module\DeathReportModule;
+use Fisharebest\Webtrees\Module\DescendancyChartModule;
+use Fisharebest\Webtrees\Module\DescendancyModule;
+use Fisharebest\Webtrees\Module\DescendancyReportModule;
+use Fisharebest\Webtrees\Module\ExtraInformationModule;
+use Fisharebest\Webtrees\Module\FactSourcesReportModule;
+use Fisharebest\Webtrees\Module\FamilyBookChartModule;
+use Fisharebest\Webtrees\Module\FamilyGroupReportModule;
+use Fisharebest\Webtrees\Module\FamilyNavigatorModule;
+use Fisharebest\Webtrees\Module\FamilyTreeFavoritesModule;
+use Fisharebest\Webtrees\Module\FamilyTreeNewsModule;
+use Fisharebest\Webtrees\Module\FamilyTreeStatisticsModule;
+use Fisharebest\Webtrees\Module\FanChartModule;
+use Fisharebest\Webtrees\Module\FrequentlyAskedQuestionsModule;
use Fisharebest\Webtrees\Module\GoogleAnalyticsModule;
use Fisharebest\Webtrees\Module\GoogleWebmasterToolsModule;
+use Fisharebest\Webtrees\Module\HourglassChartModule;
+use Fisharebest\Webtrees\Module\HtmlBlockModule;
+use Fisharebest\Webtrees\Module\IndividualFactsTabModule;
+use Fisharebest\Webtrees\Module\IndividualFamiliesReportModule;
+use Fisharebest\Webtrees\Module\IndividualReportModule;
+use Fisharebest\Webtrees\Module\InteractiveTreeModule;
+use Fisharebest\Webtrees\Module\LifespansChartModule;
+use Fisharebest\Webtrees\Module\ListsMenuModule;
+use Fisharebest\Webtrees\Module\LoggedInUsersModule;
+use Fisharebest\Webtrees\Module\LoginBlockModule;
+use Fisharebest\Webtrees\Module\MarriageReportModule;
use Fisharebest\Webtrees\Module\MatomoAnalyticsModule;
+use Fisharebest\Webtrees\Module\MediaTabModule;
+use Fisharebest\Webtrees\Module\MissingFactsReportModule;
use Fisharebest\Webtrees\Module\ModuleBlockInterface;
use Fisharebest\Webtrees\Module\ModuleChartInterface;
+use Fisharebest\Webtrees\Module\ModuleCustomInterface;
use Fisharebest\Webtrees\Module\ModuleInterface;
use Fisharebest\Webtrees\Module\ModuleMenuInterface;
use Fisharebest\Webtrees\Module\ModuleReportInterface;
use Fisharebest\Webtrees\Module\ModuleSidebarInterface;
use Fisharebest\Webtrees\Module\ModuleTabInterface;
+use Fisharebest\Webtrees\Module\NotesTabModule;
+use Fisharebest\Webtrees\Module\OccupationReportModule;
+use Fisharebest\Webtrees\Module\OnThisDayModule;
+use Fisharebest\Webtrees\Module\PedigreeChartModule;
+use Fisharebest\Webtrees\Module\PedigreeMapModule;
+use Fisharebest\Webtrees\Module\PedigreeReportModule;
+use Fisharebest\Webtrees\Module\PlacesModule;
+use Fisharebest\Webtrees\Module\RecentChangesModule;
+use Fisharebest\Webtrees\Module\RelatedIndividualsReportModule;
+use Fisharebest\Webtrees\Module\RelationshipsChartModule;
+use Fisharebest\Webtrees\Module\RelativesTabModule;
+use Fisharebest\Webtrees\Module\ReportsMenuModule;
+use Fisharebest\Webtrees\Module\ResearchTaskModule;
+use Fisharebest\Webtrees\Module\ReviewChangesModule;
+use Fisharebest\Webtrees\Module\SearchMenuModule;
+use Fisharebest\Webtrees\Module\SiteMapModule;
+use Fisharebest\Webtrees\Module\SlideShowModule;
+use Fisharebest\Webtrees\Module\SourcesTabModule;
use Fisharebest\Webtrees\Module\StatcounterModule;
+use Fisharebest\Webtrees\Module\StatisticsChartModule;
+use Fisharebest\Webtrees\Module\StoriesModule;
+use Fisharebest\Webtrees\Module\ThemeSelectModule;
+use Fisharebest\Webtrees\Module\TimelineChartModule;
+use Fisharebest\Webtrees\Module\TopGivenNamesModule;
+use Fisharebest\Webtrees\Module\TopPageViewsModule;
+use Fisharebest\Webtrees\Module\TopSurnamesModule;
+use Fisharebest\Webtrees\Module\TreesMenuModule;
+use Fisharebest\Webtrees\Module\UpcomingAnniversariesModule;
+use Fisharebest\Webtrees\Module\UserFavoritesModule;
+use Fisharebest\Webtrees\Module\UserJournalModule;
+use Fisharebest\Webtrees\Module\UserMessagesModule;
+use Fisharebest\Webtrees\Module\UserWelcomeModule;
+use Fisharebest\Webtrees\Module\WelcomeBlockModule;
+use Fisharebest\Webtrees\Module\YahrzeitModule;
use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
@@ -41,85 +117,6 @@ use Throwable;
*/
class Module
{
- // We use a list of core modules to help identify custom ones.
- public const CORE_MODULES = [
- 'GEDFact_assistant',
- 'ahnentafel_report',
- 'ancestors_chart',
- 'batch_update',
- 'bdm_report',
- 'birth_report',
- 'calendar_menu',
- 'cemetery_report',
- 'change_report',
- 'charts',
- 'charts_menu',
- 'ckeditor',
- 'clippings',
- 'compact-chart',
- 'death_report',
- 'descendancy',
- 'descendancy_chart',
- 'descendancy_report',
- 'extra_info',
- 'fact_sources',
- 'family_book_chart',
- 'family_group_report',
- 'family_nav',
- 'fan_chart',
- 'faq',
- 'gedcom_block',
- 'gedcom_favorites',
- 'gedcom_news',
- 'gedcom_stats',
- 'hourglass_chart',
- 'html',
- 'individual_ext_report',
- 'individual_report',
- 'lifespans_chart',
- 'lightbox',
- 'lists_menu',
- 'logged_in',
- 'login_block',
- 'marriage_report',
- 'media',
- 'missing_facts_report',
- 'notes',
- 'occupation_report',
- 'pedigree-map',
- 'pedigree_chart',
- 'pedigree_report',
- 'personal_facts',
- 'places',
- 'random_media',
- 'recent_changes',
- 'relationships_chart',
- 'relative_ext_report',
- 'relatives',
- 'reports_menu',
- 'review_changes',
- 'search_menu',
- 'sitemap',
- 'sources_tab',
- 'statistics_chart',
- 'stories',
- 'theme_select',
- 'timeline_chart',
- 'todays_events',
- 'todo',
- 'top10_givnnames',
- 'top10_pageviews',
- 'top10_surnames',
- 'tree',
- 'trees_menu',
- 'upcoming_events',
- 'user_blog',
- 'user_favorites',
- 'user_messages',
- 'user_welcome',
- 'yahrzeit',
- ];
-
// Some types of module have different access levels in different trees.
private const COMPONENTS = [
'block' => ModuleBlockInterface::class,
@@ -139,11 +136,86 @@ class Module
{
// Array keys are module names, and should match module names from earlier versions of webtrees.
$modules = new Collection([
+ 'GEDFact_assistant' => CensusAssistantModule::class,
+ 'ahnentafel_report' => AhnentafelReportModule::class,
+ 'ancestors_chart' => AncestorsChartModule::class,
+ 'batch_update' => BatchUpdateModule::class,
+ 'bdm_report' => BirthDeathMarriageReportModule::class,
'bing-webmaster-tools' => BingWebmasterToolsModule::class,
+ 'birth_report' => BirthReportModule::class,
+ 'calendar_menu' => CalendarMenuModule::class,
+ 'cemetery_report' => CemeteryReportModule::class,
+ 'change_report' => ChangeReportModule::class,
+ 'charts' => ChartsBlockModule::class,
+ 'charts_menu' => ChartsMenuModule::class,
+ 'ckeditor' => CkeditorModule::class,
+ 'clippings' => ClippingsCartModule::class,
+ 'compact-chart' => CompactTreeChartModule::class,
+ 'death_report' => DeathReportModule::class,
+ 'descendancy' => DescendancyModule::class,
+ 'descendancy_chart' => DescendancyChartModule::class,
+ 'descendancy_report' => DescendancyReportModule::class,
+ 'extra_info' => ExtraInformationModule::class,
+ 'fact_sources' => FactSourcesReportModule::class,
+ 'family_book_chart' => FamilyBookChartModule::class,
+ 'family_group_report' => FamilyGroupReportModule::class,
+ 'family_nav' => FamilyNavigatorModule::class,
+ 'fan_chart' => FanChartModule::class,
+ 'faq' => FrequentlyAskedQuestionsModule::class,
+ 'gedcom_block' => WelcomeBlockModule::class,
+ 'gedcom_favorites' => FamilyTreeFavoritesModule::class,
+ 'gedcom_news' => FamilyTreeNewsModule::class,
+ 'gedcom_stats' => FamilyTreeStatisticsModule::class,
'google-analytics' => GoogleAnalyticsModule::class,
'google-webmaster-tools' => GoogleWebmasterToolsModule::class,
+ 'hourglass_chart' => HourglassChartModule::class,
+ 'html' => HtmlBlockModule::class,
+ 'individual_ext_report' => IndividualFamiliesReportModule::class,
+ 'individual_report' => IndividualReportModule::class,
+ 'lifespans_chart' => LifespansChartModule::class,
+ 'lightbox' => AlbumModule::class,
+ 'lists_menu' => ListsMenuModule::class,
+ 'logged_in' => LoggedInUsersModule::class,
+ 'login_block' => LoginBlockModule::class,
+ 'marriage_report' => MarriageReportModule::class,
'matomo-analytics' => MatomoAnalyticsModule::class,
+ 'media' => MediaTabModule::class,
+ 'missing_facts_report' => MissingFactsReportModule::class,
+ 'notes' => NotesTabModule::class,
+ 'occupation_report' => OccupationReportModule::class,
+ 'pedigree-map' => PedigreeMapModule::class,
+ 'pedigree_chart' => PedigreeChartModule::class,
+ 'pedigree_report' => PedigreeReportModule::class,
+ 'personal_facts' => IndividualFactsTabModule::class,
+ 'places' => PlacesModule::class,
+ 'random_media' => SlideShowModule::class,
+ 'recent_changes' => RecentChangesModule::class,
+ 'relationships_chart' => RelationshipsChartModule::class,
+ 'relative_ext_report' => RelatedIndividualsReportModule::class,
+ 'relatives' => RelativesTabModule::class,
+ 'reports_menu' => ReportsMenuModule::class,
+ 'review_changes' => ReviewChangesModule::class,
+ 'search_menu' => SearchMenuModule::class,
+ 'sitemap' => SiteMapModule::class,
+ 'sources_tab' => SourcesTabModule::class,
'statcounter' => StatcounterModule::class,
+ 'statistics_chart' => StatisticsChartModule::class,
+ 'stories' => StoriesModule::class,
+ 'theme_select' => ThemeSelectModule::class,
+ 'timeline_chart' => TimelineChartModule::class,
+ 'todays_events' => OnThisDayModule::class,
+ 'todo' => ResearchTaskModule::class,
+ 'top10_givnnames' => TopGivenNamesModule::class,
+ 'top10_pageviews' => TopPageViewsModule::class,
+ 'top10_surnames' => TopSurnamesModule::class,
+ 'tree' => InteractiveTreeModule::class,
+ 'trees_menu' => TreesMenuModule::class,
+ 'upcoming_events' => UpcomingAnniversariesModule::class,
+ 'user_blog' => UserJournalModule::class,
+ 'user_favorites' => UserFavoritesModule::class,
+ 'user_messages' => UserMessagesModule::class,
+ 'user_welcome' => UserWelcomeModule::class,
+ 'yahrzeit' => YahrzeitModule::class,
]);
return $modules->map(function (string $class, string $name): ModuleInterface {
@@ -171,14 +243,16 @@ class Module
// This also allows us to ignore modules called "foo.example" and "foo.disable"
return !Str::contains(basename(dirname($filename)), ['.', ' ', '[', ']']);
})
- ->map(function (string $filename): ?ModuleInterface {
+ ->map(function (string $filename): ?ModuleCustomInterface {
try {
$module = self::load($filename);
- if ($module instanceof ModuleInterface) {
+ if ($module instanceof ModuleCustomInterface) {
$module_name = 'custom-' . basename(dirname($filename));
$module->setName($module_name);
+ } else {
+ return null;
}
return $module;
diff --git a/modules_v4/GEDFact_assistant/module.php b/modules_v4/GEDFact_assistant/module.php
deleted file mode 100644
index 701707bff4..0000000000
--- a/modules_v4/GEDFact_assistant/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\CensusAssistantModule;
-
-return new CensusAssistantModule();
diff --git a/modules_v4/README.md b/modules_v4/README.md
new file mode 100644
index 0000000000..cc242a3724
--- /dev/null
+++ b/modules_v4/README.md
@@ -0,0 +1,118 @@
+# THIRD-PARTY MODULES
+
+Many webtrees functions are provided by “modules”.
+Modules allows you to add additional features to webtrees.
+
+## Installing and uninstalling modules
+
+A module is a folder containing a file called `module.php`.
+There may be other files in the folder.
+
+To install a module, copy its folder to here.
+
+To uninstall it, delete its folder from here.
+
+Note that module names (i.e. their folder names) must not contain
+spaces or the characters `.`, `[` and `]`.
+
+TIP: renaming a module from `<module>` to `<module.disable>`
+is a quick way to hide it from webtrees. This works because
+modules containing `.` are ignored.
+
+## Writing modules
+
+To write a module, you need to understand the PHP programming langauge.
+
+The rest of this document is aimed at PHP developers.
+
+TIP: The built-in modules can be found in `app/Module/*.php`.
+These contain lots of usefule examples that you can copy/paste.
+
+## Creating a custom module.
+
+This is the minimum code needed to create a custom module.
+
+```php
+<?php
+
+use Fisharebest\Webtrees\Module\AbstractModule;
+use Fisharebest\Webtrees\Module\ModuleCustomInterface;
+use Fisharebest\Webtrees\Module\ModuleCustomTrait;
+
+return new class extends AbstractModule implements ModuleCustomInterface {
+ use ModuleCustomTrait;
+
+ /**
+ * How should this module be labelled on tabs, menus, etc.?
+ *
+ * @return string
+ */
+ public function title(): string
+ {
+ return 'My Custom module';
+ }
+
+ /**
+ * A sentence describing what this module does.
+ *
+ * @return string
+ */
+ public function description(): string
+ {
+ return 'This module doesn‘t do anything';
+ }
+};
+```
+
+If you plan to share your modules with other webtrees users, you should
+provide them with support/contact/version information. This way they will
+know where to go for updates, support, etc.
+Look at the functions and comments in `app/ModuleCustomTrait.php`.
+
+## Available interfaces
+
+Custom modules *must* implement `ModuleCustomInterface` interface.
+They *may* implement one or more of the following
+
+* `ModuleAnalyticsInterface` - adds a tracking/analytics provider.
+* `ModuleBlockInterface` - adds a block to the home pages.
+* `ModuleChartInterface` - adds a chart to the chart menu.
+* `ModuleConfigInterface` - adds a configuration page to the control panel.
+* `ModuleMenuInterface` - adds an entry to the main menu.
+* `ModuleReportInterface` - adds a report to the report menu.
+* `ModuleSidebarInterface` - adds a sidebar to the individual pages.
+* `ModuleTabInterface` - adds a tab to the individual pages.
+* `ModuleThemeInterface` - adds a theme (this interface is still being developed).
+
+For each interface that you implement, you must also use the corresponding trait.
+If you don't do this, your module may break whenever the interface is updated.
+
+Where possible, the interfaces won't change - however new methods may be added
+and existing methods may be deprecated.
+
+## How to extend/modify an existing modules
+
+To create a module that is just a modified version of an existing module,
+you can extend the existing module (instead of extending `AbstractModule`).
+
+```php
+<?php
+use Fisharebest\Webtrees\Module\ModuleCustomInterface;
+use Fisharebest\Webtrees\Module\ModuleCustomTrait;
+use Fisharebest\Webtrees\Module\PedigreeChartModule;
+
+return new class extends PedigreeChartModule implements ModuleCustomInterface {
+ use ModuleCustomTrait;
+
+ /**
+ * @return string
+ */
+ public function description(): string
+ {
+ return 'A modified version of the pedigree chart';
+ }
+
+ // Change the default layout...
+ public const DEFAULT_ORIENTATION = self::OLDEST_AT_TOP;
+};
+```
diff --git a/modules_v4/ahnentafel_report/module.php b/modules_v4/ahnentafel_report/module.php
deleted file mode 100644
index 04f74d7b02..0000000000
--- a/modules_v4/ahnentafel_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\AhnentafelReportModule;
-
-return new AhnentafelReportModule();
diff --git a/modules_v4/ancestors_chart/module.php b/modules_v4/ancestors_chart/module.php
deleted file mode 100644
index 4587b2854b..0000000000
--- a/modules_v4/ancestors_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\AncestorsChartModule;
-
-return new AncestorsChartModule();
diff --git a/modules_v4/batch_update/module.php b/modules_v4/batch_update/module.php
deleted file mode 100644
index 8d205a9083..0000000000
--- a/modules_v4/batch_update/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\BatchUpdateModule;
-
-return new BatchUpdateModule();
diff --git a/modules_v4/bdm_report/module.php b/modules_v4/bdm_report/module.php
deleted file mode 100644
index f74ab32597..0000000000
--- a/modules_v4/bdm_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\BirthDeathMarriageReportModule;
-
-return new BirthDeathMarriageReportModule();
diff --git a/modules_v4/birth_report/module.php b/modules_v4/birth_report/module.php
deleted file mode 100644
index 92fd4970af..0000000000
--- a/modules_v4/birth_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\BirthReportModule;
-
-return new BirthReportModule();
diff --git a/modules_v4/calendar_menu/module.php b/modules_v4/calendar_menu/module.php
deleted file mode 100644
index 2848a3b6f0..0000000000
--- a/modules_v4/calendar_menu/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\CalendarMenuModule;
-
-return new CalendarMenuModule();
diff --git a/modules_v4/cemetery_report/module.php b/modules_v4/cemetery_report/module.php
deleted file mode 100644
index 7f729bc4bb..0000000000
--- a/modules_v4/cemetery_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\CemeteryReportModule;
-
-return new CemeteryReportModule();
diff --git a/modules_v4/change_report/module.php b/modules_v4/change_report/module.php
deleted file mode 100644
index 38478b44c7..0000000000
--- a/modules_v4/change_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ChangeReportModule;
-
-return new ChangeReportModule();
diff --git a/modules_v4/charts/module.php b/modules_v4/charts/module.php
deleted file mode 100644
index 4bf27646b3..0000000000
--- a/modules_v4/charts/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ChartsBlockModule;
-
-return new ChartsBlockModule();
diff --git a/modules_v4/charts_menu/module.php b/modules_v4/charts_menu/module.php
deleted file mode 100644
index 90dacc2afa..0000000000
--- a/modules_v4/charts_menu/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ChartsMenuModule;
-
-return new ChartsMenuModule();
diff --git a/modules_v4/ckeditor/module.php b/modules_v4/ckeditor/module.php
deleted file mode 100644
index 6714b330ea..0000000000
--- a/modules_v4/ckeditor/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\CkeditorModule;
-
-return new CkeditorModule();
diff --git a/modules_v4/clippings/module.php b/modules_v4/clippings/module.php
deleted file mode 100644
index f7be41bfd9..0000000000
--- a/modules_v4/clippings/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ClippingsCartModule;
-
-return new ClippingsCartModule();
diff --git a/modules_v4/compact-chart/module.php b/modules_v4/compact-chart/module.php
deleted file mode 100644
index 4f35986055..0000000000
--- a/modules_v4/compact-chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\CompactTreeChartModule;
-
-return new CompactTreeChartModule();
diff --git a/modules_v4/custom.example/module.php b/modules_v4/custom.example/module.php
deleted file mode 100644
index b74740d4ab..0000000000
--- a/modules_v4/custom.example/module.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace CustomAuthor\CustomProject;
-
-use Fisharebest\Webtrees\I18N;
-use Fisharebest\Webtrees\Module\AbstractModule;
-use Fisharebest\Webtrees\Module\ModuleCustomInterface;
-use Fisharebest\Webtrees\Module\ModuleCustomTrait;
-use Fisharebest\Webtrees\Module\ModuleInterface;
-
-/**
- * This is an example of a custom module. Modules in folders containing a "."
- * do not get loaded. Rename it to make it appear.
- *
- * All modules should implement ModuleInterface and extend AbstractModule.
- *
- * To provide any additional functions, such as tabs or menus, you should
- * implement ModuleXxxInterface and use the corresponding ModuleXxxTrait.
- * The trait provides a default implementation of every method required by
- * the interface. Provide implementations of those that you need.
- * We return an anonymouse class here. This prevents conflict with existing
- * class names.
- */
-return new class extends AbstractModule implements ModuleCustomInterface {
- // We implement ModuleCustomInterface, so we must also use the corresponding trait.
- use ModuleCustomTrait;
-
- /**
- * How should this module be labelled on tabs, menus, etc.?
- *
- * @return string
- */
- public function title(): string
- {
- return I18N::translate('Custom module');
- }
-
- /**
- * A sentence describing what this module does.
- *
- * @return string
- */
- public function description(): string
- {
- return I18N::translate('Custom module') . ' – ' . I18N::translate('Description');
- }
-};
diff --git a/modules_v4/death_report/module.php b/modules_v4/death_report/module.php
deleted file mode 100644
index 9a2bd84770..0000000000
--- a/modules_v4/death_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\DeathReportModule;
-
-return new DeathReportModule();
diff --git a/modules_v4/descendancy/module.php b/modules_v4/descendancy/module.php
deleted file mode 100644
index 978b594918..0000000000
--- a/modules_v4/descendancy/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\DescendancyModule;
-
-return new DescendancyModule();
diff --git a/modules_v4/descendancy_chart/module.php b/modules_v4/descendancy_chart/module.php
deleted file mode 100644
index ce5f7a5022..0000000000
--- a/modules_v4/descendancy_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\DescendancyChartModule;
-
-return new DescendancyChartModule();
diff --git a/modules_v4/descendancy_report/module.php b/modules_v4/descendancy_report/module.php
deleted file mode 100644
index f33aa71429..0000000000
--- a/modules_v4/descendancy_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\DescendancyReportModule;
-
-return new DescendancyReportModule();
diff --git a/modules_v4/extra_info/module.php b/modules_v4/extra_info/module.php
deleted file mode 100644
index 9fb555fbf6..0000000000
--- a/modules_v4/extra_info/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ExtraInformationModule;
-
-return new ExtraInformationModule();
diff --git a/modules_v4/fact_sources/module.php b/modules_v4/fact_sources/module.php
deleted file mode 100644
index c2f68e1fd0..0000000000
--- a/modules_v4/fact_sources/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FactSourcesReportModule;
-
-return new FactSourcesReportModule();
diff --git a/modules_v4/family_book_chart/module.php b/modules_v4/family_book_chart/module.php
deleted file mode 100644
index ddfbb1f95d..0000000000
--- a/modules_v4/family_book_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FamilyBookChartModule;
-
-return new FamilyBookChartModule();
diff --git a/modules_v4/family_group_report/module.php b/modules_v4/family_group_report/module.php
deleted file mode 100644
index 73a2d09b0c..0000000000
--- a/modules_v4/family_group_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FamilyGroupReportModule;
-
-return new FamilyGroupReportModule();
diff --git a/modules_v4/family_nav/module.php b/modules_v4/family_nav/module.php
deleted file mode 100644
index 685c3fa830..0000000000
--- a/modules_v4/family_nav/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FamilyNavigatorModule;
-
-return new FamilyNavigatorModule();
diff --git a/modules_v4/fan_chart/module.php b/modules_v4/fan_chart/module.php
deleted file mode 100644
index 638b0d1680..0000000000
--- a/modules_v4/fan_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FanChartModule;
-
-return new FanChartModule();
diff --git a/modules_v4/faq/module.php b/modules_v4/faq/module.php
deleted file mode 100644
index f6d5242356..0000000000
--- a/modules_v4/faq/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FrequentlyAskedQuestionsModule;
-
-return new FrequentlyAskedQuestionsModule();
diff --git a/modules_v4/gedcom_block/module.php b/modules_v4/gedcom_block/module.php
deleted file mode 100644
index ac85b2526c..0000000000
--- a/modules_v4/gedcom_block/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\WelcomeBlockModule;
-
-return new WelcomeBlockModule();
diff --git a/modules_v4/gedcom_favorites/module.php b/modules_v4/gedcom_favorites/module.php
deleted file mode 100644
index c7bf195d8e..0000000000
--- a/modules_v4/gedcom_favorites/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FamilyTreeFavoritesModule;
-
-return new FamilyTreeFavoritesModule();
diff --git a/modules_v4/gedcom_news/module.php b/modules_v4/gedcom_news/module.php
deleted file mode 100644
index 1f42af709c..0000000000
--- a/modules_v4/gedcom_news/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FamilyTreeNewsModule;
-
-return new FamilyTreeNewsModule();
diff --git a/modules_v4/gedcom_stats/module.php b/modules_v4/gedcom_stats/module.php
deleted file mode 100644
index b7cb77dbb0..0000000000
--- a/modules_v4/gedcom_stats/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\FamilyTreeStatisticsModule;
-
-return new FamilyTreeStatisticsModule();
diff --git a/modules_v4/hourglass_chart/module.php b/modules_v4/hourglass_chart/module.php
deleted file mode 100644
index 3a45b18634..0000000000
--- a/modules_v4/hourglass_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\HourglassChartModule;
-
-return new HourglassChartModule();
diff --git a/modules_v4/html/module.php b/modules_v4/html/module.php
deleted file mode 100644
index 43624a3aa3..0000000000
--- a/modules_v4/html/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\HtmlBlockModule;
-
-return new HtmlBlockModule();
diff --git a/modules_v4/individual_ext_report/module.php b/modules_v4/individual_ext_report/module.php
deleted file mode 100644
index 2d580a32b0..0000000000
--- a/modules_v4/individual_ext_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\IndividualFamiliesReportModule;
-
-return new IndividualFamiliesReportModule();
diff --git a/modules_v4/individual_report/module.php b/modules_v4/individual_report/module.php
deleted file mode 100644
index e199048225..0000000000
--- a/modules_v4/individual_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\IndividualReportModule;
-
-return new IndividualReportModule();
diff --git a/modules_v4/lifespans_chart/module.php b/modules_v4/lifespans_chart/module.php
deleted file mode 100644
index 6cff6d93b8..0000000000
--- a/modules_v4/lifespans_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\LifespansChartModule;
-
-return new LifespansChartModule();
diff --git a/modules_v4/lightbox/module.php b/modules_v4/lightbox/module.php
deleted file mode 100644
index 2fc4b51c29..0000000000
--- a/modules_v4/lightbox/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\AlbumModule;
-
-return new AlbumModule();
diff --git a/modules_v4/lists_menu/module.php b/modules_v4/lists_menu/module.php
deleted file mode 100644
index d415e7c2c1..0000000000
--- a/modules_v4/lists_menu/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ListsMenuModule;
-
-return new ListsMenuModule();
diff --git a/modules_v4/logged_in/module.php b/modules_v4/logged_in/module.php
deleted file mode 100644
index 1b42229d1b..0000000000
--- a/modules_v4/logged_in/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\LoggedInUsersModule;
-
-return new LoggedInUsersModule();
diff --git a/modules_v4/login_block/module.php b/modules_v4/login_block/module.php
deleted file mode 100644
index c75edfaf7a..0000000000
--- a/modules_v4/login_block/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\LoginBlockModule;
-
-return new LoginBlockModule();
diff --git a/modules_v4/marriage_report/module.php b/modules_v4/marriage_report/module.php
deleted file mode 100644
index 73019f86a6..0000000000
--- a/modules_v4/marriage_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\MarriageReportModule;
-
-return new MarriageReportModule();
diff --git a/modules_v4/media/module.php b/modules_v4/media/module.php
deleted file mode 100644
index 0d1c5565ec..0000000000
--- a/modules_v4/media/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\MediaTabModule;
-
-return new MediaTabModule();
diff --git a/modules_v4/missing_facts_report/module.php b/modules_v4/missing_facts_report/module.php
deleted file mode 100644
index 193b63d11f..0000000000
--- a/modules_v4/missing_facts_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\MissingFactsReportModule;
-
-return new MissingFactsReportModule();
diff --git a/modules_v4/notes/module.php b/modules_v4/notes/module.php
deleted file mode 100644
index 7579d8d9dd..0000000000
--- a/modules_v4/notes/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\NotesTabModule;
-
-return new NotesTabModule();
diff --git a/modules_v4/occupation_report/module.php b/modules_v4/occupation_report/module.php
deleted file mode 100644
index 914f3586e7..0000000000
--- a/modules_v4/occupation_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\OccupationReportModule;
-
-return new OccupationReportModule();
diff --git a/modules_v4/pedigree-map/module.php b/modules_v4/pedigree-map/module.php
deleted file mode 100644
index 7a6b58fb59..0000000000
--- a/modules_v4/pedigree-map/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\PedigreeMapModule;
-
-return new PedigreeMapModule();
diff --git a/modules_v4/pedigree_chart/module.php b/modules_v4/pedigree_chart/module.php
deleted file mode 100644
index a90c06df9a..0000000000
--- a/modules_v4/pedigree_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\PedigreeChartModule;
-
-return new PedigreeChartModule();
diff --git a/modules_v4/pedigree_report/module.php b/modules_v4/pedigree_report/module.php
deleted file mode 100644
index 231a06e264..0000000000
--- a/modules_v4/pedigree_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\PedigreeReportModule;
-
-return new PedigreeReportModule();
diff --git a/modules_v4/personal_facts/module.php b/modules_v4/personal_facts/module.php
deleted file mode 100644
index 35b1361452..0000000000
--- a/modules_v4/personal_facts/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\IndividualFactsTabModule;
-
-return new IndividualFactsTabModule();
diff --git a/modules_v4/places/module.php b/modules_v4/places/module.php
deleted file mode 100644
index d5ac121793..0000000000
--- a/modules_v4/places/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\PlacesModule;
-
-return new PlacesModule();
diff --git a/modules_v4/random_media/module.php b/modules_v4/random_media/module.php
deleted file mode 100644
index 581700d1f1..0000000000
--- a/modules_v4/random_media/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\SlideShowModule;
-
-return new SlideShowModule();
diff --git a/modules_v4/recent_changes/module.php b/modules_v4/recent_changes/module.php
deleted file mode 100644
index c0017573ce..0000000000
--- a/modules_v4/recent_changes/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\RecentChangesModule;
-
-return new RecentChangesModule();
diff --git a/modules_v4/relationships_chart/module.php b/modules_v4/relationships_chart/module.php
deleted file mode 100644
index 58750153e9..0000000000
--- a/modules_v4/relationships_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\RelationshipsChartModule;
-
-return new RelationshipsChartModule();
diff --git a/modules_v4/relative_ext_report/module.php b/modules_v4/relative_ext_report/module.php
deleted file mode 100644
index 0f552b06be..0000000000
--- a/modules_v4/relative_ext_report/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\RelatedIndividualsReportModule;
-
-return new RelatedIndividualsReportModule();
diff --git a/modules_v4/relatives/module.php b/modules_v4/relatives/module.php
deleted file mode 100644
index 4bb7129b0f..0000000000
--- a/modules_v4/relatives/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\RelativesTabModule;
-
-return new RelativesTabModule();
diff --git a/modules_v4/reports_menu/module.php b/modules_v4/reports_menu/module.php
deleted file mode 100644
index f32a51b8b5..0000000000
--- a/modules_v4/reports_menu/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ReportsMenuModule;
-
-return new ReportsMenuModule();
diff --git a/modules_v4/review_changes/module.php b/modules_v4/review_changes/module.php
deleted file mode 100644
index 0491c12905..0000000000
--- a/modules_v4/review_changes/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ReviewChangesModule;
-
-return new ReviewChangesModule();
diff --git a/modules_v4/search_menu/module.php b/modules_v4/search_menu/module.php
deleted file mode 100644
index 2c2c5fdc03..0000000000
--- a/modules_v4/search_menu/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\SearchMenuModule;
-
-return new SearchMenuModule();
diff --git a/modules_v4/sitemap/module.php b/modules_v4/sitemap/module.php
deleted file mode 100644
index ba619416ca..0000000000
--- a/modules_v4/sitemap/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\SiteMapModule;
-
-return new SiteMapModule();
diff --git a/modules_v4/sources_tab/module.php b/modules_v4/sources_tab/module.php
deleted file mode 100644
index f11156e33c..0000000000
--- a/modules_v4/sources_tab/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\SourcesTabModule;
-
-return new SourcesTabModule();
diff --git a/modules_v4/statistics_chart/module.php b/modules_v4/statistics_chart/module.php
deleted file mode 100644
index 0391ce9dee..0000000000
--- a/modules_v4/statistics_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\StatisticsChartModule;
-
-return new StatisticsChartModule();
diff --git a/modules_v4/stories/module.php b/modules_v4/stories/module.php
deleted file mode 100644
index 6478021822..0000000000
--- a/modules_v4/stories/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\StoriesModule;
-
-return new StoriesModule();
diff --git a/modules_v4/theme_select/module.php b/modules_v4/theme_select/module.php
deleted file mode 100644
index 6e52986be5..0000000000
--- a/modules_v4/theme_select/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ThemeSelectModule;
-
-return new ThemeSelectModule();
diff --git a/modules_v4/timeline_chart/module.php b/modules_v4/timeline_chart/module.php
deleted file mode 100644
index 4689fbb1f5..0000000000
--- a/modules_v4/timeline_chart/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\TimelineChartModule;
-
-return new TimelineChartModule();
diff --git a/modules_v4/todays_events/module.php b/modules_v4/todays_events/module.php
deleted file mode 100644
index 90940c186b..0000000000
--- a/modules_v4/todays_events/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\OnThisDayModule;
-
-return new OnThisDayModule();
diff --git a/modules_v4/todo/module.php b/modules_v4/todo/module.php
deleted file mode 100644
index f3b3111b11..0000000000
--- a/modules_v4/todo/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\ResearchTaskModule;
-
-return new ResearchTaskModule();
diff --git a/modules_v4/top10_givnnames/module.php b/modules_v4/top10_givnnames/module.php
deleted file mode 100644
index da86c8c91d..0000000000
--- a/modules_v4/top10_givnnames/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\TopGivenNamesModule;
-
-return new TopGivenNamesModule();
diff --git a/modules_v4/top10_pageviews/module.php b/modules_v4/top10_pageviews/module.php
deleted file mode 100644
index 1c2c58a53d..0000000000
--- a/modules_v4/top10_pageviews/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\TopPageViewsModule;
-
-return new TopPageViewsModule();
diff --git a/modules_v4/top10_surnames/module.php b/modules_v4/top10_surnames/module.php
deleted file mode 100644
index e2bcd3bc64..0000000000
--- a/modules_v4/top10_surnames/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\TopSurnamesModule;
-
-return new TopSurnamesModule();
diff --git a/modules_v4/trees_menu/module.php b/modules_v4/trees_menu/module.php
deleted file mode 100644
index a316518d4a..0000000000
--- a/modules_v4/trees_menu/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\TreesMenuModule;
-
-return new TreesMenuModule();
diff --git a/modules_v4/upcoming_events/module.php b/modules_v4/upcoming_events/module.php
deleted file mode 100644
index ba86d7941b..0000000000
--- a/modules_v4/upcoming_events/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\UpcomingAnniversariesModule;
-
-return new UpcomingAnniversariesModule();
diff --git a/modules_v4/user_blog/module.php b/modules_v4/user_blog/module.php
deleted file mode 100644
index c605aa4a9d..0000000000
--- a/modules_v4/user_blog/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\UserJournalModule;
-
-return new UserJournalModule();
diff --git a/modules_v4/user_favorites/module.php b/modules_v4/user_favorites/module.php
deleted file mode 100644
index e7fb18608e..0000000000
--- a/modules_v4/user_favorites/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\UserFavoritesModule;
-
-return new UserFavoritesModule();
diff --git a/modules_v4/user_messages/module.php b/modules_v4/user_messages/module.php
deleted file mode 100644
index 22eedd9a1f..0000000000
--- a/modules_v4/user_messages/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\UserMessagesModule;
-
-return new UserMessagesModule();
diff --git a/modules_v4/user_welcome/module.php b/modules_v4/user_welcome/module.php
deleted file mode 100644
index 32c431a634..0000000000
--- a/modules_v4/user_welcome/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\UserWelcomeModule;
-
-return new UserWelcomeModule();
diff --git a/modules_v4/yahrzeit/module.php b/modules_v4/yahrzeit/module.php
deleted file mode 100644
index a35407998a..0000000000
--- a/modules_v4/yahrzeit/module.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * webtrees: online genealogy
- * Copyright (C) 2019 webtrees development team
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-declare(strict_types=1);
-
-namespace Fisharebest\Webtrees;
-
-use Fisharebest\Webtrees\Module\YahrzeitModule;
-
-return new YahrzeitModule();
diff --git a/resources/views/admin/modules.phtml b/resources/views/admin/modules.phtml
index 008809e135..4191bccf19 100644
--- a/resources/views/admin/modules.phtml
+++ b/resources/views/admin/modules.phtml
@@ -3,6 +3,7 @@
<?php use Fisharebest\Webtrees\Module\ModuleBlockInterface; ?>
<?php use Fisharebest\Webtrees\Module\ModuleChartInterface; ?>
<?php use Fisharebest\Webtrees\Module\ModuleConfigInterface; ?>
+<?php use Fisharebest\Webtrees\Module\ModuleCustomInterface; ?>
<?php use Fisharebest\Webtrees\Module\ModuleMenuInterface; ?>
<?php use Fisharebest\Webtrees\Module\ModuleReportInterface; ?>
<?php use Fisharebest\Webtrees\Module\ModuleSidebarInterface; ?>
@@ -101,7 +102,7 @@
</td>
<td class="d-none d-sm-table-cell">
<?= $module->description() ?>
- <?php if (!in_array($module->name(), $core_module_names)) : ?>
+ <?php if ($module instanceof ModuleCustomInterface) : ?>
<br>
<?= view('icons/warning') ?>
<?= I18N::translate('Custom module') ?>
diff --git a/resources/views/report-select-page.phtml b/resources/views/report-select-page.phtml
index dd3bdb382d..e6e97d0d4a 100644
--- a/resources/views/report-select-page.phtml
+++ b/resources/views/report-select-page.phtml
@@ -13,9 +13,9 @@
</label>
<div class="col-sm-9 wt-page-options-value">
<select class="form-control" id="report" name="report">
- <?php foreach ($reports as $file => $report) : ?>
- <option value="<?= e($file) ?>">
- <?= e($report) ?>
+ <?php foreach ($reports as $report) : ?>
+ <option value="<?= e($report->name()) ?>">
+ <?= e($report->title()) ?>
</option>
<?php endforeach ?>
</select>
diff --git a/modules_v4/ahnentafel_report/report.xml b/resources/xml/reports/ahnentafel_report.xml
index a273ba303d..a273ba303d 100644
--- a/modules_v4/ahnentafel_report/report.xml
+++ b/resources/xml/reports/ahnentafel_report.xml
diff --git a/modules_v4/bdm_report/report.xml b/resources/xml/reports/bdm_report.xml
index e030fdfc72..e030fdfc72 100644
--- a/modules_v4/bdm_report/report.xml
+++ b/resources/xml/reports/bdm_report.xml
diff --git a/modules_v4/birth_report/report.xml b/resources/xml/reports/birth_report.xml
index 2a65a1c057..2a65a1c057 100644
--- a/modules_v4/birth_report/report.xml
+++ b/resources/xml/reports/birth_report.xml
diff --git a/modules_v4/cemetery_report/report.xml b/resources/xml/reports/cemetery_report.xml
index 0c1d6ab905..0c1d6ab905 100644
--- a/modules_v4/cemetery_report/report.xml
+++ b/resources/xml/reports/cemetery_report.xml
diff --git a/modules_v4/change_report/report.xml b/resources/xml/reports/change_report.xml
index e98df58de0..e98df58de0 100644
--- a/modules_v4/change_report/report.xml
+++ b/resources/xml/reports/change_report.xml
diff --git a/modules_v4/death_report/report.xml b/resources/xml/reports/death_report.xml
index a3e7c6f953..a3e7c6f953 100644
--- a/modules_v4/death_report/report.xml
+++ b/resources/xml/reports/death_report.xml
diff --git a/modules_v4/descendancy_report/report.xml b/resources/xml/reports/descendancy_report.xml
index 966b4514ce..966b4514ce 100644
--- a/modules_v4/descendancy_report/report.xml
+++ b/resources/xml/reports/descendancy_report.xml
diff --git a/modules_v4/fact_sources/report.xml b/resources/xml/reports/fact_sources.xml
index 3ecbc6d1dc..3ecbc6d1dc 100644
--- a/modules_v4/fact_sources/report.xml
+++ b/resources/xml/reports/fact_sources.xml
diff --git a/modules_v4/family_group_report/report.xml b/resources/xml/reports/family_group_report.xml
index 3b8e7c1782..3b8e7c1782 100644
--- a/modules_v4/family_group_report/report.xml
+++ b/resources/xml/reports/family_group_report.xml
diff --git a/modules_v4/individual_ext_report/report.xml b/resources/xml/reports/individual_ext_report.xml
index 4321cca271..4321cca271 100644
--- a/modules_v4/individual_ext_report/report.xml
+++ b/resources/xml/reports/individual_ext_report.xml
diff --git a/modules_v4/individual_report/report.xml b/resources/xml/reports/individual_report.xml
index f063368b4c..f063368b4c 100644
--- a/modules_v4/individual_report/report.xml
+++ b/resources/xml/reports/individual_report.xml
diff --git a/modules_v4/marriage_report/report.xml b/resources/xml/reports/marriage_report.xml
index 962d4fa17c..962d4fa17c 100644
--- a/modules_v4/marriage_report/report.xml
+++ b/resources/xml/reports/marriage_report.xml
diff --git a/modules_v4/missing_facts_report/report.xml b/resources/xml/reports/missing_facts_report.xml
index 886d7e6497..886d7e6497 100644
--- a/modules_v4/missing_facts_report/report.xml
+++ b/resources/xml/reports/missing_facts_report.xml
diff --git a/modules_v4/occupation_report/report.xml b/resources/xml/reports/occupation_report.xml
index c9cfdfdec9..c9cfdfdec9 100644
--- a/modules_v4/occupation_report/report.xml
+++ b/resources/xml/reports/occupation_report.xml
diff --git a/modules_v4/pedigree_report/report.xml b/resources/xml/reports/pedigree_report.xml
index 5d9c507be7..5d9c507be7 100644
--- a/modules_v4/pedigree_report/report.xml
+++ b/resources/xml/reports/pedigree_report.xml
diff --git a/modules_v4/relative_ext_report/report.xml b/resources/xml/reports/relative_ext_report.xml
index b4fdd90579..b4fdd90579 100644
--- a/modules_v4/relative_ext_report/report.xml
+++ b/resources/xml/reports/relative_ext_report.xml