Index de l'article

Abonnements

Modifier le nom des listes sur le module de souscription

Intéressant dans un contexte où vous manipulez de nombreuses listes, avec vos propres noms de listes, standardisés pour votre travail, mais que vous souhaitez être plus explicite pour l'abonné (en front).

1) Créez un champ supplémentaire dans la table _acymailing_list, nommé ici my_public_name par l'exemple, et overridez le fichier components \ com_acymailing \ views \ user \ tmpl \ subs_default.php en remplaçant name par my_public_name (vers la ligne 23).

2) Ainsi que le fichier le fichier modules / mod_acymailing / tmpl / default.php en remplaçant cette chaîne (vers la ligne 62) :

[$myListId]->name ;

Par celle-ci :

[$myListId]->my_public_name ;

3) Ajoutez le champ dans le formulaire de gestion en back.

Dans le fichier administrator \ components \ com_acymailing \ views \ list \ tmpl \ form.php, juste après le 1er  tr, ajoutez un autre tr de ce type :

<tr>
<td class="acykey">
<label for="my_public_name">
<?php echo 'Public name'; ?>
</label>
</td>
<td>
<input type="text" name="data[list][my_public_name]" id="my_public_name" class="inputbox" style="width:200px" value="<?php echo $this->escape(@$this->list->my_public_name); ?>"/>
</td>
</tr>

4) Dans administrator \ components \ com_acymailing \ views \ list \ tmpl \ listing.php, juste après le th LIST_NAMEaux environs de la ligne 62, ajoutez un autre th de ce type :

<th class="title">
<?php echo acymailing_gridSort('Public name', 'a.my_public_name', $this->pageInfo->filter->order->dir, $this->pageInfo->filter->order->value); ?>
</th>

5) Enfin, dans le même fichier administrator \ components \ com_acymailing \ views \ list \ tmpl \ listing.php, juste après le td $row->name aux environs de la ligne 127, ajoutez un autre td de ce type :

<td>
<?php
echo acymailing_tooltip($row->description, $row->my_public_name, 'tooltip.png', $row->my_public_name, acymailing_completeLink((acymailing_isAdmin() ? '' : 'front').'list&task=edit&listid='.$row->listid));
?>
</td>

6) Ensuite vous pouvez customiser leur affichage en front via des sélecteurs CSS. Exemple :

.acymailing_lists tr:nth-child(22) label,
.acymailing_lists tr:nth-child(24) label {
margin-bottom: 15px !important;
}

7) Leur ordre d'affichage se gère dans le champ ordering.

Limiter les désinscriptions

On peut souhaiter limiter les unsubs à la désincription de la seule liste concernée, et pas à toutes les listes ou à tout le site (dans la page de désinscription, la balise unsubscribe menant aux 3 choix natifs).

La désinscription de la liste utilisée étant déjà cochée par défaut, il suffit de masquer l'intégralité des options. Une ligne CSS fera l'affaire :

div.unsuboptions {
display:none
}

Attention : cette pratique reste déconseillée (voir interdite, RGPD...) et doit se faire en parfaite connaissance de cause (sur des envois ciblés, selon le contexte ou avec des explications claires por l'abonné...).