Skip to content
Snippets Groups Projects
Commit 3beef7ca authored by Torsten Oppermann's avatar Torsten Oppermann
Browse files

[TASK] Sgmail integration

parent b59516a0
No related branches found
Tags 6.0.0
No related merge requests found
...@@ -27,6 +27,9 @@ namespace SGalinski\SgJobs\Controller; ...@@ -27,6 +27,9 @@ namespace SGalinski\SgJobs\Controller;
***************************************************************/ ***************************************************************/
use SGalinski\SgJobs\Service\BackendService; use SGalinski\SgJobs\Service\BackendService;
use SGalinski\SgMail\Service\MailTemplateService;
use TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException;
use TYPO3\CMS\Core\Exception;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
...@@ -34,6 +37,11 @@ use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; ...@@ -34,6 +37,11 @@ use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
* The joblist plugin controller * The joblist plugin controller
*/ */
class JoblistController extends ActionController { class JoblistController extends ActionController {
/**
* @var \TYPO3\CMS\Extbase\Object\ObjectManager
* @inject
*/
protected $objectManager;
/** /**
* @var \SGalinski\SgJobs\Domain\Repository\CompanyRepository * @var \SGalinski\SgJobs\Domain\Repository\CompanyRepository
...@@ -60,17 +68,51 @@ class JoblistController extends ActionController { ...@@ -60,17 +68,51 @@ class JoblistController extends ActionController {
// get all jobs for the next root page // get all jobs for the next root page
$jobs = $this->jobRepository->findJobs(BackendService::getRootUidByPageUid($pageUid)); $jobs = $this->jobRepository->findJobs(BackendService::getRootUidByPageUid($pageUid));
$this->view->assign('jobs', $jobs); $this->view->assign('jobs', $jobs);
debug(BackendService::getRootUidByPageUid($pageUid));
debug($jobs);
} }
public function applyFormAction() { /**
* @param string $jobTitle
*/
public function applyFormAction($jobTitle = '') {
$this->view->assign('jobTitle', $jobTitle);
} }
/**
* @param array $applyData
* @return void
*/
public function applyAction(array $applyData = []) {
// get an instance of the mail service
/** @var MailTemplateService $mailService */
$mailService = $this->objectManager->get(
MailTemplateService::class, 'application_mail', 'sg_jobs', $this->getApplicationMailMarkers($applyData)
);
$mailService->setIgnoreMailQueue(TRUE);
$mailService->setToAddresses('torsten@sgalinski.de');
try {
$mailService->sendEmail();
} catch (Exception $exception) {
public function applyAction() { }
}
/**
* @param array $applyData
* @return array
*/
private function getApplicationMailMarkers(array $applyData = []) {
return [
'jobtitle' => $applyData['jobTitle'],
'salutation' => $applyData['salutation'],
'firstname' => $applyData['firstName'],
'lastname' => $applyData['lastName'],
'street' => $applyData['street'],
'city' => $applyData['city'],
'country' => $applyData['country'],
'phone' => $applyData['phone'],
'mobile' => $applyData['mobile'],
'email' => $applyData['email'],
'message' => $applyData['message']
];
} }
} }
...@@ -42,6 +42,12 @@ return [ ...@@ -42,6 +42,12 @@ return [
'value' => '99999', 'value' => '99999',
'description' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang.xlf:application_mail.marker.zip' 'description' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang.xlf:application_mail.marker.zip'
], ],
[
'marker' => 'city',
'type' => \SGalinski\SgMail\Service\MailTemplateService::MARKER_TYPE_STRING,
'value' => 'München',
'description' => 'LLL:EXT:sg_jobs/Resources/Private/Language/locallang.xlf:application_mail.marker.city'
],
[ [
'marker' => 'country', 'marker' => 'country',
'type' => \SGalinski\SgMail\Service\MailTemplateService::MARKER_TYPE_STRING, 'type' => \SGalinski\SgMail\Service\MailTemplateService::MARKER_TYPE_STRING,
......
...@@ -9,6 +9,10 @@ ...@@ -9,6 +9,10 @@
<authorEmail>fabian@sgalinski.de</authorEmail> <authorEmail>fabian@sgalinski.de</authorEmail>
</header> </header>
<body> <body>
<trans-unit id="application_mail.marker.city" approved="yes">
<source>City</source>
<target>Ort</target>
</trans-unit>
<trans-unit id="application_mail.marker.country" approved="yes"> <trans-unit id="application_mail.marker.country" approved="yes">
<source>Country</source> <source>Country</source>
<target>Land</target> <target>Land</target>
...@@ -162,6 +166,10 @@ ...@@ -162,6 +166,10 @@
<source>Street</source> <source>Street</source>
<target>Strasse</target> <target>Strasse</target>
</trans-unit> </trans-unit>
<trans-unit id="frontend.apply.thank_you" approved="yes">
<source>Thank you for your application!</source>
<target>Vielen Dank für Ihre Bewerbung!</target>
</trans-unit>
<trans-unit id="frontend.apply.title" approved="yes"> <trans-unit id="frontend.apply.title" approved="yes">
<source>Job title</source> <source>Job title</source>
<target>Job-Titel</target> <target>Job-Titel</target>
......
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
<authorEmail>fabian@sgalinski.de</authorEmail> <authorEmail>fabian@sgalinski.de</authorEmail>
</header> </header>
<body> <body>
<trans-unit id="application_mail.marker.city">
<source>City</source>
</trans-unit>
<trans-unit id="application_mail.marker.country"> <trans-unit id="application_mail.marker.country">
<source>Country</source> <source>Country</source>
</trans-unit> </trans-unit>
...@@ -123,6 +126,9 @@ ...@@ -123,6 +126,9 @@
<trans-unit id="frontend.apply.street"> <trans-unit id="frontend.apply.street">
<source>Street</source> <source>Street</source>
</trans-unit> </trans-unit>
<trans-unit id="frontend.apply.thank_you">
<source>Thank you for your application!</source>
</trans-unit>
<trans-unit id="frontend.apply.title"> <trans-unit id="frontend.apply.title">
<source>Job title</source> <source>Job title</source>
</trans-unit> </trans-unit>
......
...@@ -67,6 +67,7 @@ ...@@ -67,6 +67,7 @@
<div> <div>
<f:form action="applyForm" controller="Joblist"> <f:form action="applyForm" controller="Joblist">
<f:form.hidden value="{job.title}" property="jobTitle" />
<f:form.submit value="{f:translate(key:'frontend.applyNow')}" /> <f:form.submit value="{f:translate(key:'frontend.applyNow')}" />
</f:form> </f:form>
</div> </div>
......
<f:layout name="Default" /> <f:layout name="Default" />
<f:section name="main"> <f:section name="main">
<p>
<f:translate key="frontend.apply.thank_you" />
</p>
</f:section> </f:section>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<f:section name="main"> <f:section name="main">
<f:form action="apply" controller="Joblist" method="post" objectName="applyData" object="{applyData}" enctype="multipart/form-data"> <f:form action="apply" controller="Joblist" method="post" objectName="applyData" object="{applyData}" enctype="multipart/form-data">
<label for="apply-jobTitle"><f:translate key="frontend.apply.title" /></label> <label for="apply-jobTitle"><f:translate key="frontend.apply.title" /></label>
<f:form.textfield property="jobTitle" id="apply-jobTitle" data="{}" class="" /> <f:form.textfield property="jobTitle" id="apply-jobTitle" data="{}" class="" value="{jobTitle}"/>
<br /> <br />
<label for="apply-salutation"><f:translate key="frontend.apply.salutation" /></label> <label for="apply-salutation"><f:translate key="frontend.apply.salutation" /></label>
<f:form.textfield property="salutation" id="apply-salutation" data="{}" class="" /> <f:form.textfield property="salutation" id="apply-salutation" data="{}" class="" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment