summaryrefslogtreecommitdiff
path: root/index.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-01-30 15:27:14 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-01-30 15:27:14 +0000
commitdf8baf00ff3985a249a86cf9e10cb91294ee04ca (patch)
tree7af951e3a70a588445725d3f4865b7e6f57e302f /index.php
parent11eb858145c6c7c490e5c0cd7b0bd51e519264f0 (diff)
downloadwebtrees-df8baf00ff3985a249a86cf9e10cb91294ee04ca.tar.gz
webtrees-df8baf00ff3985a249a86cf9e10cb91294ee04ca.tar.bz2
webtrees-df8baf00ff3985a249a86cf9e10cb91294ee04ca.zip
Converting themes to modules
Diffstat (limited to 'index.php')
-rw-r--r--index.php40
1 files changed, 21 insertions, 19 deletions
diff --git a/index.php b/index.php
index 16a2d0007e..cfdd9d27e2 100644
--- a/index.php
+++ b/index.php
@@ -29,6 +29,8 @@ use Fisharebest\Webtrees\Http\Middleware\Housekeeping;
use Fisharebest\Webtrees\Http\Middleware\UseTransaction;
use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\Module;
+use Fisharebest\Webtrees\Module\ModuleThemeInterface;
+use Fisharebest\Webtrees\Module\WebtreesTheme;
use Fisharebest\Webtrees\Services\TimeoutService;
use Fisharebest\Webtrees\Session;
use Fisharebest\Webtrees\Site;
@@ -227,31 +229,31 @@ try {
DebugBar::startMeasure('init theme');
+ $themes = Module::findByInterface(ModuleThemeInterface::class);
+
// Last theme used?
- $theme_id = Session::get('theme_id');
- // Default for tree
- if (!array_key_exists($theme_id, Theme::themeNames()) && $tree) {
- $theme_id = $tree->getPreference('THEME_DIR');
+ $theme = $themes->get(Session::get('theme_id', ''));
+
+ // Default for tree?
+ if ($theme === null && $tree instanceof Tree) {
+ $theme = $themes->get($tree->getPreference('THEME_DIR'));
}
- // Default for site
- if (!array_key_exists($theme_id, Theme::themeNames())) {
- $theme_id = Site::getPreference('THEME_DIR');
+
+ // Default for site?
+ if ($theme === null) {
+ $theme = $themes->get(Site::getPreference('THEME_DIR'));
}
+
// Default
- if (!array_key_exists($theme_id, Theme::themeNames())) {
- $theme_id = 'webtrees';
- }
- foreach (Theme::installedThemes() as $theme) {
- if ($theme->name() === $theme_id) {
- Theme::theme($theme);
- // Remember this setting
- if (Site::getPreference('ALLOW_USER_THEMES') === '1') {
- Session::put('theme_id', $theme_id);
- }
- break;
- }
+ if ($theme === null) {
+ $theme = app()->make(WebtreesTheme::class);
}
+ Theme::theme($theme);
+
+ // Remember this setting
+ Session::put('theme_id', $theme->name());
+
DebugBar::stopMeasure('init theme');
// Note that we can't stop this timer, as running the action will