/
Core_Business_Email_EmailLister.php
116 lines (103 loc) · 3.34 KB
/
Core_Business_Email_EmailLister.php
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
/**
* 2007-2016 PrestaShop
*
* thirty bees is an extension to the PrestaShop e-commerce software developed by PrestaShop SA
* Copyright (C) 2017-2018 thirty bees
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@thirtybees.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to https://www.thirtybees.com for more information.
*
* @author thirty bees <contact@thirtybees.com>
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2017-2018 thirty bees
* @copyright 2007-2016 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* PrestaShop is an internationally registered trademark & property of PrestaShop SA
*/
/**
* Class Core_Business_Email_EmailLister
*/
// @codingStandardsIgnoreStart
class Core_Business_Email_EmailLister
{
// @codingStandardsIgnoreEnd
protected $filesystem;
/**
* Core_Business_Email_EmailLister constructor.
*
* @param Core_Foundation_FileSystem_FileSystem $fs
*/
public function __construct(Core_Foundation_FileSystem_FileSystem $fs)
{
// Register dependencies
$this->filesystem = $fs;
}
/**
* Return the list of available mails
*
* @param string $dir
*
* @return array|null
*
* @since 1.0.0
* @version 1.0.0 Initial version
*/
public function getAvailableMails($dir)
{
if (!is_dir($dir)) {
return null;
}
$mailDirectory = $this->filesystem->listEntriesRecursively($dir);
$mailList = [];
// Remove unwanted .html / .txt / .tpl / .php / . / ..
foreach ($mailDirectory as $mail) {
if (strpos($mail->getFilename(), '.') !== false) {
$tmp = explode('.', $mail->getFilename());
// Check for filename existence (left part) and if extension is html (right part)
if (($tmp === false || !isset($tmp[0])) || (isset($tmp[1]) && $tmp[1] !== 'html')) {
continue;
}
$mailNameNoExt = $tmp[0];
if (!in_array($mailNameNoExt, $mailList)) {
$mailList[] = $mailNameNoExt;
}
}
}
return $mailList;
}
/**
* Give in input getAvailableMails(), will output a human readable and proper string name
*
* @param string $mailName
*
* @return string
*
* @since 1.0.0
* @version 1.0.0
*/
public function getCleanedMailName($mailName)
{
if (strpos($mailName, '.') !== false) {
$tmp = explode('.', $mailName);
if ($tmp === false || !isset($tmp[0])) {
return $mailName;
}
$mailName = $tmp[0];
}
return ucfirst(str_replace(['_', '-'], ' ', $mailName));
}
}