Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
TYPO3
sg_mail
Commits
58ab68c0
Commit
58ab68c0
authored
Sep 14, 2016
by
Torsten Oppermann
Browse files
[TASK] Updating Views, Viewhelpers and Controller
parent
52f971de
Changes
5
Hide whitespace changes
Inline
Side-by-side
Classes/Controller/MailController.php
View file @
58ab68c0
...
...
@@ -54,21 +54,31 @@ class MailController extends ActionController {
$this
->
view
->
assign
(
'languages'
,
$languages
);
$this
->
view
->
assign
(
'templates'
,
MailTemplateService
::
getRegisterArray
());
if
(
$this
->
request
->
hasArgument
(
'selectedTemplate'
))
{
if
(
$this
->
request
->
hasArgument
(
'selectedTemplate'
)
&&
!
$this
->
request
->
hasArgument
(
'selectedLanguage'
)
)
{
$registerArray
=
MailTemplateService
::
getRegisterArray
();
$selectedTemplate
=
$registerArray
[
$this
->
request
->
getArgument
(
'selectedTemplate'
)];
$this
->
view
->
assign
(
'selectedTemplate'
,
$selectedTemplate
);
$this
->
view
->
assign
(
'selectedTemplateKey'
,
$this
->
request
->
getArgument
(
'selectedTemplate'
));
}
else
{
}
elseif
(
!
$this
->
request
->
hasArgument
(
'selectedLanguage'
))
{
reset
(
MailTemplateService
::
getRegisterArray
());
$firstEntry
=
key
(
MailTemplateService
::
getRegisterArray
());
$this
->
view
->
assign
(
'selectedTemplate'
,
MailTemplateService
::
getRegisterArray
()[
$firstEntry
]);
$this
->
view
->
assign
(
'selectedTemplateKey'
,
$firstEntry
);
}
if
(
$this
->
request
->
hasArgument
(
'selectedLanguage'
))
{
$this
->
view
->
assign
(
'selectedLanguage'
,
$this
->
request
->
hasArgument
(
'selectedLanguage'
));
if
(
$this
->
request
->
hasArgument
(
'selectedLanguage'
)
&&
$this
->
request
->
hasArgument
(
'selectedTemplate'
)
&&
$this
->
request
->
hasArgument
(
'selectedTemplateKey'
)
)
{
$this
->
view
->
assign
(
'selectedLanguage'
,
$this
->
request
->
getArgument
(
'selectedLanguage'
));
$this
->
view
->
assign
(
'selectedTemplate'
,
$this
->
request
->
getArgument
(
'selectedTemplate'
));
$this
->
view
->
assign
(
'selectedTemplateKey'
,
$this
->
request
->
getArgument
(
'selectedTemplateKey'
));
}
else
{
$this
->
view
->
assign
(
'selectedLanguage'
,
'en'
);
}
...
...
Classes/Service/MailTemplateService.php
View file @
58ab68c0
...
...
@@ -26,27 +26,38 @@ namespace SGalinski\SgMail\Service;
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use
TYPO3\CMS\Core\SingletonInterface
;
use
TYPO3\CMS\Core\Utility\ExtensionManagementUtility
;
use
TYPO3\CMS\Lang\Domain\Model\Language
;
use
TYPO3\CMS\Lang\Domain\Repository\LanguageRepository
;
/**
* MailTemplateService
*/
class
MailTemplateService
{
/**
* @var \TYPO3\CMS\Lang\Domain\Repository\LanguageRepository
* @inject
*/
protected
static
$languageRepository
=
NULL
;
/**
* @var array
*/
private
static
$registerArray
=
[];
/**
* @param string $extension
* @param string $extensionKey
* @param string $template
* @param array $marker
* @return string
*/
public
static
function
registerTemplate
(
$extension
,
$templateName
,
$templateFiles
,
$description
,
array
$marker
)
{
public
static
function
registerTemplate
(
$extension
,
$templateName
,
$templatePath
,
$description
,
array
$marker
)
{
MailTemplateService
::
$registerArray
[
$templateName
]
=
[
'templatePath'
=>
$templatePath
,
'description'
=>
$description
,
'templateFiles'
=>
$templateFiles
,
'marker'
=>
$marker
,
'extension'
=>
$extension
];
...
...
@@ -58,5 +69,4 @@ class MailTemplateService {
public
static
function
getRegisterArray
()
{
return
self
::
$registerArray
;
}
}
Classes/ViewHelpers/Be/Menus/ActionMenuItemViewHelper.php
View file @
58ab68c0
<?php
namespace
SGalinski\SgMail\ViewHelpers\Be\Menus
;
/***************************************************************
* Copyright notice
*
* (c) sgalinski Internet Services (https://www.sgalinski.de)
*
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
* Class ActionMenuItemViewHelper
*
* This is just a re-implemntation of the core view helper with the same name
* only difference so far is the selected option is not automatically set if you cann the same action&controller
*
* @package SGalinski\SgMail\ViewHelpers\Be\Menus
*/
class
ActionMenuItemViewHelper
extends
\
TYPO3\CMS\Fluid\Core\ViewHelper\AbstractTagBasedViewHelper
{
/**
* @var string
*/
protected
$tagName
=
'option'
;
/**
* Renders an ActionMenu option tag
*
* @param string $label label of the option tag
* @param string $controller controller to be associated with this ActionMenuItem
* @param string $action the action to be associated with this ActionMenuItem
* @param array $arguments additional controller arguments to be passed to the action when this ActionMenuItem is selected
* @return string the rendered option tag
* @see \TYPO3\CMS\Fluid\ViewHelpers\Be\Menus\ActionMenuViewHelper
*/
public
function
render
(
$label
,
$controller
,
$action
,
array
$arguments
=
[])
{
$uriBuilder
=
$this
->
controllerContext
->
getUriBuilder
();
$uri
=
$uriBuilder
->
reset
()
->
uriFor
(
$action
,
$arguments
,
$controller
);
$this
->
tag
->
addAttribute
(
'value'
,
$uri
);
$currentRequest
=
$this
->
controllerContext
->
getRequest
();
$currentController
=
$currentRequest
->
getControllerName
();
$currentAction
=
$currentRequest
->
getControllerActionName
();
$this
->
tag
->
setContent
(
$label
);
return
$this
->
tag
->
render
();
}
}
Resources/Private/Layouts/Default.html
View file @
58ab68c0
...
...
@@ -9,24 +9,21 @@
<f:be.menus.actionMenu>
<f:for
each=
"{templates}"
as=
"template"
key=
"templateKey"
>
<sgm:be.menus.actionMenuOptionGroup
label=
"{template.extension}"
>
<f:for
each=
"{template.templateFiles}"
as=
"langFileLabel"
key=
"langFileOption"
>
<sgm:extendedIf
condition=
"{template.extension} == {extensionSelection}"
and=
"{langFileOption} == {languageFileSelection}"
>
<sgm:extendedIf
condition=
"{selectedTemplateKey} == {templateKey}"
>
<f:then>
<
f
:be.menus.actionMenuItem
label=
"{
langFileLabel
}"
controller=
"
{controllerName}
"
action=
"
changeSelection
"
arguments=
"{
extensionSelection: extAddress, languageFileSelection: langFileOption
}"
<
sgm
:be.menus.actionMenuItem
label=
"{
templateKey
}"
controller=
"
Mail
"
action=
"
index
"
arguments=
"{
selectedTemplate: templateKey
}"
additionalAttributes=
"{selected: 'selected'}"
/>
</f:then>
<f:else>
<
f
:be.menus.actionMenuItem
label=
"{
langFileLabel
}"
controller=
"
{controllerName}
"
action=
"
changeSelection
"
arguments=
"{
extensionSelection: extAddress, languageFileSelection: langFileOption
}"
/>
<
sgm
:be.menus.actionMenuItem
label=
"{
templateKey
}"
controller=
"
Mail
"
action=
"
index
"
arguments=
"{
selectedTemplate: templateKey
}"
/>
</f:else>
</sgm:extendedIf>
</f:for>
</sgm:be.menus.actionMenuOptionGroup>
</f:for>
</f:be.menus.actionMenu>
...
...
Resources/Private/Templates/Mail/Index.html
View file @
58ab68c0
{namespace sgm=SGalinski\SgMail\ViewHelpers}
<f:layout
name=
"Default"
/>
<f:section
name=
"iconButtons"
>
</f:section>
<f:section
name=
"main"
>
<f:flashMessages
renderMode=
"div"
/>
<strong>
{selectedTemplate.templatePath}
</strong>
<table
class=
"table table-hover"
>
<thead>
<tr>
<th>
Marker
</th>
<th>
Value
</th>
<th>
Description
</th>
</tr>
</thead>
<f:for
each=
"{selectedTemplate.marker}"
as=
"marker"
>
<tr>
<td>
{marker.marker}
</td>
<td>
{marker.value}
</td>
<td>
{marker.description}
</td>
</tr>
</f:for>
</table>
<f:be.menus.actionMenu>
<f:for
each=
"{languages}"
as=
"language"
>
<sgm:extendedIf
condition=
"{language} == {selectedLanguage}"
>
<f:then>
<sgm:be.menus.actionMenuItem
label=
"{language}"
controller=
"Mail"
action=
"index"
arguments=
"{selectedLanguage: language, selectedTemplate: selectedTemplate, selectedTemplateKey: selectedTemplateKey}"
additionalAttributes=
"{selected: 'selected'}"
/>
</f:then>
<f:else>
<sgm:be.menus.actionMenuItem
label=
"{language}"
controller=
"Mail"
action=
"index"
arguments=
"{selectedLanguage: language, selectedTemplate: selectedTemplate, selectedTemplateKey: selectedTemplateKey}"
/>
</f:else>
</sgm:extendedIf>
</f:for>
</f:be.menus.actionMenu>
<f:form
method=
"post"
controller=
"Mail"
action=
"save"
>
<br
/>
<f:form.textarea
class=
"col-md-5"
rows=
"25"
></f:form.textarea>
<br
/>
<f:form.submit
class=
"btn-default col-md-1"
value=
"Save"
/>
</f:form>
</f:section>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment