1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
namespace Dotdigitalgroup\Email\Model\Config\Source\Transactional\Email;
class Template extends \Magento\Framework\DataObject implements \Magento\Framework\Option\ArrayInterface
{
/**
* @var \Magento\Framework\Registry
*/
private $coreRegistry;
/**
* @var \Magento\Email\Model\Template\Config
*/
private $emailConfig;
/**
* @var \Magento\Email\Model\ResourceModel\Template\CollectionFactory
*/
protected $templatesFactory;
/**
* @param \Magento\Framework\Registry $coreRegistry
* @param \Magento\Email\Model\ResourceModel\Template\CollectionFactory $templatesFactory
* @param \Magento\Email\Model\Template\Config $emailConfig
* @param array $data
*/
public function __construct(
\Magento\Framework\Registry $coreRegistry,
\Magento\Email\Model\ResourceModel\Template\CollectionFactory $templatesFactory,
\Magento\Email\Model\Template\Config $emailConfig,
array $data = []
) {
parent::__construct($data);
$this->coreRegistry = $coreRegistry;
$this->templatesFactory = $templatesFactory;
$this->emailConfig = $emailConfig;
}
/**
* Generate list of email templates
*
* @return array
*/
public function toOptionArray()
{
/** @var $collection \Magento\Email\Model\ResourceModel\Template\Collection */
if (!($collection = $this->coreRegistry->registry('config_system_email_template'))) {
$collection = $this->templatesFactory->create();
$collection->load();
$this->coreRegistry->register('config_system_email_template', $collection);
}
return $this->emailConfig->getAvailableTemplates();
}
}