. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Utils; class ThemeManager { private string $defaultName = 'Espo'; private string $defaultStylesheet = 'client/css/espo/espo.css'; private string $defaultLogoSrc = 'client/img/logo.svg'; public function __construct( private Config $config, private Metadata $metadata ) {} public function getName(): string { return $this->config->get('theme') ?? $this->defaultName; } public function getStylesheet(): string { return $this->metadata->get(['themes', $this->getName(), 'stylesheet']) ?? $this->defaultStylesheet; } public function getLogoSrc(): string { return $this->metadata->get(['themes', $this->getName(), 'logo']) ?? $this->defaultLogoSrc; } public function isDark(): bool { return (bool) $this->metadata->get("themes.{$this->getName()}.isDark"); } }