* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Form\ChoiceProvider; use PrestaShop\PrestaShop\Core\Form\FormChoiceProviderInterface; use PrestaShop\PrestaShop\Core\MailTemplate\ThemeCatalogInterface; use PrestaShop\PrestaShop\Core\MailTemplate\ThemeCollectionInterface; use PrestaShop\PrestaShop\Core\MailTemplate\ThemeInterface; /** * Class MailThemeChoiceProvider is responsible to provide a list of available mail themes. */ class MailThemeChoiceProvider implements FormChoiceProviderInterface { /** @var array */ private $choices; /** @var ThemeCatalogInterface */ private $themeCatalog; /** * @param ThemeCatalogInterface $themeCatalog */ public function __construct(ThemeCatalogInterface $themeCatalog) { $this->themeCatalog = $themeCatalog; } /** * {@inheritdoc} */ public function getChoices() { if (null === $this->choices) { $this->choices = []; /** @var ThemeCollectionInterface $collection */ $collection = $this->themeCatalog->listThemes(); /** @var ThemeInterface $theme */ foreach ($collection as $theme) { $this->choices[$theme->getName()] = $theme->getName(); } } return $this->choices; } }