@@ -126,8 +126,8 @@ |
||
126 | 126 | public $usage_bill_time; // Is the time spent on project must be invoiced or not |
127 | 127 | |
128 | 128 | /** |
129 | - * @var integer Event organization: Use Event Organization |
|
130 | - */ |
|
129 | + * @var integer Event organization: Use Event Organization |
|
130 | + */ |
|
131 | 131 | public $usage_organize_event; |
132 | 132 | |
133 | 133 | /** |
@@ -156,7 +156,7 @@ |
||
156 | 156 | * $price Can be set to update AWP (Average Weighted Price) when you make a stock increase |
157 | 157 | * $dlc Eat-by date. Will be used if lot does not exists yet and will be created. |
158 | 158 | * $dluo Sell-by date. Will be used if lot does not exists yet and will be created. |
159 | - * |
|
159 | + * |
|
160 | 160 | * @param int $product_id Id product id {@min 1} {@from body} {@required true} |
161 | 161 | * @param int $warehouse_id Id warehouse {@min 1} {@from body} {@required true} |
162 | 162 | * @param float $qty Qty to add (Use negative value for a stock decrease) {@from body} {@required true} |
@@ -21,11 +21,11 @@ |
||
21 | 21 | protected $openned = false; |
22 | 22 | protected $filename; |
23 | 23 | protected $pclzip; |
24 | - /** |
|
25 | - * Class constructor |
|
26 | - * |
|
27 | - * @throws PclZipProxyException |
|
28 | - */ |
|
24 | + /** |
|
25 | + * Class constructor |
|
26 | + * |
|
27 | + * @throws PclZipProxyException |
|
28 | + */ |
|
29 | 29 | public function __construct($forcedir='') |
30 | 30 | { |
31 | 31 | if (! class_exists('PclZip')) { |
@@ -17,11 +17,11 @@ |
||
17 | 17 | { |
18 | 18 | protected $zipArchive; |
19 | 19 | protected $filename; |
20 | - /** |
|
21 | - * Class constructor |
|
22 | - * |
|
23 | - * @throws PhpZipProxyException |
|
24 | - */ |
|
20 | + /** |
|
21 | + * Class constructor |
|
22 | + * |
|
23 | + * @throws PhpZipProxyException |
|
24 | + */ |
|
25 | 25 | public function __construct() |
26 | 26 | { |
27 | 27 | if (! class_exists('ZipArchive')) { |
@@ -10,41 +10,41 @@ |
||
10 | 10 | */ |
11 | 11 | class SegmentIterator implements RecursiveIterator |
12 | 12 | { |
13 | - private $ref; |
|
14 | - private $key; |
|
15 | - public function __construct(array $ref) |
|
16 | - { |
|
17 | - $this->ref = $ref; |
|
18 | - $this->key = 0; |
|
19 | - $this->keys = array_keys($this->ref); |
|
20 | - } |
|
21 | - public function hasChildren() |
|
22 | - { |
|
23 | - return $this->valid() && $this->current() instanceof Segment; |
|
24 | - } |
|
25 | - public function current() |
|
26 | - { |
|
27 | - return $this->ref[$this->keys[$this->key]]; |
|
28 | - } |
|
29 | - function getChildren() |
|
30 | - { |
|
31 | - return new self($this->current()->children); |
|
32 | - } |
|
33 | - public function key() |
|
34 | - { |
|
35 | - return $this->key; |
|
36 | - } |
|
37 | - public function valid() |
|
38 | - { |
|
39 | - return array_key_exists($this->key, $this->keys); |
|
40 | - } |
|
41 | - public function rewind() |
|
42 | - { |
|
43 | - $this->key = 0; |
|
44 | - } |
|
45 | - public function next() |
|
46 | - { |
|
47 | - $this->key ++; |
|
48 | - } |
|
13 | + private $ref; |
|
14 | + private $key; |
|
15 | + public function __construct(array $ref) |
|
16 | + { |
|
17 | + $this->ref = $ref; |
|
18 | + $this->key = 0; |
|
19 | + $this->keys = array_keys($this->ref); |
|
20 | + } |
|
21 | + public function hasChildren() |
|
22 | + { |
|
23 | + return $this->valid() && $this->current() instanceof Segment; |
|
24 | + } |
|
25 | + public function current() |
|
26 | + { |
|
27 | + return $this->ref[$this->keys[$this->key]]; |
|
28 | + } |
|
29 | + function getChildren() |
|
30 | + { |
|
31 | + return new self($this->current()->children); |
|
32 | + } |
|
33 | + public function key() |
|
34 | + { |
|
35 | + return $this->key; |
|
36 | + } |
|
37 | + public function valid() |
|
38 | + { |
|
39 | + return array_key_exists($this->key, $this->keys); |
|
40 | + } |
|
41 | + public function rewind() |
|
42 | + { |
|
43 | + $this->key = 0; |
|
44 | + } |
|
45 | + public function next() |
|
46 | + { |
|
47 | + $this->key ++; |
|
48 | + } |
|
49 | 49 | } |
50 | 50 |
@@ -156,17 +156,17 @@ |
||
156 | 156 | } |
157 | 157 | |
158 | 158 | /** |
159 | - * Function to replace macros for invoice short and long month, invoice year |
|
160 | - * |
|
161 | - * Substitution occur when the invoice is generated, not considering the invoice date |
|
162 | - * so do not (re)generate in a diferent date than the one that the invoice belongs to |
|
163 | - * Perhaps it would be better to use the invoice issued date but I still do not know |
|
164 | - * how to get it here |
|
165 | - * |
|
166 | - * Miguel Erill 09/04/2017 |
|
167 | - * |
|
168 | - * @param string $value String to convert |
|
169 | - */ |
|
159 | + * Function to replace macros for invoice short and long month, invoice year |
|
160 | + * |
|
161 | + * Substitution occur when the invoice is generated, not considering the invoice date |
|
162 | + * so do not (re)generate in a diferent date than the one that the invoice belongs to |
|
163 | + * Perhaps it would be better to use the invoice issued date but I still do not know |
|
164 | + * how to get it here |
|
165 | + * |
|
166 | + * Miguel Erill 09/04/2017 |
|
167 | + * |
|
168 | + * @param string $value String to convert |
|
169 | + */ |
|
170 | 170 | public function macroReplace($text) |
171 | 171 | { |
172 | 172 | include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; |
@@ -15,5 +15,5 @@ |
||
15 | 15 | // If possible, use a disk cache to enable attaching large attachments etc. |
16 | 16 | // You can override the default temporary directory by setting the TMPDIR environment variable. |
17 | 17 | if (@is_writable($tmpDir = sys_get_temp_dir())) { |
18 | - $preferences->setTempDir($tmpDir)->setCacheType('disk'); |
|
18 | + $preferences->setTempDir($tmpDir)->setCacheType('disk'); |
|
19 | 19 | } |
@@ -6,177 +6,177 @@ |
||
6 | 6 | |
7 | 7 | function generateUpToDateMimeArray() |
8 | 8 | { |
9 | - $preamble = "<?php\n\n"; |
|
10 | - $preamble .= "/*\n"; |
|
11 | - $preamble .= " * This file is part of SwiftMailer.\n"; |
|
12 | - $preamble .= " * (c) 2004-2009 Chris Corbyn\n *\n"; |
|
13 | - $preamble .= " * For the full copyright and license information, please view the LICENSE\n"; |
|
14 | - $preamble .= " * file that was distributed with this source code.\n *\n"; |
|
15 | - $preamble .= " * autogenerated using https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\n"; |
|
16 | - $preamble .= " * and https://raw.github.com/minad/mimemagic/master/script/freedesktop.org.xml\n"; |
|
17 | - $preamble .= " */\n\n"; |
|
18 | - $preamble .= "/*\n"; |
|
19 | - $preamble .= " * List of MIME type automatically detected in Swift Mailer.\n"; |
|
20 | - $preamble .= " */\n\n"; |
|
21 | - $preamble .= "// You may add or take away what you like (lowercase required)\n\n"; |
|
22 | - |
|
23 | - // get current mime types files |
|
24 | - $mime_types = @file_get_contents(APACHE_MIME_TYPES_URL); |
|
25 | - $mime_xml = @file_get_contents(FREEDESKTOP_XML_URL); |
|
26 | - |
|
27 | - // prepare valid mime types |
|
28 | - $valid_mime_types = []; |
|
29 | - |
|
30 | - // split mime type and extensions eg. "video/x-matroska mkv mk3d mks" |
|
31 | - if (false !== preg_match_all('/^#?([a-z0-9\-\+\/\.]+)[\t]+(.*)$/miu', $mime_types, $matches)) { |
|
32 | - // collection of predefined mimetypes (bugfix for wrong resolved or missing mime types) |
|
33 | - $valid_mime_types_preset = [ |
|
34 | - 'php' => 'application/x-php', |
|
35 | - 'php3' => 'application/x-php', |
|
36 | - 'php4' => 'application/x-php', |
|
37 | - 'php5' => 'application/x-php', |
|
38 | - 'zip' => 'application/zip', |
|
39 | - 'gif' => 'image/gif', |
|
40 | - 'png' => 'image/png', |
|
41 | - 'css' => 'text/css', |
|
42 | - 'js' => 'text/javascript', |
|
43 | - 'txt' => 'text/plain', |
|
44 | - 'aif' => 'audio/x-aiff', |
|
45 | - 'aiff' => 'audio/x-aiff', |
|
46 | - 'avi' => 'video/avi', |
|
47 | - 'bmp' => 'image/bmp', |
|
48 | - 'bz2' => 'application/x-bz2', |
|
49 | - 'csv' => 'text/csv', |
|
50 | - 'dmg' => 'application/x-apple-diskimage', |
|
51 | - 'doc' => 'application/msword', |
|
52 | - 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', |
|
53 | - 'eml' => 'message/rfc822', |
|
54 | - 'aps' => 'application/postscript', |
|
55 | - 'exe' => 'application/x-ms-dos-executable', |
|
56 | - 'flv' => 'video/x-flv', |
|
57 | - 'gz' => 'application/x-gzip', |
|
58 | - 'hqx' => 'application/stuffit', |
|
59 | - 'htm' => 'text/html', |
|
60 | - 'html' => 'text/html', |
|
61 | - 'jar' => 'application/x-java-archive', |
|
62 | - 'jpeg' => 'image/jpeg', |
|
63 | - 'jpg' => 'image/jpeg', |
|
64 | - 'm3u' => 'audio/x-mpegurl', |
|
65 | - 'm4a' => 'audio/mp4', |
|
66 | - 'mdb' => 'application/x-msaccess', |
|
67 | - 'mid' => 'audio/midi', |
|
68 | - 'midi' => 'audio/midi', |
|
69 | - 'mov' => 'video/quicktime', |
|
70 | - 'mp3' => 'audio/mpeg', |
|
71 | - 'mp4' => 'video/mp4', |
|
72 | - 'mpeg' => 'video/mpeg', |
|
73 | - 'mpg' => 'video/mpeg', |
|
74 | - 'odg' => 'vnd.oasis.opendocument.graphics', |
|
75 | - 'odp' => 'vnd.oasis.opendocument.presentation', |
|
76 | - 'odt' => 'vnd.oasis.opendocument.text', |
|
77 | - 'ods' => 'vnd.oasis.opendocument.spreadsheet', |
|
78 | - 'ogg' => 'audio/ogg', |
|
79 | - 'pdf' => 'application/pdf', |
|
80 | - 'ppt' => 'application/vnd.ms-powerpoint', |
|
81 | - 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', |
|
82 | - 'ps' => 'application/postscript', |
|
83 | - 'rar' => 'application/x-rar-compressed', |
|
84 | - 'rtf' => 'application/rtf', |
|
85 | - 'tar' => 'application/x-tar', |
|
86 | - 'sit' => 'application/x-stuffit', |
|
87 | - 'svg' => 'image/svg+xml', |
|
88 | - 'tif' => 'image/tiff', |
|
89 | - 'tiff' => 'image/tiff', |
|
90 | - 'ttf' => 'application/x-font-truetype', |
|
91 | - 'vcf' => 'text/x-vcard', |
|
92 | - 'wav' => 'audio/wav', |
|
93 | - 'wma' => 'audio/x-ms-wma', |
|
94 | - 'wmv' => 'audio/x-ms-wmv', |
|
95 | - 'xls' => 'application/vnd.ms-excel', |
|
96 | - 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', |
|
97 | - 'xml' => 'application/xml', |
|
98 | - ]; |
|
99 | - |
|
100 | - // wrap array for generating file |
|
101 | - foreach ($valid_mime_types_preset as $extension => $mime_type) { |
|
102 | - // generate array for mimetype to extension resolver (only first match) |
|
103 | - $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; |
|
104 | - } |
|
105 | - |
|
106 | - // all extensions from second match |
|
107 | - foreach ($matches[2] as $i => $extensions) { |
|
108 | - // explode multiple extensions from string |
|
109 | - $extensions = explode(' ', strtolower($extensions ?? '')); |
|
110 | - |
|
111 | - // force array for foreach |
|
112 | - if (!\is_array($extensions)) { |
|
113 | - $extensions = [$extensions]; |
|
114 | - } |
|
115 | - |
|
116 | - foreach ($extensions as $extension) { |
|
117 | - // get mime type |
|
118 | - $mime_type = $matches[1][$i]; |
|
119 | - |
|
120 | - // check if string length lower than 10 |
|
121 | - if (\strlen($extension) < 10) { |
|
122 | - if (!isset($valid_mime_types[$mime_type])) { |
|
123 | - // generate array for mimetype to extension resolver (only first match) |
|
124 | - $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; |
|
125 | - } |
|
126 | - } |
|
127 | - } |
|
128 | - } |
|
129 | - } |
|
130 | - |
|
131 | - $xml = simplexml_load_string($mime_xml); |
|
132 | - |
|
133 | - foreach ($xml as $node) { |
|
134 | - // check if there is no pattern |
|
135 | - if (!isset($node->glob['pattern'])) { |
|
136 | - continue; |
|
137 | - } |
|
138 | - |
|
139 | - // get all matching extensions from match |
|
140 | - foreach ((array) $node->glob['pattern'] as $extension) { |
|
141 | - // skip none glob extensions |
|
142 | - if (false === strpos($extension ?? '', '.')) { |
|
143 | - continue; |
|
144 | - } |
|
145 | - |
|
146 | - // remove get only last part |
|
147 | - $extension = explode('.', strtolower($extension ?? '')); |
|
148 | - $extension = end($extension); |
|
149 | - } |
|
150 | - |
|
151 | - if (isset($node->glob['pattern'][0])) { |
|
152 | - // mime type |
|
153 | - $mime_type = strtolower((string) $node['type'] ?? ''); |
|
154 | - |
|
155 | - // get first extension |
|
156 | - $extension = strtolower(trim($node->glob['ddpattern'][0] ?? '', '*.')); |
|
157 | - |
|
158 | - // skip none glob extensions and check if string length between 1 and 10 |
|
159 | - if (false !== strpos($extension, '.') || \strlen($extension) < 1 || \strlen($extension) > 9) { |
|
160 | - continue; |
|
161 | - } |
|
162 | - |
|
163 | - // check if string length lower than 10 |
|
164 | - if (!isset($valid_mime_types[$mime_type])) { |
|
165 | - // generate array for mimetype to extension resolver (only first match) |
|
166 | - $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; |
|
167 | - } |
|
168 | - } |
|
169 | - } |
|
170 | - |
|
171 | - // full list of valid extensions only |
|
172 | - $valid_mime_types = array_unique($valid_mime_types); |
|
173 | - ksort($valid_mime_types); |
|
174 | - |
|
175 | - // combine mime types and extensions array |
|
176 | - $output = "$preamble\$swift_mime_types = array(\n ".implode(",\n ", $valid_mime_types)."\n);"; |
|
177 | - |
|
178 | - // write mime_types.php config file |
|
179 | - @file_put_contents('./mime_types.php', $output); |
|
9 | + $preamble = "<?php\n\n"; |
|
10 | + $preamble .= "/*\n"; |
|
11 | + $preamble .= " * This file is part of SwiftMailer.\n"; |
|
12 | + $preamble .= " * (c) 2004-2009 Chris Corbyn\n *\n"; |
|
13 | + $preamble .= " * For the full copyright and license information, please view the LICENSE\n"; |
|
14 | + $preamble .= " * file that was distributed with this source code.\n *\n"; |
|
15 | + $preamble .= " * autogenerated using https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\n"; |
|
16 | + $preamble .= " * and https://raw.github.com/minad/mimemagic/master/script/freedesktop.org.xml\n"; |
|
17 | + $preamble .= " */\n\n"; |
|
18 | + $preamble .= "/*\n"; |
|
19 | + $preamble .= " * List of MIME type automatically detected in Swift Mailer.\n"; |
|
20 | + $preamble .= " */\n\n"; |
|
21 | + $preamble .= "// You may add or take away what you like (lowercase required)\n\n"; |
|
22 | + |
|
23 | + // get current mime types files |
|
24 | + $mime_types = @file_get_contents(APACHE_MIME_TYPES_URL); |
|
25 | + $mime_xml = @file_get_contents(FREEDESKTOP_XML_URL); |
|
26 | + |
|
27 | + // prepare valid mime types |
|
28 | + $valid_mime_types = []; |
|
29 | + |
|
30 | + // split mime type and extensions eg. "video/x-matroska mkv mk3d mks" |
|
31 | + if (false !== preg_match_all('/^#?([a-z0-9\-\+\/\.]+)[\t]+(.*)$/miu', $mime_types, $matches)) { |
|
32 | + // collection of predefined mimetypes (bugfix for wrong resolved or missing mime types) |
|
33 | + $valid_mime_types_preset = [ |
|
34 | + 'php' => 'application/x-php', |
|
35 | + 'php3' => 'application/x-php', |
|
36 | + 'php4' => 'application/x-php', |
|
37 | + 'php5' => 'application/x-php', |
|
38 | + 'zip' => 'application/zip', |
|
39 | + 'gif' => 'image/gif', |
|
40 | + 'png' => 'image/png', |
|
41 | + 'css' => 'text/css', |
|
42 | + 'js' => 'text/javascript', |
|
43 | + 'txt' => 'text/plain', |
|
44 | + 'aif' => 'audio/x-aiff', |
|
45 | + 'aiff' => 'audio/x-aiff', |
|
46 | + 'avi' => 'video/avi', |
|
47 | + 'bmp' => 'image/bmp', |
|
48 | + 'bz2' => 'application/x-bz2', |
|
49 | + 'csv' => 'text/csv', |
|
50 | + 'dmg' => 'application/x-apple-diskimage', |
|
51 | + 'doc' => 'application/msword', |
|
52 | + 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', |
|
53 | + 'eml' => 'message/rfc822', |
|
54 | + 'aps' => 'application/postscript', |
|
55 | + 'exe' => 'application/x-ms-dos-executable', |
|
56 | + 'flv' => 'video/x-flv', |
|
57 | + 'gz' => 'application/x-gzip', |
|
58 | + 'hqx' => 'application/stuffit', |
|
59 | + 'htm' => 'text/html', |
|
60 | + 'html' => 'text/html', |
|
61 | + 'jar' => 'application/x-java-archive', |
|
62 | + 'jpeg' => 'image/jpeg', |
|
63 | + 'jpg' => 'image/jpeg', |
|
64 | + 'm3u' => 'audio/x-mpegurl', |
|
65 | + 'm4a' => 'audio/mp4', |
|
66 | + 'mdb' => 'application/x-msaccess', |
|
67 | + 'mid' => 'audio/midi', |
|
68 | + 'midi' => 'audio/midi', |
|
69 | + 'mov' => 'video/quicktime', |
|
70 | + 'mp3' => 'audio/mpeg', |
|
71 | + 'mp4' => 'video/mp4', |
|
72 | + 'mpeg' => 'video/mpeg', |
|
73 | + 'mpg' => 'video/mpeg', |
|
74 | + 'odg' => 'vnd.oasis.opendocument.graphics', |
|
75 | + 'odp' => 'vnd.oasis.opendocument.presentation', |
|
76 | + 'odt' => 'vnd.oasis.opendocument.text', |
|
77 | + 'ods' => 'vnd.oasis.opendocument.spreadsheet', |
|
78 | + 'ogg' => 'audio/ogg', |
|
79 | + 'pdf' => 'application/pdf', |
|
80 | + 'ppt' => 'application/vnd.ms-powerpoint', |
|
81 | + 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', |
|
82 | + 'ps' => 'application/postscript', |
|
83 | + 'rar' => 'application/x-rar-compressed', |
|
84 | + 'rtf' => 'application/rtf', |
|
85 | + 'tar' => 'application/x-tar', |
|
86 | + 'sit' => 'application/x-stuffit', |
|
87 | + 'svg' => 'image/svg+xml', |
|
88 | + 'tif' => 'image/tiff', |
|
89 | + 'tiff' => 'image/tiff', |
|
90 | + 'ttf' => 'application/x-font-truetype', |
|
91 | + 'vcf' => 'text/x-vcard', |
|
92 | + 'wav' => 'audio/wav', |
|
93 | + 'wma' => 'audio/x-ms-wma', |
|
94 | + 'wmv' => 'audio/x-ms-wmv', |
|
95 | + 'xls' => 'application/vnd.ms-excel', |
|
96 | + 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', |
|
97 | + 'xml' => 'application/xml', |
|
98 | + ]; |
|
99 | + |
|
100 | + // wrap array for generating file |
|
101 | + foreach ($valid_mime_types_preset as $extension => $mime_type) { |
|
102 | + // generate array for mimetype to extension resolver (only first match) |
|
103 | + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; |
|
104 | + } |
|
105 | + |
|
106 | + // all extensions from second match |
|
107 | + foreach ($matches[2] as $i => $extensions) { |
|
108 | + // explode multiple extensions from string |
|
109 | + $extensions = explode(' ', strtolower($extensions ?? '')); |
|
110 | + |
|
111 | + // force array for foreach |
|
112 | + if (!\is_array($extensions)) { |
|
113 | + $extensions = [$extensions]; |
|
114 | + } |
|
115 | + |
|
116 | + foreach ($extensions as $extension) { |
|
117 | + // get mime type |
|
118 | + $mime_type = $matches[1][$i]; |
|
119 | + |
|
120 | + // check if string length lower than 10 |
|
121 | + if (\strlen($extension) < 10) { |
|
122 | + if (!isset($valid_mime_types[$mime_type])) { |
|
123 | + // generate array for mimetype to extension resolver (only first match) |
|
124 | + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; |
|
125 | + } |
|
126 | + } |
|
127 | + } |
|
128 | + } |
|
129 | + } |
|
130 | + |
|
131 | + $xml = simplexml_load_string($mime_xml); |
|
132 | + |
|
133 | + foreach ($xml as $node) { |
|
134 | + // check if there is no pattern |
|
135 | + if (!isset($node->glob['pattern'])) { |
|
136 | + continue; |
|
137 | + } |
|
138 | + |
|
139 | + // get all matching extensions from match |
|
140 | + foreach ((array) $node->glob['pattern'] as $extension) { |
|
141 | + // skip none glob extensions |
|
142 | + if (false === strpos($extension ?? '', '.')) { |
|
143 | + continue; |
|
144 | + } |
|
145 | + |
|
146 | + // remove get only last part |
|
147 | + $extension = explode('.', strtolower($extension ?? '')); |
|
148 | + $extension = end($extension); |
|
149 | + } |
|
150 | + |
|
151 | + if (isset($node->glob['pattern'][0])) { |
|
152 | + // mime type |
|
153 | + $mime_type = strtolower((string) $node['type'] ?? ''); |
|
154 | + |
|
155 | + // get first extension |
|
156 | + $extension = strtolower(trim($node->glob['ddpattern'][0] ?? '', '*.')); |
|
157 | + |
|
158 | + // skip none glob extensions and check if string length between 1 and 10 |
|
159 | + if (false !== strpos($extension, '.') || \strlen($extension) < 1 || \strlen($extension) > 9) { |
|
160 | + continue; |
|
161 | + } |
|
162 | + |
|
163 | + // check if string length lower than 10 |
|
164 | + if (!isset($valid_mime_types[$mime_type])) { |
|
165 | + // generate array for mimetype to extension resolver (only first match) |
|
166 | + $valid_mime_types[$extension] = "'{$extension}' => '{$mime_type}'"; |
|
167 | + } |
|
168 | + } |
|
169 | + } |
|
170 | + |
|
171 | + // full list of valid extensions only |
|
172 | + $valid_mime_types = array_unique($valid_mime_types); |
|
173 | + ksort($valid_mime_types); |
|
174 | + |
|
175 | + // combine mime types and extensions array |
|
176 | + $output = "$preamble\$swift_mime_types = array(\n ".implode(",\n ", $valid_mime_types)."\n);"; |
|
177 | + |
|
178 | + // write mime_types.php config file |
|
179 | + @file_put_contents('./mime_types.php', $output); |
|
180 | 180 | } |
181 | 181 | |
182 | 182 | generateUpToDateMimeArray(); |
@@ -1,23 +1,23 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | Swift_DependencyContainer::getInstance() |
4 | - ->register('cache') |
|
5 | - ->asAliasOf('cache.array') |
|
4 | + ->register('cache') |
|
5 | + ->asAliasOf('cache.array') |
|
6 | 6 | |
7 | - ->register('tempdir') |
|
8 | - ->asValue('/tmp') |
|
7 | + ->register('tempdir') |
|
8 | + ->asValue('/tmp') |
|
9 | 9 | |
10 | - ->register('cache.null') |
|
11 | - ->asSharedInstanceOf('Swift_KeyCache_NullKeyCache') |
|
10 | + ->register('cache.null') |
|
11 | + ->asSharedInstanceOf('Swift_KeyCache_NullKeyCache') |
|
12 | 12 | |
13 | - ->register('cache.array') |
|
14 | - ->asSharedInstanceOf('Swift_KeyCache_ArrayKeyCache') |
|
15 | - ->withDependencies(['cache.inputstream']) |
|
13 | + ->register('cache.array') |
|
14 | + ->asSharedInstanceOf('Swift_KeyCache_ArrayKeyCache') |
|
15 | + ->withDependencies(['cache.inputstream']) |
|
16 | 16 | |
17 | - ->register('cache.disk') |
|
18 | - ->asSharedInstanceOf('Swift_KeyCache_DiskKeyCache') |
|
19 | - ->withDependencies(['cache.inputstream', 'tempdir']) |
|
17 | + ->register('cache.disk') |
|
18 | + ->asSharedInstanceOf('Swift_KeyCache_DiskKeyCache') |
|
19 | + ->withDependencies(['cache.inputstream', 'tempdir']) |
|
20 | 20 | |
21 | - ->register('cache.inputstream') |
|
22 | - ->asNewInstanceOf('Swift_KeyCache_SimpleKeyCacheInputStream') |
|
21 | + ->register('cache.inputstream') |
|
22 | + ->asNewInstanceOf('Swift_KeyCache_SimpleKeyCacheInputStream') |
|
23 | 23 | ; |