Form : envoi de mails
This commit is contained in:
parent
b08238a664
commit
7aaf446893
@ -48,10 +48,20 @@ class form extends common {
|
|||||||
self::TYPE_CHECKBOX => 'Case à cocher'
|
self::TYPE_CHECKBOX => 'Case à cocher'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public static $listUsers = [
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration
|
* Configuration
|
||||||
*/
|
*/
|
||||||
public function config() {
|
public function config() {
|
||||||
|
// Liste des utilisateurs
|
||||||
|
$userIdsFirstnames = helper::arrayCollumn($this->getData(['user']), 'firstname');
|
||||||
|
ksort($userIdsFirstnames);
|
||||||
|
self::$listUsers [] = '';
|
||||||
|
foreach($userIdsFirstnames as $userId => $userFirstname) {
|
||||||
|
self::$listUsers [] = $this->getData(['user', $userId, 'mail']);
|
||||||
|
}
|
||||||
// Soumission du formulaire
|
// Soumission du formulaire
|
||||||
if($this->isPost()) {
|
if($this->isPost()) {
|
||||||
// Configuration
|
// Configuration
|
||||||
@ -63,6 +73,8 @@ class form extends common {
|
|||||||
'button' => $this->getInput('formConfigButton'),
|
'button' => $this->getInput('formConfigButton'),
|
||||||
'capcha' => $this->getInput('formConfigCapcha', helper::FILTER_BOOLEAN),
|
'capcha' => $this->getInput('formConfigCapcha', helper::FILTER_BOOLEAN),
|
||||||
'group' => $this->getInput('formConfigGroup', helper::FILTER_INT),
|
'group' => $this->getInput('formConfigGroup', helper::FILTER_INT),
|
||||||
|
'user' => self::$listUsers [$this->getInput('formConfigUser', helper::FILTER_INT)],
|
||||||
|
'mail' => $this->getInput('formConfigMail', helper::FILTER_MAIL),
|
||||||
'pageId' => $this->getInput('formConfigPageId', helper::FILTER_ID),
|
'pageId' => $this->getInput('formConfigPageId', helper::FILTER_ID),
|
||||||
'subject' => $this->getInput('formConfigSubject')
|
'subject' => $this->getInput('formConfigSubject')
|
||||||
]
|
]
|
||||||
@ -296,9 +308,13 @@ class form extends common {
|
|||||||
$this->setData(['module', $this->getUrl(0), 'data', helper::increment(1, $this->getData(['module', $this->getUrl(0), 'data'])), $data]);
|
$this->setData(['module', $this->getUrl(0), 'data', helper::increment(1, $this->getData(['module', $this->getUrl(0), 'data'])), $data]);
|
||||||
// Envoi du mail
|
// Envoi du mail
|
||||||
$sent = true;
|
$sent = true;
|
||||||
|
$singleuser = $this->getData(['module', $this->getUrl(0), 'config', 'user']);
|
||||||
|
$singlemail = $this->getData(['module', $this->getUrl(0), 'config', 'mail']);
|
||||||
if(
|
if(
|
||||||
self::$inputNotices === []
|
self::$inputNotices === []
|
||||||
AND $group = $this->getData(['module', $this->getUrl(0), 'config', 'group'])
|
AND $group = $this->getData(['module', $this->getUrl(0), 'config', 'group'])
|
||||||
|
OR $singleuser !== ''
|
||||||
|
OR $singlemail !== ''
|
||||||
) {
|
) {
|
||||||
// Utilisateurs dans le groupe
|
// Utilisateurs dans le groupe
|
||||||
$to = [];
|
$to = [];
|
||||||
@ -307,6 +323,15 @@ class form extends common {
|
|||||||
$to[] = $user['mail'];
|
$to[] = $user['mail'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Utilisateur désigné
|
||||||
|
if (!empty($singleuser)) {
|
||||||
|
$to[] = $singleuser;
|
||||||
|
}
|
||||||
|
// Mail désigné
|
||||||
|
if (!empty($singlemail)) {
|
||||||
|
$to[] = $singlemail;
|
||||||
|
}
|
||||||
if($to) {
|
if($to) {
|
||||||
// Sujet du mail
|
// Sujet du mail
|
||||||
$subject = $this->getData(['module', $this->getUrl(0), 'config', 'subject']);
|
$subject = $this->getData(['module', $this->getUrl(0), 'config', 'subject']);
|
||||||
|
@ -142,6 +142,8 @@ $("#formConfigMailOptionsToggle").on("change", function() {
|
|||||||
$("#formConfigMailOptions").slideUp(function() {
|
$("#formConfigMailOptions").slideUp(function() {
|
||||||
$("#formConfigGroup").val("");
|
$("#formConfigGroup").val("");
|
||||||
$("#formConfigSubject").val("");
|
$("#formConfigSubject").val("");
|
||||||
|
$("#formConfigMail").val("");
|
||||||
|
$("#formConfigUser").val("");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}).trigger("change");
|
}).trigger("change");
|
||||||
|
@ -72,34 +72,63 @@
|
|||||||
'label' => 'Texte du bouton de soumission',
|
'label' => 'Texte du bouton de soumission',
|
||||||
'value' => $this->getData(['module', $this->getUrl(0), 'config', 'button'])
|
'value' => $this->getData(['module', $this->getUrl(0), 'config', 'button'])
|
||||||
]); ?>
|
]); ?>
|
||||||
<?php echo template::checkbox('formConfigMailOptionsToggle', true, 'Envoyer par mail les données saisies aux utilisateurs d\'un groupe', [
|
<?php echo template::checkbox('formConfigMailOptionsToggle', true, 'Envoyer par mail les données saisies :', [
|
||||||
'checked' => (bool) $this->getData(['module', $this->getUrl(0), 'config', 'group'])
|
'checked' => (bool) $this->getData(['module', $this->getUrl(0), 'config', 'group']) ||
|
||||||
]); ?>
|
!empty($this->getData(['module', $this->getUrl(0), 'config', 'user'])) ||
|
||||||
|
!empty($this->getData(['module', $this->getUrl(0), 'config', 'mail'])),
|
||||||
|
'help' => 'Sélectionnez au moins un groupe, un utilisateur ou saississez un email'
|
||||||
|
]); ?>
|
||||||
<div id="formConfigMailOptions" class="displayNone">
|
<div id="formConfigMailOptions" class="displayNone">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col6">
|
<div class="col11 offset1">
|
||||||
<?php echo template::select('formConfigGroup', self::$groupNews, [
|
|
||||||
'label' => 'Groupe',
|
|
||||||
'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'group'])
|
|
||||||
]); ?>
|
|
||||||
</div>
|
|
||||||
<div class="col6">
|
|
||||||
<?php echo template::text('formConfigSubject', [
|
<?php echo template::text('formConfigSubject', [
|
||||||
'help' => 'Laissez vide afin de conserver le texte par défaut.',
|
'help' => 'Laissez vide afin de conserver le texte par défaut.',
|
||||||
'label' => 'Sujet du mail',
|
'label' => 'Sujet du mail',
|
||||||
'value' => $this->getData(['module', $this->getUrl(0), 'config', 'subject'])
|
'value' => $this->getData(['module', $this->getUrl(0), 'config', 'subject'])
|
||||||
]); ?>
|
]); ?>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
// Element 0 quand aucun membre a été sélectionné
|
||||||
|
$groupMembers = [''] + $module::$groupNews;
|
||||||
|
?>
|
||||||
|
Destinataires :
|
||||||
|
<div class="row">
|
||||||
|
<div class="col6 offset1">
|
||||||
|
<?php echo template::select('formConfigGroup', $groupMembers, [
|
||||||
|
'label' => 'Un groupe de membres :',
|
||||||
|
'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'group'])
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col6 offset1">
|
||||||
|
<?php echo template::select('formConfigUser', $module::$listUsers, [
|
||||||
|
'label' => 'Un membre :',
|
||||||
|
'selected' => array_search($this->getData(['module', $this->getUrl(0), 'config', 'user']),$module::$listUsers)
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col6 offset1">
|
||||||
|
<?php echo template::text('formConfigMail', [
|
||||||
|
'label' => 'Un eMail :',
|
||||||
|
'value' => $this->getData(['module', $this->getUrl(0), 'config', 'mail']),
|
||||||
|
'help' => 'Saisissez une adresse mail individuelle ou de liste'
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php echo template::checkbox('formConfigPageIdToggle', true, 'Rediriger vers une page du site après soumission du formulaire', [
|
<?php echo template::checkbox('formConfigPageIdToggle', true, 'Redirection après soumission du formulaire', [
|
||||||
'checked' => (bool) $this->getData(['module', $this->getUrl(0), 'config', 'pageId'])
|
'checked' => (bool) $this->getData(['module', $this->getUrl(0), 'config', 'pageId'])
|
||||||
]); ?>
|
]); ?>
|
||||||
<?php echo template::select('formConfigPageId', $module::$pages, [
|
<div class="col6 offset1">
|
||||||
'classWrapper' => 'displayNone',
|
<?php echo template::select('formConfigPageId', $module::$pages, [
|
||||||
'label' => 'Page',
|
'classWrapper' => 'displayNone',
|
||||||
'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'pageId'])
|
'label' => 'Sélectionner une page du site :',
|
||||||
]); ?>
|
'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'pageId'])
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
<?php echo template::checkbox('formConfigCapcha', true, 'Capcha à remplir pour soumettre le formulaire', [
|
<?php echo template::checkbox('formConfigCapcha', true, 'Capcha à remplir pour soumettre le formulaire', [
|
||||||
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'capcha'])
|
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'capcha'])
|
||||||
]); ?>
|
]); ?>
|
||||||
|
Loading…
Reference in New Issue
Block a user