[TASK] Removes extra empty lines
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Classes / Resource / Processing / AbstractGraphicalTask.php
1 <?php
2 namespace TYPO3\CMS\Core\Resource\Processing;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 /**
18 * Abstract base implementation of a task.
19 *
20 * If you extend this class, make sure that you redefine the member variables $type and $name
21 * or set them in the constructor. Otherwise your task won't be recognized by the system and several
22 * things will fail.
23 */
24 abstract class AbstractGraphicalTask extends AbstractTask
25 {
26 /**
27 * @var string
28 */
29 protected $targetFileExtension;
30
31 /**
32 * Returns the name the processed file should have
33 * in the filesystem.
34 *
35 * @return string
36 */
37 public function getTargetFilename()
38 {
39 return $this->getSourceFile()->getNameWithoutExtension()
40 . '_' . $this->getConfigurationChecksum()
41 . '.' . $this->getTargetFileExtension();
42 }
43
44 /**
45 * Determines the file extension the processed file
46 * should have in the filesystem.
47 *
48 * @return string
49 */
50 public function getTargetFileExtension()
51 {
52 if (!isset($this->targetFileExtension)) {
53 $this->targetFileExtension = $this->determineTargetFileExtension();
54 }
55
56 return $this->targetFileExtension;
57 }
58
59 /**
60 * Gets the file extension the processed file should
61 * have in the filesystem by either using the configuration
62 * setting, or the extension of the original file.
63 *
64 * @return string
65 */
66 protected function determineTargetFileExtension()
67 {
68 if (!empty($this->configuration['fileExtension'])) {
69 $targetFileExtension = $this->configuration['fileExtension'];
70 } else {
71 // explanation for "thumbnails_png"
72 // Bit0: If set, thumbnails from non-jpegs will be 'png', otherwise 'gif' (0=gif/1=png).
73 // Bit1: Even JPG's will be converted to png or gif (2=gif/3=png)
74
75 $targetFileExtensionConfiguration = $GLOBALS['TYPO3_CONF_VARS']['GFX']['thumbnails_png'];
76 if ($this->getSourceFile()->getExtension() === 'jpg' || $this->getSourceFile()->getExtension() === 'jpeg') {
77 if ($targetFileExtensionConfiguration == 2) {
78 $targetFileExtension = 'gif';
79 } elseif ($targetFileExtensionConfiguration == 3) {
80 $targetFileExtension = 'png';
81 } else {
82 $targetFileExtension = 'jpg';
83 }
84 } else {
85 // check if a png or a gif should be created
86 if ($targetFileExtensionConfiguration == 1 || $this->getSourceFile()->getExtension() === 'png') {
87 $targetFileExtension = 'png';
88 } else {
89 // thumbnails_png is "0"
90 $targetFileExtension = 'gif';
91 }
92 }
93 }
94
95 return $targetFileExtension;
96 }
97 }