Index de l'article

Interfaces de gestion

Modifier l'URL de redirection après programmation d'un envoi en front (schedule)

Quand vous avez beaucoup customisé l'interface de gestion frontale des newsletters, vous souhaitez parfois rediriger plus précisément un utilisateur qui vient de programmer un email.

Dans le fichier components \ com_acymailing \ controllers \ frontnewsletter.php aux environs de la ligne 152, modifiez l'URL dans la variable $redirecturl de la fonction schedule, sous redirect_schedule :

if(empty($redirecturl)) $redirecturl = "MonURL" ;

La fonction schedule étant ensuite appelée dans le fichier components \ com_acymailing \ views \ frontnewsletter \ tmpl \ scheduleconfirm.php.

Modifier l'URL de redirection après annulation d'un envoi en front (cancel)

C'est légèrement différent que précédemment, car cette fois il s'agit d'un lien dynamique en fonction de son appel du back ou du front.

Dans le fichier administrator \ components \ com_acymailing \ views \ newsletter \ tmpl \ listing.php aux environs de la ligne 182, sous les données du champ senddate, modifiez le bouton. Par exemple :

<button class="acymailing_button" onclick="if(confirm('<?php echo str_replace("'", "\'", acymailing_translation_sprintf('ACY_VALID_DELETE_FROM_QUEUE', $row->countqueued)); ?>')){ window.location.href = '<?php echo acymailing_baseURI(); ?><?php if(acymailing_isAdmin()) echo 'index.php?option=com_acymailing&ctrl=newsletter&task=cancelNewsletter&'; ?><?php if(!acymailing_isAdmin()) echo 'emailing/index.php?option=com_acymailing&ctrl=frontnewsletter&task=cancelNewsletter&'; ?><?php echo acymailing_getFormToken(); ?>&mailid=<?php echo $row->mailid; ?>'; } return false;">
<?php echo acymailing_translation('ACY_CANCEL'); ?>
</button>

Dans mon cas j'ajoute l'alias d'un lien de menu (emailing), vers lequel je veux rediriger les utilisateurs en front, mais pas en back.

Ajouter le champ summary dans les interfaces de gestion des newsletters

Dans le fichier administrator \ components \ com_acymailing \ views \ newsletter \ tmpl \ listing.php,  commencez par afficher le nom du champ.

1) Un th sous subject (th class="title") et lists (title titlelist) par exemple, aux environs de la ligne 57 :

<th class="title">SUMMARY
</th>

2) Puis la collone des données, un peu plus bas dans le fichier, aux environs de la ligne 159, un autre td entre le bloc du $row->subject et celui du mailToLists :

<!-- SUMMARY FIELD -->
<td align="center" style="text-align:left">
<?php echo $row->summary; ?>
</td>

Mais les données nes ont pas encore disponibles, ils vous faut encore les intégrer aux données appelées par l'application, dans le fichier administrator \ components \ com_acymailing \ views\newsletter \ view.html.php.

3) D'abord dans le $searchMap de la fonction listing (autour de la ligne 56) :

$searchMap = array('a.mailid', 'a.alias', 'a.subject', 'a.summary', 'a.fromname', ...

4) Dans sa variable $selection aux environs de la ligne 84 :

$selection = array('a.mailid', 'a.alias', 'a.subject', 'a.summary', 'a.fromname', 'a.fromemail'...

5) Puis dans le $myTemplate de la fonction form (autour de la ligne 325) :

if(!empty($myTemplate->tempid)){
$mail->body = acymailing_absoluteURL($myTemplate->body);
$mail->altbody = $myTemplate->altbody;
$mail->tempid = $myTemplate->tempid;
$mail->subject = $myTemplate->subject;
$mail->summary = $myTemplate->summary;
$mail->replyname = $myTemplate->replyname;
$mail->replyemail = $myTemplate->replyemail;
$mail->fromname = $myTemplate->fromname;
$mail->fromemail = $myTemplate->fromemail;
}

Ajouter le champ source dans les fiches des abonnés

Le champ source est un champ Acymailing par défaut, mais vous l'utilisez sans doute. Il n'apparaît donc pas classiquement dans les extra fieds.

Pour l'ajouter, dans administrator / components / com_acymailing / views\subscriber / tmpl / extrafields.form.php, au début de la div id="acyuserinfo" :

<tr id="trname" >
<td width="150" class="acykey">
<label for="name"style="margin-bottom:25px;">
<?php echo acymailing_translation('Source'); ?>
</label>
</td>
<td>
<?php
if(empty($this->subscriber->userid)){
echo '<input type="text" name="data[subscriber][source]" id="name" class="inputbox" style="width:60%;" value="'.$this->escape(@$this->subscriber->source).'" />';
}else{
echo $this->escape($this->subscriber->source);
}
?>
</td>
</tr>

Personnaliser le formulaire de souscription

Ici un exemple de personnalisation avec le CCK Fabrik.

Personnaliser le formulaire de modification des informations utilisateur

Pratqiue pour informer l'utilisateur de vos politiques de confidentialité par exemple.

Faîtes-le ici, afin d'être sûr que l'utilisateur utilisant un lien tag dans une newsletter, puisse les voir :

components \ com_acymailing \ views \ user \ tmpl \ modify.php

Juste après le legend de USER_INFORMATIONS par exemple :

<div id="compliancy_acy" class="well" style="margin-left: auto;margin-right: auto;width: 600px ;font-size : 14px ;font-style : italic ; line-height : 18px">
In accordance with the latest international data protection regulations, you have access to your data and can modify or delete it at any time.
<br><br>To unsubscribe from a mailing list, or to never receive email from us again, use the footer link of all our emails please.
<br><br>If you have any questions, send an email to <a href="mailto:Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.?subject=Data protection regulations">Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.</a>.
<br><br>View our full <a href="https://www.informaexhibitions.com/en/privacy-policy.html" target="_blank">privacy policy</a>.
</div>

Ajouter une classe CSS aux boutons d'export et de suppresion des données

Dans components \ com_acymailing \ views \ user \ tmpl \ modify.php, vers la ligne 113, remplacez :

<div style="clear: both; padding-top: 5px;">

par :

<div style="clear: both; padding-top: 5px;" class="mes_boutons">

Retirer les appels de polices externes ou de certains liens des statistiques

Ici nos stats sont polluées par des appels Google-Fonts :

SELECT * FROM joo_acymailing_urlclick
INNER JOIN joo_acymailing_url ON joo_acymailing_urlclick.urlid = joo_acymailing_url.urlid
WHERE url LIKE '%fonts.googleapis.com%' ;

Nous les supprimons ainsi :

DELETE FROM joo_acymailing_urlclick
WHERE joo_acymailing_urlclick.urlid IN
(SELECT urlid FROM joo_acymailing_url WHERE url LIKE '%fonts.googleapis.com%') ;

Ajouter une phrase au-dessus du bouton de suppression des données

Toujours dans components \ com_acymailing \ views \ user \ tmpl \ modify.php, vers la ligne 124, ajouter ceci juste entre le table cellpadding et le tr exportButton :

<div style="width: 400px; margin-top: 20px ; margin-bottom: 5px ;">
Our data policy allows you to completely delete the data stored and collected on this site.
</div>