settings = $settingsService; $_themes = glob(env('THEMES_PATH') . '/*', GLOB_ONLYDIR); foreach ($_themes as $theme) { array_push( $this->themes, json_decode(file_get_contents($theme . '/theme.json'), true) ); } } public function getCurrentTheme() { return $this->settings->getGlobal()['theme']; } public function getThemes() { return $this->themes; } public function getCustomViews($layout) { $views = []; if (str_contains($layout, 'index')) { $views = $this->findCustomIndex(); } else { $views = $this->findCustomViews(); } return $views; } public function findCustomIndex() { $currentTheme = $this->settings->getGlobal()['theme']; $folder = '../content/themes/' . $currentTheme; $files = array_filter(glob("$folder/*blade.php"), 'is_file'); $views = []; foreach ($files as $file) { $path = explode('/', $file); $fileName = $path[4]; if (str_contains($fileName, 'index')) { $page = explode('.', $fileName); $views[] = $page[0]; } } return $views; } public function findCustomViews() { $currentTheme = $this->settings->getGlobal()['theme']; $folder = '../content/themes/' . $currentTheme; $files = array_filter(glob("$folder/*blade.php"), 'is_file'); $views = []; foreach ($files as $file) { $path = explode('/', $file); $fileName = $path[4]; if (str_contains($fileName, 'page')) { $page = explode('.', $fileName); $views[] = $page[0]; } } return $views; } }