![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Twig/Helper/ |
<?php namespace Mautic\CoreBundle\Twig\Helper; use Mautic\CoreBundle\Exception\BadConfigurationException; use Mautic\CoreBundle\Exception\FileNotFoundException; use Mautic\CoreBundle\Helper\PathsHelper; /** * final class ThemeHelper. */ final class ThemeHelper { private string $themeDir; private string $themePath; /** * @var mixed */ private $config; /** * @param string $theme * * @throws BadConfigurationException * @throws FileNotFoundException */ public function __construct( PathsHelper $pathsHelper, private $theme ) { $this->themeDir = $pathsHelper->getSystemPath('themes').'/'.$this->theme; $this->themePath = $pathsHelper->getSystemPath('themes_root').'/'.$this->themeDir; // check to make sure the theme exists if (!file_exists($this->themePath)) { throw new FileNotFoundException($this->theme.' not found!'); } // get the config if (file_exists($this->themePath.'/config.json')) { $this->config = json_decode(file_get_contents($this->themePath.'/config.json'), true); } else { throw new BadConfigurationException($this->theme.' is missing a required config file'); } if (!isset($this->config['name'])) { throw new BadConfigurationException($this->theme.' does not have a valid config file'); } } /** * Return name of the template. * * @return mixed */ public function getName() { return $this->config['name']; } /** * Returns the theme folder name. * * @return string */ public function getTheme() { return $this->theme; } /** * Get the theme's config. * * @return mixed */ public function getConfig() { return $this->config; } /** * Get the theme's slots. * * @param string $type * * @return array<string, mixed> */ public function getSlots($type) { return $this->config['slots'][$type] ?? []; } /** * Returns path to this theme. * * @param bool $relative */ public function getThemePath($relative = false): string { return ($relative) ? $this->themeDir : $this->themePath; } /** * Returns template. * * @param string $code * * @return bool|string */ public function getErrorPageTemplate($code) { $errorPage = $this->getThemePath()."/error_{$code}.html.twig"; if (file_exists($errorPage)) { return "@themes/{$this->theme}/error_{$code}.html.twig"; } else { return false; } } }