Skip to content
Snippets Groups Projects
Commit 56a2d3b1 authored by Stefan Galinski's avatar Stefan Galinski :video_game:
Browse files

Merge branch 'feature_backend_config' into 'master'

Feature backend config

See merge request !12
parents 47f86e3d af341ca0
No related branches found
No related tags found
1 merge request!12Feature backend config
<?php
namespace SGalinski\SgMail\Controller;
/***************************************************************
* 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!
***************************************************************/
use SGalinski\SgMail\Service\BackendService;
use SGalinski\SgMail\Service\MailTemplateService;
use SGalinski\SgMail\Service\TypoScriptSettingsService;
use SGalinski\SgMail\Session\PhpSession;
use TYPO3\CMS\Backend\Template\Components\DocHeaderComponent;
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Cache\CacheManager;
use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface;
use TYPO3\CMS\Core\Messaging\FlashMessage;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Utility\VersionNumberUtility;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
use TYPO3\CMS\Extbase\Mvc\Exception\StopActionException;
use TYPO3\CMS\Extbase\Mvc\Exception\UnsupportedRequestTypeException;
use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
/**
* Controller for the configuration mode of the backend module
*/
class ConfigurationController extends ActionController {
const DEFAULT_EXTENSION_KEY = 'sg_mail';
/**
* DocHeaderComponent
*
* @var DocHeaderComponent
*/
protected $docHeaderComponent;
/**
* @var \SGalinski\SgMail\Session\PhpSession
*/
protected $session;
/**
*
* @param string $selectedTemplate
* @param string $selectedExtension
* @param array $filters
* @throws \TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
*/
public function indexAction($selectedTemplate = NULL, $selectedExtension = NULL, array $filters = []) {
if ($this->request->hasArgument('message')) {
$this->addFlashMessage($this->request->getArgument('message'), '', FlashMessage::ERROR);
}
$pageUid = (int) GeneralUtility::_GP('id');
$registerArray = BackendService::getNonBlacklistedTemplates($pageUid);
if ($selectedTemplate === NULL || $selectedTemplate === '') {
if (!empty($registerArray)) {
$selectedExtension = \key($registerArray);
}
if (!empty($registerArray)) {
$selectedTemplate = \key($registerArray[$selectedExtension]);
}
}
// make docheader
$this->docHeaderComponent = GeneralUtility::makeInstance(DocHeaderComponent::class);
$pageInfo = BackendUtility::readPageAccess($pageUid, $GLOBALS['BE_USER']->getPagePermsClause(1));
if ($pageInfo === FALSE) {
$pageInfo = ['uid' => $pageUid];
}
$this->docHeaderComponent->setMetaInformation($pageInfo);
BackendService::makeButtons($this->docHeaderComponent, $this->request);
$this->view->assign('docHeader', $this->docHeaderComponent->docHeaderContent());
$this->view->assign('selectedTemplateFilter', $filters['filterTemplate']);
$this->view->assign('selectedExtensionFilter', $filters['filterExtension']);
$this->view->assign('typo3Version', VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version));
$this->view->assign('selectedTemplateKey', $selectedTemplate);
$this->view->assign('selectedExtensionKey', $selectedExtension);
$this->view->assign('mode', 'editor');
}
/**
* Create the template or display errors that occured
*
* @throws StopActionException
* @throws UnsupportedRequestTypeException
* @throws \TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
*/
public function createAction() {
if (!$this->request->hasArgument('configuration')) {
$this->redirect(
'index', 'Configuration', NULL,
['message' => LocalizationUtility::translate('backend.create_error', 'sg_mail')]
);
}
/** @var array $configuration */
$configuration = $this->request->getArgument('configuration');
$templateName = $configuration['templateName'];
$csv = str_replace("\r", '', $configuration['csv']);
$subject = $configuration['subject'];
$description = $configuration['description'];
$markersCsv = \explode("\n", $csv);
$markers = [];
foreach ($markersCsv as $markerCsv) {
$rowArray = str_getcsv($markerCsv, ';');
if (!$rowArray[0]) {
continue;
}
$markers[] = [
'identifier' => $rowArray[0],
'value' => $rowArray[1],
'description' => $rowArray[2]
];
}
$this->writeRegisterFile($templateName, self::DEFAULT_EXTENSION_KEY, $markers, $subject, $description);
MailTemplateService::registerExtensions();
$this->clearCaches();
// store selected template & extension key in the session
if (!($this->session instanceof PhpSession)) {
$this->session = $this->objectManager->get(PhpSession::class);
$this->session->setSessionKey('sg_mail_controller_session');
} else {
$this->session->setSessionKey('sg_mail_controller_session');
}
$this->session->setDataByKey('selectedTemplate', $templateName);
$this->session->setDataByKey('selectedExtension', self::DEFAULT_EXTENSION_KEY);
$this->redirect(
'index', 'Mail', NULL,
['message' => LocalizationUtility::translate('backend.create_message', 'sg_mail')]
);
}
/**
* Write the mail registration file
*
* @TODO move this to the register service class when security update is merged. refactor in FormEditorController xclass as well
*
* @param string $templateKey
* @param string $extensionKey
* @param array $markers
* @param string $subject
* @param string $description
*/
private function writeRegisterFile($templateKey, $extensionKey, $markers, $subject, $description) {
// get the location where registrations should be stored
$configurationLocation = $this->getRegistrationPath();
$registerFolder = GeneralUtility::getFileAbsFileName(
$configurationLocation
);
// create folder
GeneralUtility::mkdir($registerFolder);
$registerFile = GeneralUtility::getFileAbsFileName(
$registerFolder . '/' . $templateKey . '.php'
);
// build the register array
$newRegisterArray = [
'extension_key' => $extensionKey,
'template_key' => $templateKey,
'description' => $description,
'subject' => $subject,
'markers' => []
];
// add the markers for this template
foreach ($markers as $marker) {
$markerName = $marker['identifier'];
$newRegisterArray['markers'][] = [
'marker' => $markerName,
'type' => MailTemplateService::MARKER_TYPE_STRING,
'value' => $marker['value'],
'description' => $marker['description']
];
}
file_put_contents($registerFile, '<?php return ' . var_export($newRegisterArray, TRUE) . ';');
}
/**
* Returns the path to the configured location where automatic mail template registrations should be
*
* @TODO move this to the register service class when security update is merged. refactor in FormEditorController xclass as well
*
* @return string
*/
private function getRegistrationPath(): string {
// get typoscript settings from sg mail
/** @var TypoScriptSettingsService $typoScriptSettingsService */
$typoScriptSettingsService = $this->objectManager->get(TypoScriptSettingsService::class);
$tsSettings = $typoScriptSettingsService->getSettings(0, 'tx_sgmail');
// get the location where automatic registrations should be stored
return 'EXT:' . $tsSettings['mail']['configurationLocation'] . '/' . MailTemplateService::CONFIG_PATH;
}
/**
* Clear the sgmail register cache
*
* @TODO move this to the register service class when security update is merged. refactor in FormEditorController xclass as well
*
* @throws \TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException
*/
private function clearCaches() {
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$cacheManager = $objectManager->get(CacheManager::class);
/** @var FrontendInterface $cache */
$cache = $cacheManager->getCache(MailTemplateService::CACHE_NAME);
/** @var FrontendInterface $cache */
$cache->flush();
}
}
......@@ -81,6 +81,10 @@ class MailController extends ActionController {
* @throws \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
*/
public function indexAction(array $parameters = []) {
if ($this->request->hasArgument('message')) {
$this->addFlashMessage($this->request->getArgument('message'), '', FlashMessage::INFO);
}
$pid = (int) GeneralUtility::_GP('id');
if (!($this->session instanceof PhpSession)) {
......
......@@ -153,8 +153,8 @@ class QueueController extends ActionController {
$pageInfo = ['uid' => $pageUid];
}
$this->docHeaderComponent->setMetaInformation($pageInfo);
$this->view->assign('docHeader', $this->docHeaderComponent->docHeaderContent());
BackendService::makeButtons($this->docHeaderComponent, $this->request);
$this->view->assign('docHeader', $this->docHeaderComponent->docHeaderContent());
$this->view->assign('typo3Version', VersionNumberUtility::convertVersionNumberToInteger(TYPO3_version));
}
......
......@@ -9,332 +9,384 @@
<authorEmail>torsten@sgalinski.de</authorEmail>
</header>
<body>
<trans-unit id="backend.all" approved="yes">
<source>All</source>
<target>Alle</target>
</trans-unit>
<trans-unit id="backend.bcc" approved="yes">
<source>BCC (Blind Carbon Copy Receiver, comma separated)</source>
<target>BCC (Blindempfänger, komma-separiert)</target>
</trans-unit>
<trans-unit id="backend.blacklisted" approved="yes">
<source>Show mails from blacklisted templates</source>
<target>Mails basierend auf gesperrten Templates anzeigen</target>
</trans-unit>
<trans-unit id="backend.button_download_csv" approved="yes">
<source>Export CSV</source>
<target>CSV exportieren</target>
</trans-unit>
<trans-unit id="backend.button_reset" approved="yes">
<source>Reset Template</source>
<target>Zurücksetzen</target>
</trans-unit>
<trans-unit id="backend.button_reset_all" approved="yes">
<source>Reset template</source>
<target>Template zurücksetzen</target>
</trans-unit>
<trans-unit id="backend.button_reset_filter" approved="yes">
<source>Reset</source>
<target>Zurücksetzen</target>
</trans-unit>
<trans-unit id="backend.cc" approved="yes">
<source>CC (Carbon Copy Receiver, comma separated)</source>
<target>CC (Kopieempfänger, komma-separiert)</target>
</trans-unit>
<trans-unit id="backend.content" approved="yes">
<source>Text</source>
<target>Text</target>
</trans-unit>
<trans-unit id="backend.delete_template" approved="yes">
<source>Do you really want to reset this template?</source>
<target>Möchten Sie wirklich den Ursprungszustand wiederherstellen?</target>
</trans-unit>
<trans-unit id="backend.description" approved="yes">
<source>Description</source>
<target>Beschreibung</target>
</trans-unit>
<trans-unit id="backend.email" approved="yes">
<source>Email</source>
<target>E-Mail</target>
</trans-unit>
<trans-unit id="backend.entry_date" approved="yes">
<source>Queue Entry Date</source>
<target>Erstellungsdatum</target>
</trans-unit>
<trans-unit id="backend.error_bcc" approved="yes">
<source>The bcc addresses are invalid</source>
<target>Ungültige Blindempfänger Adressen (bcc)</target>
</trans-unit>
<trans-unit id="backend.error_cc" approved="yes">
<source>The cc addresses are invalid</source>
<target>Ungültige Kopieempfänger Adressen (cc)</target>
</trans-unit>
<trans-unit id="backend.failure_mail" approved="yes">
<source>There was an error when sending the preview email. Please check your configuration.</source>
<target>Ein Fehler ist aufgetreten. Bitte überprüfen Sie die Konfiguration.</target>
</trans-unit>
<trans-unit id="backend.filter.bcc" approved="yes">
<source>BCC address</source>
<target>BCC Adressen</target>
</trans-unit>
<trans-unit id="backend.filter.cc" approved="yes">
<source>CC address</source>
<target>CC Adressen</target>
</trans-unit>
<trans-unit id="backend.filter.date_from" approved="yes">
<source>Last sent time since:</source>
<target>Zuletzt gesendet von:</target>
</trans-unit>
<trans-unit id="backend.filter.date_to" approved="yes">
<source>Last sent until:</source>
<target>Zuletzt gesendet bis:</target>
</trans-unit>
<trans-unit id="backend.filter.extension" approved="yes">
<source>Extension</source>
<target>Extension</target>
</trans-unit>
<trans-unit id="backend.filter.fields.description" approved="yes">
<source>Search fields (all by default):</source>
<target>Suchfelder (standardmäßig alle):</target>
</trans-unit>
<trans-unit id="backend.filter.filter" approved="yes">
<source>Filter</source>
<target>Filter anwenden</target>
</trans-unit>
<trans-unit id="backend.filter.from" approved="yes">
<source>Sender address</source>
<target>Absender</target>
</trans-unit>
<trans-unit id="backend.filter.from_name" approved="yes">
<source>From name</source>
<target>Absendername</target>
</trans-unit>
<trans-unit id="backend.filter.language" approved="yes">
<source>Language:</source>
<target>Sprache:</target>
</trans-unit>
<trans-unit id="backend.filter.mailtext" approved="yes">
<source>Mailtext</source>
<target>Mailinhalt</target>
</trans-unit>
<trans-unit id="backend.filter.reply_to" approved="yes">
<source>Reply to</source>
<target>Antwort Adresse</target>
</trans-unit>
<trans-unit id="backend.filter.search" approved="yes">
<source>Search for:</source>
<target>Suchen nach:</target>
</trans-unit>
<trans-unit id="backend.filter.subject" approved="yes">
<source>Subject</source>
<target>Betreff</target>
</trans-unit>
<trans-unit id="backend.filter.template" approved="yes">
<source>Template</source>
<target>Template</target>
</trans-unit>
<trans-unit id="backend.filter.to" approved="yes">
<source>Recipient address</source>
<target>Empfänger</target>
</trans-unit>
<trans-unit id="backend.from" approved="yes">
<source>From</source>
<target>Absender</target>
</trans-unit>
<trans-unit id="backend.fromAddress" approved="yes">
<source>Sender Email Address</source>
<target>Absender-E-Mail-Adresse</target>
</trans-unit>
<trans-unit id="backend.fromMail" approved="yes">
<source>Sender Email Address</source>
<target>Absender-E-Mail-Adresse</target>
</trans-unit>
<trans-unit id="backend.fromName" approved="yes">
<source>Sender Name</source>
<target>Absender-Name</target>
</trans-unit>
<trans-unit id="backend.fromUser" approved="yes">
<source>From User (overwrites other from fields):</source>
<target>Absender Benutzer (hat Vorrang falls gesetzt):</target>
</trans-unit>
<trans-unit id="backend.is_overwritten" approved="yes">
<source>(overwritten)</source>
<target>(überschrieben)</target>
</trans-unit>
<trans-unit id="backend.language_default" approved="yes">
<source>Default</source>
<target>Standard</target>
</trans-unit>
<trans-unit id="backend.last_sent" approved="yes">
<source>Last Sent</source>
<target>Zuletzt gesendet</target>
</trans-unit>
<trans-unit id="backend.mail_queue" approved="yes">
<source>Mail Queue</source>
<target>Mail-Queue</target>
</trans-unit>
<trans-unit id="backend.marker" approved="yes">
<source>Marker</source>
<target>Marker</target>
</trans-unit>
<trans-unit id="backend.marker.type.array" approved="yes">
<source>Array</source>
<target>Array</target>
</trans-unit>
<trans-unit id="backend.marker.type.object" approved="yes">
<source>Object</source>
<target>Objekt</target>
</trans-unit>
<trans-unit id="backend.marker.type.string" approved="yes">
<source>String</source>
<target>Zeichenkette</target>
</trans-unit>
<trans-unit id="backend.marker.type.file" approved="yes">
<source>File</source>
<target>Datei</target>
</trans-unit>
<trans-unit id="bachend.markerUsageInfo">
<source>Usage information</source>
<target>Information zur Benutzung</target>
</trans-unit>
<trans-unit id="bachend.markerUsage">
<source>You can use a marker in your text like this: "Dear {MARKER}, we hope you are fine with us contacting you. Kind regards {ANOTHERMARKER}"</source>
<target>Sie können die Marker wie folgt in Ihrem Text benutzen: "Sehr geehrte {MARKER}, wir hoffen dass Sie mit unserer Kontaktaufnahme einverstanden sind. Mit freundlichen Grüßen {ANOTHERMARKER}"</target>
</trans-unit>
<trans-unit id="backend.no_extension" approved="yes">
<source>No template was registered.</source>
<target>Es wurde noch kein Template registriert.</target>
</trans-unit>
<trans-unit id="backend.no_extensions" approved="yes">
<source>No extensions registered</source>
<target>Es wurden noch keine Extensions registriert</target>
</trans-unit>
<trans-unit id="backend.no_queue_entries" approved="yes">
<source>Your filter criteria didn't match any entries.</source>
<target>Es wurden keine Einträge für Ihre Filtereinstellungen gefunden.</target>
</trans-unit>
<trans-unit id="backend.no_site_root" approved="yes">
<source>Please select one of the following website roots:</source>
<target>Bitte wählen Sie eine der folgenden Webseiten:</target>
</trans-unit>
<trans-unit id="backend.not_sent" approved="yes">
<source>Not Sent</source>
<target>Nicht versendet</target>
</trans-unit>
<trans-unit id="backend.notice.OtherPages" approved="yes">
<source>Please select one of the following pages to view your Mail Templates:</source>
<target>Bitte wählen Sie eine der folgenden Seiten aus um Ihre E-Mail Templates zu bearbeiten:</target>
</trans-unit>
<trans-unit id="backend.priority" approved="yes">
<source>Priority</source>
<target>Priorität</target>
</trans-unit>
<trans-unit id="backend.queue.blacklisted" approved="yes">
<source>Blacklisted</source>
<target>Auf der schwarzen Liste</target>
</trans-unit>
<trans-unit id="backend.replyTo" approved="yes">
<source>Reply to</source>
<target>Antwort-Adresse</target>
</trans-unit>
<trans-unit id="backend.save" approved="yes">
<source>Save</source>
<target>Speichern</target>
</trans-unit>
<trans-unit id="backend.save_template" approved="yes">
<source>Save</source>
<target>Speichern</target>
</trans-unit>
<trans-unit id="backend.select_language" approved="yes">
<source>Language (reloads the page):</source>
<target>Sprache (lädt die Seite neu):</target>
</trans-unit>
<trans-unit id="backend.send_again" approved="yes">
<source>Send</source>
<target>Senden</target>
</trans-unit>
<trans-unit id="backend.send_mail_again" approved="yes">
<source>Send this email again?</source>
<target>Diese E-Mail nochmals versenden?</target>
</trans-unit>
<trans-unit id="backend.send_mail_manually" approved="yes">
<source>Send this email now?</source>
<target>Diese E-Mail jetzt versenden?</target>
</trans-unit>
<trans-unit id="backend.send_now" approved="yes">
<source>Send</source>
<target>Senden</target>
</trans-unit>
<trans-unit id="backend.send_test" approved="yes">
<source>Save and send preview mails</source>
<target>Speichern und Vorschau-Mail senden</target>
</trans-unit>
<trans-unit id="backend.sending_time" approved="yes">
<source>Sending Time</source>
<target>Versendet am</target>
</trans-unit>
<trans-unit id="backend.sent" approved="yes">
<source>Sent</source>
<target>Versendet</target>
</trans-unit>
<trans-unit id="backend.showBody" approved="yes">
<source>Show</source>
<target>Anzeigen</target>
</trans-unit>
<trans-unit id="backend.subject" approved="yes">
<source>Subject</source>
<target>Betreff</target>
</trans-unit>
<trans-unit id="backend.success" approved="yes">
<source>Successfully saved!</source>
<target>Erfolgreich gespeichert!</target>
</trans-unit>
<trans-unit id="backend.success_mail" approved="yes">
<source>Preview Emails sent</source>
<target>Vorschau E-Mails wurden versendet</target>
</trans-unit>
<trans-unit id="backend.success_mail_queue" approved="yes">
<source>Email succesfully sent</source>
<target>Die E-Mail wurde erfolgreich versendet</target>
</trans-unit>
<trans-unit id="backend.template_editor" approved="yes">
<source>Template Editor</source>
<target>Template-Editor</target>
</trans-unit>
<trans-unit id="backend.template_path" approved="yes">
<source>Template Path:</source>
<target>Template-Pfad:</target>
</trans-unit>
<trans-unit id="backend.template_reset" approved="yes">
<source>The template was resetted successfully.</source>
<target>Das Template erfolgreich zurückgesetzt.</target>
</trans-unit>
<trans-unit id="backend.to" approved="yes">
<source>To</source>
<target>Empfänger</target>
</trans-unit>
<trans-unit id="backend.toAddress" approved="yes">
<source>Receiver</source>
<target>Empfänger</target>
</trans-unit>
<trans-unit id="backend.to_form" approved="yes">
<source>To (If set, this overwrites the recipient everytime!) </source>
<target>Empfänger (Falls angegeben, wird der Empfänger immer überschrieben!)</target>
</trans-unit>
<trans-unit id="backend.type" approved="yes">
<source>Type</source>
<target>Typ</target>
</trans-unit>
<trans-unit id="backend.usage" approved="yes">
<source>Usage in Template</source>
<target>Nutzung im Template</target>
</trans-unit>
<trans-unit id="backend.value" approved="yes">
<source>Example</source>
<target>Beispiel</target>
</trans-unit>
<trans-unit id="configuration.excludeTemplates" approved="yes" xml:space="preserve">
<source>Exclude Mail Templates for certain Domains
<trans-unit id="bachend.markerUsage" approved="yes">
<source><![CDATA[You can use a marker in your text like this: "Dear {MARKER}, we hope you are fine with us contacting you. Kind regards {ANOTHERMARKER}"]]></source>
<target><![CDATA[Sie können die Marker wie folgt in Ihrem Text benutzen: "Sehr geehrte {MARKER}, wir hoffen dass Sie mit unserer Kontaktaufnahme einverstanden sind. Mit freundlichen Grüßen {ANOTHERMARKER}"]]></target>
</trans-unit>
<trans-unit id="bachend.markerUsageInfo" approved="yes">
<source><![CDATA[Usage information]]></source>
<target><![CDATA[Information zur Benutzung]]></target>
</trans-unit>
<trans-unit id="backend.all" approved="yes">
<source><![CDATA[All]]></source>
<target><![CDATA[Alle]]></target>
</trans-unit>
<trans-unit id="backend.bcc" approved="yes">
<source><![CDATA[BCC (Blind Carbon Copy Receiver, comma separated)]]></source>
<target><![CDATA[BCC (Blindempfänger, komma-separiert)]]></target>
</trans-unit>
<trans-unit id="backend.blacklisted" approved="yes">
<source><![CDATA[Show mails from blacklisted templates]]></source>
<target><![CDATA[Mails basierend auf gesperrten Templates anzeigen]]></target>
</trans-unit>
<trans-unit id="backend.button_create" approved="yes">
<source><![CDATA[Register new template]]></source>
<target><![CDATA[Neues Template registrieren]]></target>
</trans-unit>
<trans-unit id="backend.button_download_csv" approved="yes">
<source><![CDATA[Export CSV]]></source>
<target><![CDATA[CSV exportieren]]></target>
</trans-unit>
<trans-unit id="backend.button_reset" approved="yes">
<source><![CDATA[Reset Template]]></source>
<target><![CDATA[Zurücksetzen]]></target>
</trans-unit>
<trans-unit id="backend.button_reset_all" approved="yes">
<source><![CDATA[Reset template]]></source>
<target><![CDATA[Template zurücksetzen]]></target>
</trans-unit>
<trans-unit id="backend.button_reset_filter" approved="yes">
<source><![CDATA[Reset]]></source>
<target><![CDATA[Zurücksetzen]]></target>
</trans-unit>
<trans-unit id="backend.cc" approved="yes">
<source><![CDATA[CC (Carbon Copy Receiver, comma separated)]]></source>
<target><![CDATA[CC (Kopieempfänger, komma-separiert)]]></target>
</trans-unit>
<trans-unit id="backend.configuration" approved="yes">
<source><![CDATA[Configuration editor]]></source>
<target><![CDATA[Konfigurationseditor]]></target>
</trans-unit>
<trans-unit id="backend.content" approved="yes">
<source><![CDATA[Text]]></source>
<target><![CDATA[Text]]></target>
</trans-unit>
<trans-unit id="backend.create.csv" approved="yes">
<source><![CDATA[Marker (csv format)]]></source>
<target><![CDATA[Marker (csv Format)]]></target>
</trans-unit>
<trans-unit id="backend.create.description" approved="yes">
<source><![CDATA[Description]]></source>
<target><![CDATA[Beschreibung]]></target>
</trans-unit>
<trans-unit id="backend.create.info" approved="yes">
<source><![CDATA[Please insert the template marker in the following format: markerName; exampleValue; description <br /><br />Whitespaces in marker names are ignored. <br />If you have multiple markers, seperate them with a new line: markerName1; exampleValue1; description1<br />markerName2; exampleValue2; description2 <br /><br />Example: first_name; Max; The first name of the client <br />last_name; Mustermann; The last name of the client]]></source>
<target><![CDATA[Bitte geben Sie die Template Marker im folgenden Format ein: markerName; beispiel; beschreibung <br /><br />Leerzeichen in Markernamen werden ignoriert. <br /><br />Mehrere Marker werden mit der Eingabetaste getrennt: markerName1; beispiel1; beschreibung1<br />markerName2; beispiel2; beschreibung2 <br /><br />Beispiel: first_name; Max; Der Vorname des Kunden<br /> last_name; Mustermann; Der Nachname des Kunden]]></target>
</trans-unit>
<trans-unit id="backend.create.info_header" approved="yes">
<source><![CDATA[Usage Information]]></source>
<target><![CDATA[Hinweise zur Benutzung]]></target>
</trans-unit>
<trans-unit id="backend.create.markers" approved="yes">
<source><![CDATA[Template marker]]></source>
<target><![CDATA[Template Marker]]></target>
</trans-unit>
<trans-unit id="backend.create.save" approved="yes">
<source><![CDATA[Save]]></source>
<target><![CDATA[Speichern]]></target>
</trans-unit>
<trans-unit id="backend.create.subject" approved="yes">
<source><![CDATA[Subject]]></source>
<target><![CDATA[Betreff]]></target>
</trans-unit>
<trans-unit id="backend.create.templateName" approved="yes">
<source><![CDATA[Template name]]></source>
<target><![CDATA[Template Name]]></target>
</trans-unit>
<trans-unit id="backend.create_error" approved="yes">
<source><![CDATA[Something went wrong.. Please try again!]]></source>
<target><![CDATA[Es ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.]]></target>
</trans-unit>
<trans-unit id="backend.create_message" approved="yes">
<source><![CDATA[Mail template was successfully registered. You can now edit the content below.]]></source>
<target><![CDATA[Die Registrierung war erfolgreich. Sie können nun den Inhalt der Mails im Editor (siehe unten) bearbeiten.]]></target>
</trans-unit>
<trans-unit id="backend.default_extension_name" approved="yes">
<source><![CDATA[Own templates]]></source>
<target><![CDATA[Eigene Templates]]></target>
</trans-unit>
<trans-unit id="backend.delete_template" approved="yes">
<source><![CDATA[Do you really want to reset this template?]]></source>
<target><![CDATA[Möchten Sie wirklich den Ursprungszustand wiederherstellen?]]></target>
</trans-unit>
<trans-unit id="backend.description" approved="yes">
<source><![CDATA[Description]]></source>
<target><![CDATA[Beschreibung]]></target>
</trans-unit>
<trans-unit id="backend.email" approved="yes">
<source><![CDATA[Email]]></source>
<target><![CDATA[E-Mail]]></target>
</trans-unit>
<trans-unit id="backend.entry_date" approved="yes">
<source><![CDATA[Queue Entry Date]]></source>
<target><![CDATA[Erstellungsdatum]]></target>
</trans-unit>
<trans-unit id="backend.error_bcc" approved="yes">
<source><![CDATA[The bcc addresses are invalid]]></source>
<target><![CDATA[Ungültige Blindempfänger Adressen (bcc)]]></target>
</trans-unit>
<trans-unit id="backend.error_cc" approved="yes">
<source><![CDATA[The cc addresses are invalid]]></source>
<target><![CDATA[Ungültige Kopieempfänger Adressen (cc)]]></target>
</trans-unit>
<trans-unit id="backend.failure_mail" approved="yes">
<source><![CDATA[There was an error when sending the preview email. Please check your configuration.]]></source>
<target><![CDATA[Ein Fehler ist aufgetreten. Bitte überprüfen Sie die Konfiguration.]]></target>
</trans-unit>
<trans-unit id="backend.filter.bcc" approved="yes">
<source><![CDATA[BCC address]]></source>
<target><![CDATA[BCC Adressen]]></target>
</trans-unit>
<trans-unit id="backend.filter.cc" approved="yes">
<source><![CDATA[CC address]]></source>
<target><![CDATA[CC Adressen]]></target>
</trans-unit>
<trans-unit id="backend.filter.date_from" approved="yes">
<source><![CDATA[Last sent time since:]]></source>
<target><![CDATA[Zuletzt gesendet von:]]></target>
</trans-unit>
<trans-unit id="backend.filter.date_to" approved="yes">
<source><![CDATA[Last sent until:]]></source>
<target><![CDATA[Zuletzt gesendet bis:]]></target>
</trans-unit>
<trans-unit id="backend.filter.extension" approved="yes">
<source><![CDATA[Extension]]></source>
<target><![CDATA[Extension]]></target>
</trans-unit>
<trans-unit id="backend.filter.fields.description" approved="yes">
<source><![CDATA[Search fields (all by default):]]></source>
<target><![CDATA[Suchfelder (standardmäßig alle):]]></target>
</trans-unit>
<trans-unit id="backend.filter.filter" approved="yes">
<source><![CDATA[Filter]]></source>
<target><![CDATA[Filter anwenden]]></target>
</trans-unit>
<trans-unit id="backend.filter.from" approved="yes">
<source><![CDATA[Sender address]]></source>
<target><![CDATA[Absender]]></target>
</trans-unit>
<trans-unit id="backend.filter.from_name" approved="yes">
<source><![CDATA[From name]]></source>
<target><![CDATA[Absendername]]></target>
</trans-unit>
<trans-unit id="backend.filter.language" approved="yes">
<source><![CDATA[Language:]]></source>
<target><![CDATA[Sprache:]]></target>
</trans-unit>
<trans-unit id="backend.filter.mailtext" approved="yes">
<source><![CDATA[Mailtext]]></source>
<target><![CDATA[Mailinhalt]]></target>
</trans-unit>
<trans-unit id="backend.filter.reply_to" approved="yes">
<source><![CDATA[Reply to]]></source>
<target><![CDATA[Antwort Adresse]]></target>
</trans-unit>
<trans-unit id="backend.filter.search" approved="yes">
<source><![CDATA[Search for:]]></source>
<target><![CDATA[Suchen nach:]]></target>
</trans-unit>
<trans-unit id="backend.filter.subject" approved="yes">
<source><![CDATA[Subject]]></source>
<target><![CDATA[Betreff]]></target>
</trans-unit>
<trans-unit id="backend.filter.template" approved="yes">
<source><![CDATA[Template]]></source>
<target><![CDATA[Template]]></target>
</trans-unit>
<trans-unit id="backend.filter.to" approved="yes">
<source><![CDATA[Recipient address]]></source>
<target><![CDATA[Empfänger]]></target>
</trans-unit>
<trans-unit id="backend.from" approved="yes">
<source><![CDATA[From]]></source>
<target><![CDATA[Absender]]></target>
</trans-unit>
<trans-unit id="backend.fromAddress" approved="yes">
<source><![CDATA[Sender Email Address]]></source>
<target><![CDATA[Absender-E-Mail-Adresse]]></target>
</trans-unit>
<trans-unit id="backend.fromMail" approved="yes">
<source><![CDATA[Sender Email Address]]></source>
<target><![CDATA[Absender-E-Mail-Adresse]]></target>
</trans-unit>
<trans-unit id="backend.fromName" approved="yes">
<source><![CDATA[Sender Name]]></source>
<target><![CDATA[Absender-Name]]></target>
</trans-unit>
<trans-unit id="backend.fromUser" approved="yes">
<source><![CDATA[From User (overwrites other from fields):]]></source>
<target><![CDATA[Absender Benutzer (hat Vorrang falls gesetzt):]]></target>
</trans-unit>
<trans-unit id="backend.is_overwritten" approved="yes">
<source><![CDATA[(overwritten)]]></source>
<target><![CDATA[(überschrieben)]]></target>
</trans-unit>
<trans-unit id="backend.language_default" approved="yes">
<source><![CDATA[Default]]></source>
<target><![CDATA[Standard]]></target>
</trans-unit>
<trans-unit id="backend.last_sent" approved="yes">
<source><![CDATA[Last Sent]]></source>
<target><![CDATA[Zuletzt gesendet]]></target>
</trans-unit>
<trans-unit id="backend.mail_queue" approved="yes">
<source><![CDATA[Mail Queue]]></source>
<target><![CDATA[Mail-Queue]]></target>
</trans-unit>
<trans-unit id="backend.marker" approved="yes">
<source><![CDATA[Marker]]></source>
<target><![CDATA[Marker]]></target>
</trans-unit>
<trans-unit id="backend.marker.type.array" approved="yes">
<source><![CDATA[Array]]></source>
<target><![CDATA[Array]]></target>
</trans-unit>
<trans-unit id="backend.marker.type.file" approved="yes">
<source><![CDATA[File]]></source>
<target><![CDATA[Datei]]></target>
</trans-unit>
<trans-unit id="backend.marker.type.object" approved="yes">
<source><![CDATA[Object]]></source>
<target><![CDATA[Objekt]]></target>
</trans-unit>
<trans-unit id="backend.marker.type.string" approved="yes">
<source><![CDATA[String]]></source>
<target><![CDATA[Zeichenkette]]></target>
</trans-unit>
<trans-unit id="backend.no_extension" approved="yes">
<source><![CDATA[No template was registered.]]></source>
<target><![CDATA[Es wurde noch kein Template registriert.]]></target>
</trans-unit>
<trans-unit id="backend.no_extensions" approved="yes">
<source><![CDATA[No extensions registered]]></source>
<target><![CDATA[Es wurden noch keine Extensions registriert]]></target>
</trans-unit>
<trans-unit id="backend.no_queue_entries" approved="yes">
<source><![CDATA[Your filter criteria didn't match any entries.]]></source>
<target><![CDATA[Es wurden keine Einträge für Ihre Filtereinstellungen gefunden.]]></target>
</trans-unit>
<trans-unit id="backend.no_site_root" approved="yes">
<source><![CDATA[Please select one of the following website roots:]]></source>
<target><![CDATA[Bitte wählen Sie eine der folgenden Webseiten:]]></target>
</trans-unit>
<trans-unit id="backend.not_sent" approved="yes">
<source><![CDATA[Not Sent]]></source>
<target><![CDATA[Nicht versendet]]></target>
</trans-unit>
<trans-unit id="backend.notice.OtherPages" approved="yes">
<source><![CDATA[Please select one of the following pages to view your Mail Templates:]]></source>
<target><![CDATA[Bitte wählen Sie eine der folgenden Seiten aus um Ihre E-Mail Templates zu bearbeiten:]]></target>
</trans-unit>
<trans-unit id="backend.priority" approved="yes">
<source><![CDATA[Priority]]></source>
<target><![CDATA[Priorität]]></target>
</trans-unit>
<trans-unit id="backend.queue.blacklisted" approved="yes">
<source><![CDATA[Blacklisted]]></source>
<target><![CDATA[Auf der schwarzen Liste]]></target>
</trans-unit>
<trans-unit id="backend.replyTo" approved="yes">
<source><![CDATA[Reply to]]></source>
<target><![CDATA[Antwort-Adresse]]></target>
</trans-unit>
<trans-unit id="backend.save" approved="yes">
<source><![CDATA[Save]]></source>
<target><![CDATA[Speichern]]></target>
</trans-unit>
<trans-unit id="backend.save_template" approved="yes">
<source><![CDATA[Save]]></source>
<target><![CDATA[Speichern]]></target>
</trans-unit>
<trans-unit id="backend.select_language" approved="yes">
<source><![CDATA[Language (reloads the page):]]></source>
<target><![CDATA[Sprache (lädt die Seite neu):]]></target>
</trans-unit>
<trans-unit id="backend.send_again" approved="yes">
<source><![CDATA[Send]]></source>
<target><![CDATA[Senden]]></target>
</trans-unit>
<trans-unit id="backend.send_mail_again" approved="yes">
<source><![CDATA[Send this email again?]]></source>
<target><![CDATA[Diese E-Mail nochmals versenden?]]></target>
</trans-unit>
<trans-unit id="backend.send_mail_manually" approved="yes">
<source><![CDATA[Send this email now?]]></source>
<target><![CDATA[Diese E-Mail jetzt versenden?]]></target>
</trans-unit>
<trans-unit id="backend.send_now" approved="yes">
<source><![CDATA[Send]]></source>
<target><![CDATA[Senden]]></target>
</trans-unit>
<trans-unit id="backend.send_test" approved="yes">
<source><![CDATA[Save and send preview mails]]></source>
<target><![CDATA[Speichern und Vorschau-Mail senden]]></target>
</trans-unit>
<trans-unit id="backend.sending_time" approved="yes">
<source><![CDATA[Sending Time]]></source>
<target><![CDATA[Versendet am]]></target>
</trans-unit>
<trans-unit id="backend.sent" approved="yes">
<source><![CDATA[Sent]]></source>
<target><![CDATA[Versendet]]></target>
</trans-unit>
<trans-unit id="backend.showBody" approved="yes">
<source><![CDATA[Show]]></source>
<target><![CDATA[Anzeigen]]></target>
</trans-unit>
<trans-unit id="backend.subject" approved="yes">
<source><![CDATA[Subject]]></source>
<target><![CDATA[Betreff]]></target>
</trans-unit>
<trans-unit id="backend.success" approved="yes">
<source><![CDATA[Successfully saved!]]></source>
<target><![CDATA[Erfolgreich gespeichert!]]></target>
</trans-unit>
<trans-unit id="backend.success_mail" approved="yes">
<source><![CDATA[Preview Emails sent]]></source>
<target><![CDATA[Vorschau E-Mails wurden versendet]]></target>
</trans-unit>
<trans-unit id="backend.success_mail_queue" approved="yes">
<source><![CDATA[Email succesfully sent]]></source>
<target><![CDATA[Die E-Mail wurde erfolgreich versendet]]></target>
</trans-unit>
<trans-unit id="backend.template_editor" approved="yes">
<source><![CDATA[Template Editor]]></source>
<target><![CDATA[Template-Editor]]></target>
</trans-unit>
<trans-unit id="backend.template_path" approved="yes">
<source><![CDATA[Template Path:]]></source>
<target><![CDATA[Template-Pfad:]]></target>
</trans-unit>
<trans-unit id="backend.template_reset" approved="yes">
<source><![CDATA[The template was resetted successfully.]]></source>
<target><![CDATA[Das Template erfolgreich zurückgesetzt.]]></target>
</trans-unit>
<trans-unit id="backend.to" approved="yes">
<source><![CDATA[To]]></source>
<target><![CDATA[Empfänger]]></target>
</trans-unit>
<trans-unit id="backend.toAddress" approved="yes">
<source><![CDATA[Receiver]]></source>
<target><![CDATA[Empfänger]]></target>
</trans-unit>
<trans-unit id="backend.to_form" approved="yes">
<source><![CDATA[To (If set, this overwrites the recipient everytime!) ]]></source>
<target><![CDATA[Empfänger (Falls angegeben, wird der Empfänger immer überschrieben!)]]></target>
</trans-unit>
<trans-unit id="backend.type" approved="yes">
<source><![CDATA[Type]]></source>
<target><![CDATA[Typ]]></target>
</trans-unit>
<trans-unit id="backend.usage" approved="yes">
<source><![CDATA[Usage in Template]]></source>
<target><![CDATA[Nutzung im Template]]></target>
</trans-unit>
<trans-unit id="backend.value" approved="yes">
<source><![CDATA[Example]]></source>
<target><![CDATA[Beispiel]]></target>
</trans-unit>
<trans-unit id="configuration.excludeTemplates" approved="yes" xml:space="preserve">
<source><![CDATA[Exclude Mail Templates for certain Domains
Example:
......@@ -342,8 +394,8 @@ Example:
In this example the templates sg_mail.exampleA, sg_mail.exampleB are excluded for the page with id = 1 and the template sg_mail.exampleB is excluded for the page with id = 10.
If the given page ids do not exist or are not site roots, the configuration is ignored.</source>
<target>Ausschließen von Mail Templates für bestimmte Domains
If the given page ids do not exist or are not site roots, the configuration is ignored.]]></source>
<target><![CDATA[Ausschließen von Mail Templates für bestimmte Domains
Beispiel:
......@@ -351,10 +403,10 @@ Beispiel:
Hier sind die Templates sg_mail.exampleA, sg_mail.exampleB ausgeschlossen für die Seite mit der id = 1 und das Template sg_mail.exampleB ist ausgeschlossen für die Seite mit der page id = 10.
Existiert die angegebene page id nicht oder sollte die Seite keine Wurzelseite sein, dann wird dieser Teil der Konfiguration nicht berücksichtigt.</target>
</trans-unit>
<trans-unit id="configuration.excludeTemplatesAllDomains" approved="yes" xml:space="preserve">
<source>Exclude Mail Templates for all domains:Comma-separated list of {extension_key}.{template_name}
Existiert die angegebene page id nicht oder sollte die Seite keine Wurzelseite sein, dann wird dieser Teil der Konfiguration nicht berücksichtigt.]]></target>
</trans-unit>
<trans-unit id="configuration.excludeTemplatesAllDomains" approved="yes" xml:space="preserve">
<source><![CDATA[Exclude Mail Templates for all domains:Comma-separated list of {extension_key}.{template_name}
Example:
......@@ -362,35 +414,35 @@ sg_comments.declined, sg_comments.approved
The templates declined and approved of the sg_comments extension are blacklisted for all domains.
</source>
<target>Mail-Templates für alle Domains ausschließen:Kommagetrennte Liste von {extension_key}.{template_name}
]]></source>
<target><![CDATA[Mail-Templates für alle Domains ausschließen:Kommagetrennte Liste von {extension_key}.{template_name}
Example:
sg_comments.declined, sg_comments.approved
Die Templates declined und approved der Extension sg_comments sind für alle Domains auf der schwarzen Liste.</target>
</trans-unit>
<trans-unit id="configuration.templateList" approved="yes">
<source>List of templates</source>
<target>Liste aller templates</target>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" approved="yes">
<source>Mail Templates</source>
<target>Mail-Templates</target>
</trans-unit>
<trans-unit id="mlang_labels_tablabel" approved="yes">
<source>Mail Templates</source>
<target>Mail-Templates</target>
</trans-unit>
<trans-unit id="mlang_tabs_tab" approved="yes">
<source>Mail Templates</source>
<target>Mail-Templates</target>
</trans-unit>
<trans-unit id="registeredExtension.action.message" approved="yes">
<source>Extension</source>
<target>Erweiterung</target>
</trans-unit>
Die Templates declined und approved der Extension sg_comments sind für alle Domains auf der schwarzen Liste.]]></target>
</trans-unit>
<trans-unit id="configuration.templateList" approved="yes">
<source><![CDATA[List of templates]]></source>
<target><![CDATA[Liste aller templates]]></target>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" approved="yes">
<source><![CDATA[Mail Templates]]></source>
<target><![CDATA[Mail-Templates]]></target>
</trans-unit>
<trans-unit id="mlang_labels_tablabel" approved="yes">
<source><![CDATA[Mail Templates]]></source>
<target><![CDATA[Mail-Templates]]></target>
</trans-unit>
<trans-unit id="mlang_tabs_tab" approved="yes">
<source><![CDATA[Mail Templates]]></source>
<target><![CDATA[Mail-Templates]]></target>
</trans-unit>
<trans-unit id="registeredExtension.action.message" approved="yes">
<source><![CDATA[Extension]]></source>
<target><![CDATA[Erweiterung]]></target>
</trans-unit>
</body>
</file>
</xliff>
</xliff>
\ No newline at end of file
......@@ -9,251 +9,290 @@
<authorEmail>torsten@sgalinski.de</authorEmail>
</header>
<body>
<trans-unit id="backend.all">
<source>All</source>
</trans-unit>
<trans-unit id="backend.bcc">
<source>BCC (Blind Carbon Copy Receiver, comma separated)</source>
</trans-unit>
<trans-unit id="backend.blacklisted">
<source>Show mails from blacklisted templates</source>
</trans-unit>
<trans-unit id="backend.button_download_csv">
<source>Export CSV</source>
</trans-unit>
<trans-unit id="backend.button_reset">
<source>Reset Template</source>
</trans-unit>
<trans-unit id="backend.button_reset_all">
<source>Reset template</source>
</trans-unit>
<trans-unit id="backend.button_reset_filter">
<source>Reset</source>
</trans-unit>
<trans-unit id="backend.cc">
<source>CC (Carbon Copy Receiver, comma separated)</source>
</trans-unit>
<trans-unit id="backend.content">
<source>Text</source>
</trans-unit>
<trans-unit id="backend.delete_template">
<source>Do you really want to reset this template?</source>
</trans-unit>
<trans-unit id="backend.description">
<source>Description</source>
</trans-unit>
<trans-unit id="backend.email">
<source>Email</source>
</trans-unit>
<trans-unit id="backend.entry_date">
<source>Queue Entry Date</source>
</trans-unit>
<trans-unit id="backend.error_bcc">
<source>The bcc addresses are invalid</source>
</trans-unit>
<trans-unit id="backend.error_cc">
<source>The cc addresses are invalid</source>
</trans-unit>
<trans-unit id="backend.failure_mail">
<source>There was an error when sending the preview email. Please check your configuration.</source>
</trans-unit>
<trans-unit id="backend.filter.bcc">
<source>BCC address</source>
</trans-unit>
<trans-unit id="backend.filter.cc">
<source>CC address</source>
</trans-unit>
<trans-unit id="backend.filter.date_from">
<source>Last sent time since:</source>
</trans-unit>
<trans-unit id="backend.filter.date_to">
<source>Last sent until:</source>
</trans-unit>
<trans-unit id="backend.filter.extension">
<source>Extension</source>
</trans-unit>
<trans-unit id="backend.filter.fields.description">
<source>Search fields (all by default):</source>
</trans-unit>
<trans-unit id="backend.filter.filter">
<source>Filter</source>
</trans-unit>
<trans-unit id="backend.filter.from">
<source>Sender address</source>
</trans-unit>
<trans-unit id="backend.filter.from_name">
<source>From name</source>
</trans-unit>
<trans-unit id="backend.filter.language">
<source>Language:</source>
</trans-unit>
<trans-unit id="backend.filter.mailtext">
<source>Mailtext</source>
</trans-unit>
<trans-unit id="backend.filter.reply_to">
<source>Reply to</source>
</trans-unit>
<trans-unit id="backend.filter.search">
<source>Search for:</source>
</trans-unit>
<trans-unit id="backend.filter.subject">
<source>Subject</source>
</trans-unit>
<trans-unit id="backend.filter.template">
<source>Template</source>
</trans-unit>
<trans-unit id="backend.filter.to">
<source>Recipient address</source>
</trans-unit>
<trans-unit id="backend.from">
<source>From</source>
</trans-unit>
<trans-unit id="backend.fromAddress">
<source>Sender Email Address</source>
</trans-unit>
<trans-unit id="backend.fromMail">
<source>Sender Email Address</source>
</trans-unit>
<trans-unit id="backend.fromName">
<source>Sender Name</source>
</trans-unit>
<trans-unit id="backend.fromUser">
<source>From User (overwrites other from fields):</source>
</trans-unit>
<trans-unit id="backend.is_overwritten">
<source>(overwritten)</source>
</trans-unit>
<trans-unit id="backend.language_default">
<source>Default</source>
</trans-unit>
<trans-unit id="backend.last_sent">
<source>Last Sent</source>
</trans-unit>
<trans-unit id="backend.mail_queue">
<source>Mail Queue</source>
</trans-unit>
<trans-unit id="backend.marker">
<source>Marker</source>
</trans-unit>
<trans-unit id="backend.marker.type.array">
<source>Array</source>
</trans-unit>
<trans-unit id="backend.marker.type.object">
<source>Object</source>
</trans-unit>
<trans-unit id="backend.marker.type.string">
<source>String</source>
</trans-unit>
<trans-unit id="backend.marker.type.file">
<source>File</source>
</trans-unit>
<trans-unit id="bachend.markerUsageInfo">
<source>Usage information</source>
</trans-unit>
<trans-unit id="bachend.markerUsage">
<source>You can use a marker in your text like this: "Dear {MARKER}, we hope you are fine with us contacting you. Kind regards {ANOTHERMARKER}"</source>
</trans-unit>
<trans-unit id="backend.no_extension">
<source>No template was registered.</source>
</trans-unit>
<trans-unit id="backend.no_extensions">
<source>No extensions registered</source>
</trans-unit>
<trans-unit id="backend.no_queue_entries">
<source>Your filter criteria didn't match any entries.</source>
</trans-unit>
<trans-unit id="backend.no_site_root">
<source>Please select one of the following website roots:</source>
</trans-unit>
<trans-unit id="backend.not_sent">
<source>Not Sent</source>
</trans-unit>
<trans-unit id="backend.notice.OtherPages">
<source>Please select one of the following pages to view your Mail Templates:</source>
</trans-unit>
<trans-unit id="backend.priority">
<source>Priority</source>
</trans-unit>
<trans-unit id="backend.queue.blacklisted">
<source>Blacklisted</source>
</trans-unit>
<trans-unit id="backend.replyTo">
<source>Reply to</source>
</trans-unit>
<trans-unit id="backend.save">
<source>Save</source>
</trans-unit>
<trans-unit id="backend.save_template">
<source>Save</source>
</trans-unit>
<trans-unit id="backend.select_language">
<source>Language (reloads the page):</source>
</trans-unit>
<trans-unit id="backend.send_again">
<source>Send</source>
</trans-unit>
<trans-unit id="backend.send_mail_again">
<source>Send this email again?</source>
</trans-unit>
<trans-unit id="backend.send_mail_manually">
<source>Send this email now?</source>
</trans-unit>
<trans-unit id="backend.send_now">
<source>Send</source>
</trans-unit>
<trans-unit id="backend.send_test">
<source>Save and send preview mails</source>
</trans-unit>
<trans-unit id="backend.sending_time">
<source>Sending Time</source>
</trans-unit>
<trans-unit id="backend.sent">
<source>Sent</source>
</trans-unit>
<trans-unit id="backend.showBody">
<source>Show</source>
</trans-unit>
<trans-unit id="backend.subject">
<source>Subject</source>
</trans-unit>
<trans-unit id="backend.success">
<source>Successfully saved!</source>
</trans-unit>
<trans-unit id="backend.success_mail">
<source>Preview Emails sent</source>
</trans-unit>
<trans-unit id="backend.success_mail_queue">
<source>Email succesfully sent</source>
</trans-unit>
<trans-unit id="backend.template_editor">
<source>Template Editor</source>
</trans-unit>
<trans-unit id="backend.template_path">
<source>Template Path:</source>
</trans-unit>
<trans-unit id="backend.template_reset">
<source>The template was resetted successfully.</source>
</trans-unit>
<trans-unit id="backend.to">
<source>To</source>
</trans-unit>
<trans-unit id="backend.toAddress">
<source>Receiver</source>
</trans-unit>
<trans-unit id="backend.to_form">
<source>To (If set, this overwrites the recipient everytime!) </source>
</trans-unit>
<trans-unit id="backend.type">
<source>Type</source>
</trans-unit>
<trans-unit id="backend.usage">
<source>Usage in Template</source>
</trans-unit>
<trans-unit id="backend.value">
<source>Example</source>
</trans-unit>
<trans-unit id="configuration.excludeTemplates" xml:space="preserve">
<source>Exclude Mail Templates for certain Domains
<trans-unit id="bachend.markerUsage">
<source><![CDATA[You can use a marker in your text like this: "Dear {MARKER}, we hope you are fine with us contacting you. Kind regards {ANOTHERMARKER}"]]></source>
</trans-unit>
<trans-unit id="bachend.markerUsageInfo">
<source><![CDATA[Usage information]]></source>
</trans-unit>
<trans-unit id="backend.all">
<source><![CDATA[All]]></source>
</trans-unit>
<trans-unit id="backend.bcc">
<source><![CDATA[BCC (Blind Carbon Copy Receiver, comma separated)]]></source>
</trans-unit>
<trans-unit id="backend.blacklisted">
<source><![CDATA[Show mails from blacklisted templates]]></source>
</trans-unit>
<trans-unit id="backend.button_create">
<source><![CDATA[Register new template]]></source>
</trans-unit>
<trans-unit id="backend.button_download_csv">
<source><![CDATA[Export CSV]]></source>
</trans-unit>
<trans-unit id="backend.button_reset">
<source><![CDATA[Reset Template]]></source>
</trans-unit>
<trans-unit id="backend.button_reset_all">
<source><![CDATA[Reset template]]></source>
</trans-unit>
<trans-unit id="backend.button_reset_filter">
<source><![CDATA[Reset]]></source>
</trans-unit>
<trans-unit id="backend.cc">
<source><![CDATA[CC (Carbon Copy Receiver, comma separated)]]></source>
</trans-unit>
<trans-unit id="backend.configuration">
<source><![CDATA[Configuration editor]]></source>
</trans-unit>
<trans-unit id="backend.content">
<source><![CDATA[Text]]></source>
</trans-unit>
<trans-unit id="backend.create.csv">
<source><![CDATA[Marker (csv format)]]></source>
</trans-unit>
<trans-unit id="backend.create.description">
<source><![CDATA[Description]]></source>
</trans-unit>
<trans-unit id="backend.create.info">
<source><![CDATA[Please insert the template marker in the following format: markerName; exampleValue; description <br /><br />Whitespaces in marker names are ignored. <br />If you have multiple markers, seperate them with a new line: markerName1; exampleValue1; description1<br />markerName2; exampleValue2; description2 <br /><br />Example: first_name; Max; The first name of the client <br />last_name; Mustermann; The last name of the client]]></source>
</trans-unit>
<trans-unit id="backend.create.info_header">
<source><![CDATA[Usage Information]]></source>
</trans-unit>
<trans-unit id="backend.create.markers">
<source><![CDATA[Template marker]]></source>
</trans-unit>
<trans-unit id="backend.create.save">
<source><![CDATA[Save]]></source>
</trans-unit>
<trans-unit id="backend.create.subject">
<source><![CDATA[Subject]]></source>
</trans-unit>
<trans-unit id="backend.create.templateName">
<source><![CDATA[Template name]]></source>
</trans-unit>
<trans-unit id="backend.create_error">
<source><![CDATA[Something went wrong.. Please try again!]]></source>
</trans-unit>
<trans-unit id="backend.create_message">
<source><![CDATA[Mail template was successfully registered. You can now edit the content below.]]></source>
</trans-unit>
<trans-unit id="backend.default_extension_name">
<source><![CDATA[Own templates]]></source>
</trans-unit>
<trans-unit id="backend.delete_template">
<source><![CDATA[Do you really want to reset this template?]]></source>
</trans-unit>
<trans-unit id="backend.description">
<source><![CDATA[Description]]></source>
</trans-unit>
<trans-unit id="backend.email">
<source><![CDATA[Email]]></source>
</trans-unit>
<trans-unit id="backend.entry_date">
<source><![CDATA[Queue Entry Date]]></source>
</trans-unit>
<trans-unit id="backend.error_bcc">
<source><![CDATA[The bcc addresses are invalid]]></source>
</trans-unit>
<trans-unit id="backend.error_cc">
<source><![CDATA[The cc addresses are invalid]]></source>
</trans-unit>
<trans-unit id="backend.failure_mail">
<source><![CDATA[There was an error when sending the preview email. Please check your configuration.]]></source>
</trans-unit>
<trans-unit id="backend.filter.bcc">
<source><![CDATA[BCC address]]></source>
</trans-unit>
<trans-unit id="backend.filter.cc">
<source><![CDATA[CC address]]></source>
</trans-unit>
<trans-unit id="backend.filter.date_from">
<source><![CDATA[Last sent time since:]]></source>
</trans-unit>
<trans-unit id="backend.filter.date_to">
<source><![CDATA[Last sent until:]]></source>
</trans-unit>
<trans-unit id="backend.filter.extension">
<source><![CDATA[Extension]]></source>
</trans-unit>
<trans-unit id="backend.filter.fields.description">
<source><![CDATA[Search fields (all by default):]]></source>
</trans-unit>
<trans-unit id="backend.filter.filter">
<source><![CDATA[Filter]]></source>
</trans-unit>
<trans-unit id="backend.filter.from">
<source><![CDATA[Sender address]]></source>
</trans-unit>
<trans-unit id="backend.filter.from_name">
<source><![CDATA[From name]]></source>
</trans-unit>
<trans-unit id="backend.filter.language">
<source><![CDATA[Language:]]></source>
</trans-unit>
<trans-unit id="backend.filter.mailtext">
<source><![CDATA[Mailtext]]></source>
</trans-unit>
<trans-unit id="backend.filter.reply_to">
<source><![CDATA[Reply to]]></source>
</trans-unit>
<trans-unit id="backend.filter.search">
<source><![CDATA[Search for:]]></source>
</trans-unit>
<trans-unit id="backend.filter.subject">
<source><![CDATA[Subject]]></source>
</trans-unit>
<trans-unit id="backend.filter.template">
<source><![CDATA[Template]]></source>
</trans-unit>
<trans-unit id="backend.filter.to">
<source><![CDATA[Recipient address]]></source>
</trans-unit>
<trans-unit id="backend.from">
<source><![CDATA[From]]></source>
</trans-unit>
<trans-unit id="backend.fromAddress">
<source><![CDATA[Sender Email Address]]></source>
</trans-unit>
<trans-unit id="backend.fromMail">
<source><![CDATA[Sender Email Address]]></source>
</trans-unit>
<trans-unit id="backend.fromName">
<source><![CDATA[Sender Name]]></source>
</trans-unit>
<trans-unit id="backend.fromUser">
<source><![CDATA[From User (overwrites other from fields):]]></source>
</trans-unit>
<trans-unit id="backend.is_overwritten">
<source><![CDATA[(overwritten)]]></source>
</trans-unit>
<trans-unit id="backend.language_default">
<source><![CDATA[Default]]></source>
</trans-unit>
<trans-unit id="backend.last_sent">
<source><![CDATA[Last Sent]]></source>
</trans-unit>
<trans-unit id="backend.mail_queue">
<source><![CDATA[Mail Queue]]></source>
</trans-unit>
<trans-unit id="backend.marker">
<source><![CDATA[Marker]]></source>
</trans-unit>
<trans-unit id="backend.marker.type.array">
<source><![CDATA[Array]]></source>
</trans-unit>
<trans-unit id="backend.marker.type.file">
<source><![CDATA[File]]></source>
</trans-unit>
<trans-unit id="backend.marker.type.object">
<source><![CDATA[Object]]></source>
</trans-unit>
<trans-unit id="backend.marker.type.string">
<source><![CDATA[String]]></source>
</trans-unit>
<trans-unit id="backend.no_extension">
<source><![CDATA[No template was registered.]]></source>
</trans-unit>
<trans-unit id="backend.no_extensions">
<source><![CDATA[No extensions registered]]></source>
</trans-unit>
<trans-unit id="backend.no_queue_entries">
<source><![CDATA[Your filter criteria didn't match any entries.]]></source>
</trans-unit>
<trans-unit id="backend.no_site_root">
<source><![CDATA[Please select one of the following website roots:]]></source>
</trans-unit>
<trans-unit id="backend.not_sent">
<source><![CDATA[Not Sent]]></source>
</trans-unit>
<trans-unit id="backend.notice.OtherPages">
<source><![CDATA[Please select one of the following pages to view your Mail Templates:]]></source>
</trans-unit>
<trans-unit id="backend.priority">
<source><![CDATA[Priority]]></source>
</trans-unit>
<trans-unit id="backend.queue.blacklisted">
<source><![CDATA[Blacklisted]]></source>
</trans-unit>
<trans-unit id="backend.replyTo">
<source><![CDATA[Reply to]]></source>
</trans-unit>
<trans-unit id="backend.save">
<source><![CDATA[Save]]></source>
</trans-unit>
<trans-unit id="backend.save_template">
<source><![CDATA[Save]]></source>
</trans-unit>
<trans-unit id="backend.select_language">
<source><![CDATA[Language (reloads the page):]]></source>
</trans-unit>
<trans-unit id="backend.send_again">
<source><![CDATA[Send]]></source>
</trans-unit>
<trans-unit id="backend.send_mail_again">
<source><![CDATA[Send this email again?]]></source>
</trans-unit>
<trans-unit id="backend.send_mail_manually">
<source><![CDATA[Send this email now?]]></source>
</trans-unit>
<trans-unit id="backend.send_now">
<source><![CDATA[Send]]></source>
</trans-unit>
<trans-unit id="backend.send_test">
<source><![CDATA[Save and send preview mails]]></source>
</trans-unit>
<trans-unit id="backend.sending_time">
<source><![CDATA[Sending Time]]></source>
</trans-unit>
<trans-unit id="backend.sent">
<source><![CDATA[Sent]]></source>
</trans-unit>
<trans-unit id="backend.showBody">
<source><![CDATA[Show]]></source>
</trans-unit>
<trans-unit id="backend.subject">
<source><![CDATA[Subject]]></source>
</trans-unit>
<trans-unit id="backend.success">
<source><![CDATA[Successfully saved!]]></source>
</trans-unit>
<trans-unit id="backend.success_mail">
<source><![CDATA[Preview Emails sent]]></source>
</trans-unit>
<trans-unit id="backend.success_mail_queue">
<source><![CDATA[Email succesfully sent]]></source>
</trans-unit>
<trans-unit id="backend.template_editor">
<source><![CDATA[Template Editor]]></source>
</trans-unit>
<trans-unit id="backend.template_path">
<source><![CDATA[Template Path:]]></source>
</trans-unit>
<trans-unit id="backend.template_reset">
<source><![CDATA[The template was resetted successfully.]]></source>
</trans-unit>
<trans-unit id="backend.to">
<source><![CDATA[To]]></source>
</trans-unit>
<trans-unit id="backend.toAddress">
<source><![CDATA[Receiver]]></source>
</trans-unit>
<trans-unit id="backend.to_form">
<source><![CDATA[To (If set, this overwrites the recipient everytime!) ]]></source>
</trans-unit>
<trans-unit id="backend.type">
<source><![CDATA[Type]]></source>
</trans-unit>
<trans-unit id="backend.usage">
<source><![CDATA[Usage in Template]]></source>
</trans-unit>
<trans-unit id="backend.value">
<source><![CDATA[Example]]></source>
</trans-unit>
<trans-unit id="configuration.excludeTemplates" xml:space="preserve">
<source><![CDATA[Exclude Mail Templates for certain Domains
Example:
......@@ -261,10 +300,10 @@ Example:
In this example the templates sg_mail.exampleA, sg_mail.exampleB are excluded for the page with id = 1 and the template sg_mail.exampleB is excluded for the page with id = 10.
If the given page ids do not exist or are not site roots, the configuration is ignored.</source>
</trans-unit>
<trans-unit id="configuration.excludeTemplatesAllDomains" xml:space="preserve">
<source>Exclude Mail Templates for all domains:Comma-separated list of {extension_key}.{template_name}
If the given page ids do not exist or are not site roots, the configuration is ignored.]]></source>
</trans-unit>
<trans-unit id="configuration.excludeTemplatesAllDomains" xml:space="preserve">
<source><![CDATA[Exclude Mail Templates for all domains:Comma-separated list of {extension_key}.{template_name}
Example:
......@@ -272,23 +311,23 @@ sg_comments.declined, sg_comments.approved
The templates declined and approved of the sg_comments extension are blacklisted for all domains.
</source>
</trans-unit>
<trans-unit id="configuration.templateList">
<source>List of templates</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr">
<source>Mail Templates</source>
</trans-unit>
<trans-unit id="mlang_labels_tablabel">
<source>Mail Templates</source>
</trans-unit>
<trans-unit id="mlang_tabs_tab">
<source>Mail Templates</source>
</trans-unit>
<trans-unit id="registeredExtension.action.message">
<source>Extension</source>
</trans-unit>
]]></source>
</trans-unit>
<trans-unit id="configuration.templateList">
<source><![CDATA[List of templates]]></source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr">
<source><![CDATA[Mail Templates]]></source>
</trans-unit>
<trans-unit id="mlang_labels_tablabel">
<source><![CDATA[Mail Templates]]></source>
</trans-unit>
<trans-unit id="mlang_tabs_tab">
<source><![CDATA[Mail Templates]]></source>
</trans-unit>
<trans-unit id="registeredExtension.action.message">
<source><![CDATA[Extension]]></source>
</trans-unit>
</body>
</file>
</xliff>
</xliff>
\ No newline at end of file
......@@ -85,7 +85,7 @@
</f:if>
<f:else>
<f:if condition="{mode} == 'editor'">
<sgm:be.menus.actionMenuOptionGroup label="{extensionKey}">
<sgm:be.menus.actionMenuOptionGroup label="{f:if(condition: '{extensionKey} == \'sg_mail\'', then: '{f:translate(key: \'backend.default_extension_name\')}', else: '{extensionKey}')}">
<f:for each="{template}" as="currentTemplate" key="templateKey">
<sgm:extendedIf condition="{selectedTemplateKey} == {templateKey}"
and="{selectedExtensionKey} == {extensionKey}">
......@@ -111,6 +111,7 @@
</f:be.menus.actionMenu>
</f:if>
</div>
<f:render section="iconButtons" />
<div class="module-docheader-bar-column-right">
<f:render partial="ButtonBar" arguments="{buttons:docHeader.buttons.right}" />
</div>
......
{namespace sgm=SGalinski\SgMail\ViewHelpers}
<f:be.container enableClickMenu="FALSE" loadExtJs="FALSE" includeCssFiles="{0: '{f:uri.resource(path: \'StyleSheets/backend.css\')}'}"
includeRequireJsModules="{
0: 'TYPO3/CMS/Backend/AjaxDataHandler',
1: '{f:if(condition: \'{typo3Version} < 8000000 \', then: \'TYPO3/CMS/Backend/ClickMenu\', else: \'TYPO3/CMS/Backend/ContextMenu\')}',
2: 'TYPO3/CMS/Backend/Tooltip',
3: 'TYPO3/CMS/Backend/DateTimePicker'}">
<sgm:addJavaScriptFile javaScriptFile="{f:uri.resource(path: 'Scripts/Backend.js')}" />
<sgm:inlineLanguageLabels labels="backend.delete_template, backend.send_mail_manually, backend.send_mail_again" />
<div class="module" data-module-id="" data-module-name="">
<div class="module-docheader t3js-module-docheader">
<div class="module-docheader-bar module-docheader-bar-navigation t3js-module-docheader-bar t3js-module-docheader-bar-navigation">
<div class="module-docheader-bar-column-right">
<span class="typo3-docheader-pagePath"><f:translate key="LLL:EXT:lang/locallang_core.xlf:labels.path" />: <f:format.raw>{docHeader.metaInformation.path}</f:format.raw></span>
<f:format.raw>{docHeader.metaInformation.recordInformation}</f:format.raw>
</div>
</div>
</div>
</div>
<div id="typo3-docbody">
<div id="typo3-inner-docbody">
<f:render section="content" />
</div>
</div>
</f:be.container>
......@@ -20,14 +20,14 @@
<sgm:be.menus.actionMenuItem label="{f:translate(key:'backend.mail_queue')}"
controller="Queue"
action="index"
additionalAttributes="{selected: 'selected'}"
arguments="{parameters: {selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}}" />
arguments="{selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}"
additionalAttributes="{selected: 'selected'}" />
</f:then>
<f:else>
<sgm:be.menus.actionMenuItem label="{f:translate(key:'backend.mail_queue')}"
controller="Queue"
action="index"
arguments="{parameters: {selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}}" />
arguments="{selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}" />
</f:else>
</f:if>
<f:if condition="{mode} == 'editor'">
......@@ -35,14 +35,14 @@
<sgm:be.menus.actionMenuItem label="{f:translate(key:'backend.template_editor')}"
controller="Mail"
action="index"
arguments="{parameters: {selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}}"
arguments="{selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}"
additionalAttributes="{selected: 'selected'}" />
</f:then>
<f:else>
<sgm:be.menus.actionMenuItem label="{f:translate(key:'backend.template_editor')}"
controller="Mail"
action="index"
arguments="{parameters: {selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}}" />
arguments="{selectedTemplate: selectedTemplateKey, selectedExtension: selectedExtensionKey}" />
</f:else>
</f:if>
</f:be.menus.actionMenu>
......
{namespace sgm=SGalinski\SgMail\ViewHelpers}
<f:layout name="NoMenu" />
<f:section name="iconButtons">
</f:section>
<f:section name="content">
<f:flashMessages />
<br>
<div class="row">
<div class="col-xs-12 col-md-10 col-md-offset-1">
<div class="panel panel-info">
<div class="panel-heading">
<f:translate key="backend.create.info_header" />
</div>
<div class="panel-body">
<f:format.html>
<f:translate key="backend.create.info" />
</f:format.html>
</div>
</div>
</div>
</div>
<f:form action="create" controller="Configuration" method="post" objectName="configuration" object="{configuration}">
<div class="row">
<div class="col-xs-12 col-md-10 col-md-offset-1">
<div class="form-group">
<label for="templateName"><f:translate key="backend.create.templateName" /></label>
<f:form.textfield class="form-control" property="templateName" id="templateName" required="TRUE" />
</div>
<div class="form-group">
<label for="csv"><f:translate key="backend.create.csv" /></label>
<f:form.textarea rows="5" class="form-control" property="csv" id="csv" />
</div>
<div class="form-group">
<label for="subject"><f:translate key="backend.create.subject" /></label>
<f:form.textfield class="form-control" property="subject" id="subject" />
</div>
<div class="form-group">
<label for="description"><f:translate key="backend.create.description" /></label>
<f:form.textarea rows="5" class="form-control" property="description" id="description" />
</div>
<f:form.submit class="btn-primary btn form-group col-xs-12 col-md-2 col-md-offset-10" value="{f:translate(key:'backend.create.save')}" />
</div>
</div>
</f:form>
</f:section>
{namespace sgm=SGalinski\SgMail\ViewHelpers}
{namespace core=TYPO3\CMS\Core\ViewHelpers}
<f:layout name="Default" />
<f:section name="iconButtons">
&nbsp;
<f:link.action class="btn btn-default btn-sm" controller="Configuration" action="index" arguments="{template: selectedTemplateKey, extensionKey: selectedTemplate.extension}">
<core:icon identifier="actions-document-new" />
</f:link.action>
</f:section>
<f:section name="content">
<f:flashMessages />
<f:if condition="{selectedTemplate}">
<f:then>
<div class="row form-group col-md-12">
<div class="editor-description col-md-9">
<div class="row form-group col-md-12 ">
<div class="editor-description col-md-6">
<p>{templateDescription}</p>
</div>
<div class=" col-md-3">
<div class="col-md-3 col-md-offset-3">
<f:link.action class="reset-btn reset-all-btn btn-danger btn col-md-12" action="reset" arguments="{template: selectedTemplateKey, extensionKey: selectedTemplate.extension}">{f:translate(key:'backend.button_reset_all')}</f:link.action>
</div>
</div>
......@@ -50,12 +56,16 @@
</f:for>
</f:then>
<f:else>
<f:translate key="{marker.value}">{marker.value}</f:translate>
<f:if condition="{marker.value}">
<f:translate key="{marker.value}">{marker.value}</f:translate>
</f:if>
</f:else>
</f:if>
</td>
<td>
<f:translate key="{marker.description}">{marker.description}</f:translate>
<f:if condition="{marker.description}">
<f:translate key="{marker.description}">{marker.description}</f:translate>
</f:if>
</td>
</tr>
</f:for>
......
......@@ -12,6 +12,7 @@ if (!defined('TYPO3_MODE')) {
[
'Mail' => 'index, sendTestMail, empty, reset',
'Queue' => 'index, sendMail, export',
'Configuration' => 'index, create',
],
[
'access' => 'user,group',
......
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