77 *
88 * It is free software; you can redistribute it and/or modify it under
99 * the terms of the GNU General Public License, either version 2
10- * of the License, or any later version.
10+ * of the License or any later version.
1111 *
1212 * For the full copyright and license information, please read the
1313 * LICENSE.txt file that was distributed with this source code.
2121use Psr \Http \Message \ServerRequestInterface ;
2222use TYPO3 \CMS \Backend \Attribute \AsController ;
2323use TYPO3 \CMS \Backend \Routing \UriBuilder ;
24+ use TYPO3 \CMS \Backend \Template \Components \ComponentFactory ;
2425use TYPO3 \CMS \Backend \Template \ModuleTemplate ;
2526use TYPO3 \CMS \Backend \Template \ModuleTemplateFactory ;
2627use TYPO3 \CMS \Core \Http \PropagateResponseException ;
@@ -39,16 +40,14 @@ public function __construct(
3940 protected ModuleTemplateFactory $ moduleTemplateFactory ,
4041 protected Converter $ fileConverter ,
4142 protected ExtensionService $ extensionService ,
43+ protected ComponentFactory $ componentFactory ,
4244 ) {}
4345
4446 public function selectExtensionAction (ServerRequestInterface $ request ): ResponseInterface
4547 {
4648 [$ extensions ] = $ this ->prepareExtensions ($ request , false );
4749
48- $ moduleTemplate = $ this ->initializeModuleTemplate (
49- $ request ,
50- 'LLL:EXT:ew_llxml2xliff/Resources/Private/Language/locallang.xlf:extension '
51- );
50+ $ moduleTemplate = $ this ->initializeModuleTemplate ($ request , 'ew_llxml2xliff.messages:extension ' );
5251 $ moduleTemplate ->assign ('extensions ' , $ extensions );
5352 return $ moduleTemplate ->renderResponse ('File/SelectExtension ' );
5453 }
@@ -58,10 +57,7 @@ public function selectFileAction(ServerRequestInterface $request): ResponseInter
5857 [$ extensions , $ selectedExtension , $ selectedExtensionKey ] = $ this ->prepareExtensions ($ request );
5958 [$ files ] = $ this ->prepareFiles ($ request , $ selectedExtensionKey , false );
6059
61- $ moduleTemplate = $ this ->initializeModuleTemplate (
62- $ request ,
63- 'LLL:EXT:ew_llxml2xliff/Resources/Private/Language/locallang.xlf:file '
64- );
60+ $ moduleTemplate = $ this ->initializeModuleTemplate ($ request , 'ew_llxml2xliff.messages:file ' );
6561 $ moduleTemplate ->assignMultiple ([
6662 'extensions ' => $ extensions ,
6763 'selectedExtension ' => $ selectedExtension ,
@@ -76,10 +72,7 @@ public function confirmConversionAction(ServerRequestInterface $request): Respon
7672 [$ extensions , $ selectedExtension , $ selectedExtensionKey ] = $ this ->prepareExtensions ($ request );
7773 [$ files , $ selectedFile , $ selectedFileKey ] = $ this ->prepareFiles ($ request , $ selectedExtensionKey );
7874
79- $ moduleTemplate = $ this ->initializeModuleTemplate (
80- $ request ,
81- 'LLL:EXT:ew_llxml2xliff/Resources/Private/Language/locallang.xlf:confirm_selection '
82- );
75+ $ moduleTemplate = $ this ->initializeModuleTemplate ($ request , 'ew_llxml2xliff.messages:confirm_selection ' );
8376 $ moduleTemplate ->assignMultiple ([
8477 'extensions ' => $ extensions ,
8578 'selectedExtension ' => $ selectedExtension ,
@@ -99,10 +92,7 @@ public function convertFileAction(ServerRequestInterface $request): ResponseInte
9992 $ conversionResult = $ this ->extensionService
10093 ->convertLanguageFile ($ selectedExtensionKey , $ selectedFileKey , $ files );
10194
102- $ moduleTemplate = $ this ->initializeModuleTemplate (
103- $ request ,
104- 'LLL:EXT:ew_llxml2xliff/Resources/Private/Language/locallang.xlf:finish '
105- );
95+ $ moduleTemplate = $ this ->initializeModuleTemplate ($ request , 'ew_llxml2xliff.messages:finish ' );
10696 $ moduleTemplate ->assignMultiple ([
10797 'extensions ' => $ extensions ,
10898 'selectedExtension ' => $ selectedExtension ,
@@ -117,7 +107,6 @@ public function convertFileAction(ServerRequestInterface $request): ResponseInte
117107
118108 /**
119109 * @return array<string|array<array<string, string>>>
120- * @throws PropagateResponseException
121110 */
122111 protected function prepareExtensions (ServerRequestInterface $ request , bool $ selected = true ): array
123112 {
@@ -139,7 +128,6 @@ protected function prepareExtensions(ServerRequestInterface $request, bool $sele
139128
140129 /**
141130 * @return array<string|array<array<string, string>>>
142- * @throws PropagateResponseException
143131 */
144132 protected function prepareFiles (ServerRequestInterface $ request , string $ extension , bool $ selected = true ): array
145133 {
@@ -161,25 +149,23 @@ protected function prepareFiles(ServerRequestInterface $request, string $extensi
161149
162150 /**
163151 * @param array<string, mixed> $extensions
164- * @throws PropagateResponseException
165152 */
166153 protected function getSelectedExtension (ServerRequestInterface $ request , array $ extensions ): string
167154 {
168155 $ selectedExtension = $ this ->isArgumentSetAndAvailable ($ request , $ extensions , 'extension ' );
169- if (! $ selectedExtension ) {
156+ if ($ selectedExtension === '' ) {
170157 throw new PropagateResponseException ($ this ->selectExtensionAction ($ request ));
171158 }
172159 return $ selectedExtension ;
173160 }
174161
175162 /**
176163 * @param array<string, mixed> $files
177- * @throws PropagateResponseException
178164 */
179165 protected function getSelectedFile (ServerRequestInterface $ request , array $ files ): string
180166 {
181167 $ selectedFile = $ this ->isArgumentSetAndAvailable ($ request , $ files , 'file ' );
182- if (! $ selectedFile ) {
168+ if ($ selectedFile === '' ) {
183169 throw new PropagateResponseException ($ this ->selectFileAction ($ request ));
184170 }
185171 return $ selectedFile ;
@@ -188,34 +174,31 @@ protected function getSelectedFile(ServerRequestInterface $request, array $files
188174 /**
189175 * @param array<string, mixed> $values
190176 */
191- protected function isArgumentSetAndAvailable (ServerRequestInterface $ request , array $ values , string $ key ): ? string
177+ protected function isArgumentSetAndAvailable (ServerRequestInterface $ request , array $ values , string $ key ): string
192178 {
193- $ formFieldValue = (string )($ request ->getParsedBody ()[$ key ] ?? $ request ->getQueryParams ()[$ key ] ?? '' );
194- return ($ formFieldValue !== '' && isset ($ values [$ formFieldValue ])) ? $ formFieldValue : null ;
179+ $ moduleData = $ request ->getAttribute ('moduleData ' );
180+ $ moduleData ->cleanUp (['extension ' , 'file ' ]);
181+ $ formFieldValue = $ moduleData ->get ($ key );
182+ return ($ formFieldValue !== '' && isset ($ values [$ formFieldValue ])) ? $ formFieldValue : '' ;
195183 }
196184
197185 protected function initializeModuleTemplate (ServerRequestInterface $ request , string $ context ): ModuleTemplate
198186 {
199- $ this ->pageRenderer ->addCssFile ('EXT:ew_llxml2xliff/Resources/Public/Css/form.css ' );
200-
201187 $ moduleTemplate = $ this ->moduleTemplateFactory ->create ($ request );
202188 $ moduleTemplate ->setTitle (
203- $ this ->getLanguageService ()->sL (
204- 'LLL:EXT:ew_llxml2xliff/Resources/Private/Language/locallang_mod.xlf:mlang_tabs_tab '
205- ),
189+ $ this ->getLanguageService ()->sL ('ew_llxml2xliff.mod:title ' ),
206190 $ this ->getLanguageService ()->sL ($ context )
207191 );
208192
209- $ buttonBar = $ moduleTemplate ->getDocHeaderComponent ()->getButtonBar ();
210-
211193 try {
194+ $ buttonBar = $ moduleTemplate ->getDocHeaderComponent ()->getButtonBar ();
212195 $ newFileConversionUrl = (string )$ this ->uriBuilder ->buildUriFromRoute ('web_EwLlxml2xliff ' );
213- $ newFileConversionButton = $ buttonBar -> makeLinkButton ()
196+ $ newFileConversionButton = $ this -> componentFactory -> createLinkButton ()
214197 ->setDataAttributes (['identifier ' => 'newFileConversion ' ])
215198 ->setHref ($ newFileConversionUrl )
216199 ->setTitle (
217200 $ this ->getLanguageService ()->sL (
218- 'LLL:EXT: ew_llxml2xliff/Resources/Private/Language/locallang.xlf :start_new_conversion '
201+ 'ew_llxml2xliff.messages :start_new_conversion '
219202 )
220203 )
221204 ->setShowLabelText (true )
0 commit comments