Manuel de modifications dans PHPlist
Cet article se base sur un excellent document preparé par BD-31. Vous êtes invité à contribuer.
I. Configuration
Supprimer les erreurs d'affichage des lettres avec accent
Dans l'interface d'administration:modifier Charset for HTML messages: Changer UTF-8 en iso-8859-1
modifier Charset for Text messages: Changer UTF-8 en iso-8859-1
Proposition de traduction pour les mails automatiques du système
Les pages d'inscription
Dans la page principale, aller sur "page(s) d’inscription" pour configurer
Requête de confirmation
modifier Subject of the message users receive when they subscribe
Requête de confirmation
modifier Message users receive when they subscribe
... Votre adresse email a été inscrite aux newsletters suivantes: [LISTS] Si cela vous convient, merci de cliquer sur le lien suivant pour confirmer votre inscription. Sans cette confirmation, cette demande d'inscription sera annulée. [CONFIRMATIONURL] Si vous pensez qu'il s'agit d'une erreur, ou ne souhaitez pas recevoir ces newsletters, ignorez simplement ce message. Merci
Désinscription
modifier Subject of the message users receive when they unsubscribeDésinscription de la Newsletter
modifier Message users receive when they unsubscribe
Vous avez été désinscrit de notre newsletter. Vous ne devrez donc plus recevoir d'autres mail du système de newsletter. En effet, vous avez été ajouté dans notre "blacklist", ce qui signifie que notre système de newsletter refusera actuelement de vous envoyer d'autres mails sans intervention manuelle d'un de ses administrateurs. S'il s'agit d'une erreur, ou si vous avez changé d'avis, vous pouvez vous réinscrire: Rendez vous sur: [SUBSCRIBEURL] et suivez les instructions. Merci.
Confirmation de l'inscription
modifier Subject of the message users receive after confirming their email addressInscription à la Newsletter
modifier Message users receive after confirming their email address
Bienvenue dans notre Newsletter Merci de conserver cet email pour un éventuel usage ultérieur. Votre adresse email a été ajoutée aux newsletters suivantes: [LISTS] Pour mettre à jour vos données et preferences, merci de vous rendre à l'adresse: [PREFERENCESURL]. Et pour vous désinscrire, à l'adresse: [UNSUBSCRIBEURL]. Merci
Modification détails
modifier Subject of the message users receive when they have changed their details[information] Modification de vos détails de membre de liste
modifier Message that is sent when users change their information
Ce message vous informe d'une modification de vos details dans la base de données de notre système de newsletter Vous êtes actuelement membres des listes suivantes: [LISTS] [CONFIRMATIONINFO] Les informations dans notre système vous concernant sont: [USERDATA] Si cela n'est pas correct, merci de les modifier à l'adresse suivante: [PREFERENCESURL] Merci
modifier Part of the message that is sent to their new email address when users change their information, and the email address has changed
Lors de la mise à jour de vos détails, votre adresse mail a été modifiée. Merci de confirmer cette nouvelle adresse en visitant cette page: [CONFIRMATIONURL]
modifier Part of the message that is sent to their old email address when users change their information, and the email address has changed
Attention: Lors de la mise à jour de vos détails, votre adresse mail a été modifiée. Un message a été envoyé à votre nouvelle adresse email avec un lien de confirmation pour valider la modification. Merci de vous rendre à cette adresse pour valider votre nouveau paramétrage.
modifier Subject of message to send when users request their personal location
Votre zone personelle
modifier Message to send when they request their personal location
Vous avez demandé l'adresse de votre zone personnelle pour mettre à jour vos détails depuis notre site internet. La voici ci-dessous. Assurez vous de bien utiliser le lien entier sur une seule ligne. En effet, il peut arriver que votre logiciel de mail coupe automatiquement certains liens en plusieurs lignes. Adresse de votre zone personnelle : [PREFERENCESURL] Merci.
Pied de page par défaut pour la Newsletter
modifier Default footer for sending a message-- Pour vous désabonner à cette liste, visitez [UNSUBSCRIBE] Pour mettre vos préférences à jour, visitez [PREFERENCES] Faire suivre un message a quelqun [FORWARD]
Pied de page des messages/newsletters transferés
modifier Footer used when a message has been forwarded-- Ce message vous a été transféré par [FORWARDEDBY]. Vous n'avez pas été incrit automatiquement sur cette liste de diffusion. our vous y inscrire allez à [SUBSCRIBE]
II. Modifications
Modifier le pied de page des emails
a) Suppression des liens de gestion des données utilisateurMettre à blanc les données du "pied de page par défaut lors de l’expédition de message" pour éviter les problèmes de mise en page lors de l'expédition des versions html. Il faut "ruser" en mettant ''& nbsp;'' (blanc) dans la zone de texte.
Version à introduire pour les messages n'utilisant pas de modèle (template) adapté:
-- Pour vous désabonner à cette liste, visitez [UNSUBSCRIBE]. Pour mettre vos préférences à jour, visitez [PREFERENCES]. Faire suivre un message à quelqu'un [FORWARD].
Appliquer un style
Il faut absolument intégrer le style pour toutes les lignes, et pas en en-tête ou á travers d'un lien externe, sinon ils risquent d'être perdus (hotmail, gmail, yahoo).Les styles appliqués à des messages HTML qui utilisent des modèles, sont conditionnés dans les modèles.
Les styles appliqués à l'ensemble des messages HTML qui n'utilisent pas de modèles, sont conditionnés par la section "modifier CSS for HTML messages without a template" dans la page "configurer phplist". Cela défini, entre autre, le style appliqué aux paragraphes, liens, titres…
Modification des pages d'administration
Fichier à modifier : admin/header.inc et les fichiers CSS : styles/phplist.css…Lignes modifiées pour adapter l'entête à la nouvelle image :
<TR valign="top" background="images/masthead.png"> <TD colSpan=2 height="63"> </TD> <TD width="132" align=left valign="bottom"><SPAN class=webblermenu><a href="http://www.fbp.fr" target="_blank">FBP</a></SPAN></TD> </TR> <TR> <TD bgColor="#000000"><IMG height=1 alt="" src="images/transparent.png" width=20 border=0></TD> <TD bgColor="#000000"><IMG height=1 alt="" src="images/transparent.png" width=555 border=0></TD> <TD bgColor="#000000"><IMG height=1 alt="" src="images/transparent.png" width=132 border=0></TD> </TR>
Pour modifier le pied de page: fichier à modifier: admin/footer.inc
Modification des pages d'accueil
Modifier la section "En-tête" de "modifier une page d’inscription" dans la partie administration. Le code ci dessus est applicable.Le début de la section "Pied de page" corespond à la ligne située en haut à droite. Le reste correspond au pied de page.
Pour supprimer le logo PHPList, il faut supprimer les lignes 134 à 138 du fichier admin/connect.php:
if (REGISTER) {
$PoweredByImage = '<p align=left><a href="http://www.phplist.com"><img src="http://phplist.tincan.co.uk/images/'.$v.'/power-phplist.png" width=70 height=30 title="Powered by PHPlist version '.$v.', © tincan ltd" alt="Powered by PHPlist'.$v.', © tincan ltd" border="0"></a></p>';
} else {
$PoweredByImage = '<p align=left><a href="http://www.phplist.com"><img src="images/power-phplist.png" width=70 height=30 title="Powered by PHPlist version '.$v.', © tincan ltd" alt="Powered by PHPlist'.$v.', © tincan ltd" border="0"></a></p>';
}
$PoweredByImage = '<p align=left><a href="http://www.phplist.com"><img src="http://phplist.tincan.co.uk/images/'.$v.'/power-phplist.png" width=70 height=30 title="Powered by PHPlist version '.$v.', © tincan ltd" alt="Powered by PHPlist'.$v.', © tincan ltd" border="0"></a></p>';
} else {
$PoweredByImage = '<p align=left><a href="http://www.phplist.com"><img src="images/power-phplist.png" width=70 height=30 title="Powered by PHPlist version '.$v.', © tincan ltd" alt="Powered by PHPlist'.$v.', © tincan ltd" border="0"></a></p>';
}
Modifications
a) Traductions :Page: admin/defaultconfig.inc Lignes : 128 à 426
Pour traduire les texte de la page "configurer phplist"
Page : admin/subscribelib2.php Ligne : 271 et 272
print '<p><b> Vous êtes connecté avec le login You are logged in as '.$_SESSION["logindetails"]["adminname"].'</b></p>';
print '<p><a href="'.$adminpages.'"> Retour à la page d’administration Back to the main admin page</a></p>';
Ligne : 278 et 279
print '<p>'.$GLOBALS['I18N']->get(' Cet email est sur liste noire (blacklist), une demande de confirmation à été expédiée.').'<br/>';
print $GLOBALS['I18N']->get(' Si l’utilisateur confirme l’inscription, il sera retiré de la liste noire (blacklist).').'</p>';
Ligne : 328
print "<p>L'utilisateur a été ajouté et confirmé</p>";
Ligne : 393 à 396
Fatal_Error("Cannot change to that email address.
<br/>This email already exists.
<br/>Please use the preferences URL for this email to make updates.
<br/>Click <a href=\"".getConfig("preferencesurl")."&email=$email\">here</a> to request your personal location");
Ligne : 701
'Confirmez le courriel',htmlspecialchars(stripslashes($_REQUEST["emailconfirm"])),$textlinewidth,'Confirm email');
print '<p><b> Vous êtes connecté avec le login You are logged in as '.$_SESSION["logindetails"]["adminname"].'</b></p>';
print '<p><a href="'.$adminpages.'"> Retour à la page d’administration Back to the main admin page</a></p>';
Ligne : 278 et 279
print '<p>'.$GLOBALS['I18N']->get(' Cet email est sur liste noire (blacklist), une demande de confirmation à été expédiée.').'<br/>';
print $GLOBALS['I18N']->get(' Si l’utilisateur confirme l’inscription, il sera retiré de la liste noire (blacklist).').'</p>';
Ligne : 328
print "<p>L'utilisateur a été ajouté et confirmé</p>";
Ligne : 393 à 396
Fatal_Error("Cannot change to that email address.
<br/>This email already exists.
<br/>Please use the preferences URL for this email to make updates.
<br/>Click <a href=\"".getConfig("preferencesurl")."&email=$email\">here</a> to request your personal location");
Ligne : 701
'Confirmez le courriel',htmlspecialchars(stripslashes($_REQUEST["emailconfirm"])),$textlinewidth,'Confirm email');
Page : admin/structure.php Ligne : 29 à 49
"user" => array ( # a user in the system
"id" => array("integer not null primary key auto_increment","sysexp:ID"),
"email" => array("varchar(255) not null","Email"),
"confirmed" => array("tinyint default 0","sys:Est-ce que cet utilisateur est confirm é ?"),
"blacklisted" => array("tinyint default 0","sys: Est-ce que cet utilisateur est en liste noire ?"),
"bouncecount" => array("integer default 0","sys: Nombre de messages rejetés pour cet utilisateur"),
"entered" => array("datetime", "sysexp: Créé le"),
"modified" => array("timestamp", "sysexp: Dernière modification le"),
"uniqid" => array("varchar(255)","sys: Identifiant unique de l’utilisateur"),
"unique_1" => array("(email)","sys:unique"),
"htmlemail" => array("tinyint default 1"," Envoyer les emails en HTML à cet utilisateur"),
"subscribepage" => array("integer","sysexp: Page de souscription utilisée"),
"rssfrequency" => array("varchar(100)"," Fréquence RSS"),
"password" => array("varchar(255)","Password"),
"passwordchanged" => array("date","sys: Dernière modification du mot de passe"),
"disabled" => array("tinyint default 0"," Est ce que ce compte est désactivé ?"),
"extradata" => array("text"," Données supplémentaires"),
"foreignkey" => array("varchar(100)"," Foreign Key "),
"user" => array ( # a user in the system
"id" => array("integer not null primary key auto_increment","sysexp:ID"),
"email" => array("varchar(255) not null","Email"),
"confirmed" => array("tinyint default 0","sys:Est-ce que cet utilisateur est confirm é ?"),
"blacklisted" => array("tinyint default 0","sys: Est-ce que cet utilisateur est en liste noire ?"),
"bouncecount" => array("integer default 0","sys: Nombre de messages rejetés pour cet utilisateur"),
"entered" => array("datetime", "sysexp: Créé le"),
"modified" => array("timestamp", "sysexp: Dernière modification le"),
"uniqid" => array("varchar(255)","sys: Identifiant unique de l’utilisateur"),
"unique_1" => array("(email)","sys:unique"),
"htmlemail" => array("tinyint default 1"," Envoyer les emails en HTML à cet utilisateur"),
"subscribepage" => array("integer","sysexp: Page de souscription utilisée"),
"rssfrequency" => array("varchar(100)"," Fréquence RSS"),
"password" => array("varchar(255)","Password"),
"passwordchanged" => array("date","sys: Dernière modification du mot de passe"),
"disabled" => array("tinyint default 0"," Est ce que ce compte est désactivé ?"),
"extradata" => array("text"," Données supplémentaires"),
"foreignkey" => array("varchar(100)"," Foreign Key "),
Page : admin/lan/fr/statsmgt.php Ligne : à rajouter
'Overview' => 'Vue d\'ensemble',
'Overview' => 'Vue d\'ensemble',
Page : admin/lan/fr/template.php Ligne : à rajouter
'You can upload a template file or paste the text in the box below' => 'Vous pouvez charger un modèle ou copier le texte dans la fenêtre ci-dessous',
'Template file.' => 'Modèle à charger',
'You can upload a template file or paste the text in the box below' => 'Vous pouvez charger un modèle ou copier le texte dans la fenêtre ci-dessous',
'Template file.' => 'Modèle à charger',
Page : admin/lan/fr/export.php Ligne : à rajouter
"When they subscribed to" => "Lorsqu'ils ont souscrit à ",
Page : admin/user.css Ligne : 51 à 55 et 60
echo "<br />".PageLink2("members","Retour à la liste des membres Back to Members of this list","id=$list")."\n";
if (isset($start))
echo "<br />".PageLink2("users","Retour à la liste des utilisateurs Back to the list of users","start=$start&unconfirmed=".$_GET["unconfirmed"])."\n";
if ($find)
echo "<br />".PageLink2("users","Retour au résultat des recherches Back to the search results","start=$start&find=".urlencode($find)."&findby=".urlencode($findby)."&unconfirmed=".$_GET["unconfirmed"]."\n");
echo "<br/>".PageLink2("$returnpage$more","Retour à Return to $returnpage");
"When they subscribed to" => "Lorsqu'ils ont souscrit à ",
Page : admin/user.css Ligne : 51 à 55 et 60
echo "<br />".PageLink2("members","Retour à la liste des membres Back to Members of this list","id=$list")."\n";
if (isset($start))
echo "<br />".PageLink2("users","Retour à la liste des utilisateurs Back to the list of users","start=$start&unconfirmed=".$_GET["unconfirmed"])."\n";
if ($find)
echo "<br />".PageLink2("users","Retour au résultat des recherches Back to the search results","start=$start&find=".urlencode($find)."&findby=".urlencode($findby)."&unconfirmed=".$_GET["unconfirmed"]."\n");
echo "<br/>".PageLink2("$returnpage$more","Retour à Return to $returnpage");
Page : admin/commonlib/pages/users.php Ligne : 213
printf($GLOBALS['I18N']->get('%s utilisateurs au total users in total'),$total);
printf($GLOBALS['I18N']->get('%s utilisateurs au total users in total'),$total);
Page : index.php Ligne : 453 à 457
$html .= '<div class="adminmessage"><p><b>Vous êtes logué comme administrateur ('.$_SESSION["logindetails"]["adminname"].') de ce système phplist</b></p>';
$html .= '<p>Vous avez donc la possibilité d\'accéder à ces choix, ce qui n\'est pas le cas pour les utilisateurs arrivant sur cette page.</p>';
$html .= '<p><a href="'.$GLOBALS['adminpages'].'">Retour à la zone d\'administration</a></p>';
$html .= '<p><b>Please choose</b>: <br/><input type=radio name="makeconfirmed" value="1"> Confirmer immédiatement cet utilisateur
<br/><input type=radio name="makeconfirmed" value="0" checked> Envoyer à cet utilisateur une demande de confirmation par email</p></div>';
$html .= '<div class="adminmessage"><p><b>Vous êtes logué comme administrateur ('.$_SESSION["logindetails"]["adminname"].') de ce système phplist</b></p>';
$html .= '<p>Vous avez donc la possibilité d\'accéder à ces choix, ce qui n\'est pas le cas pour les utilisateurs arrivant sur cette page.</p>';
$html .= '<p><a href="'.$GLOBALS['adminpages'].'">Retour à la zone d\'administration</a></p>';
$html .= '<p><b>Please choose</b>: <br/><input type=radio name="makeconfirmed" value="1"> Confirmer immédiatement cet utilisateur
<br/><input type=radio name="makeconfirmed" value="0" checked> Envoyer à cet utilisateur une demande de confirmation par email</p></div>';
III. Utilisation de PHPList
Liste
Création : cliquer simplement sur "ajouter une liste", remplir les champs et valider.
"Voir les membres" permet d'afficher les membres et d'effectuer des modifications comme de copier tout ou partie des membres vers une autre liste, de supprimer et modifier.
!! En cas de suppression, les utilisateurs sont supprimés de la liste, mais pas de la base.
Cela permet également d'exporter la liste en format csv. Avant de l'ouvrir avec Excel, il faut modifier l'extention en .txt.
Pour importer des utilisateurs, voir "gérer les utilisateurs".
Messages
Les modèles
Si on utilise les modèles (templates) il pourrait être préférable de désactiver l'option FCKeditor dans les fichiers config.php (ligne 498)Les messages
Code de base d'un message:<h3>Risques dans le bâtiment :</h3> <ul> <li><p><a href=""></a></p></li> </ul> <h3>Risques informatiques :</h3> <ul> <li><p><a href=""></a></p></li> </ul> <h3>Risques pour l'environnement :</h3> <ul> <li><p><a href=""></a></p></li> </ul> <h3>Risques machine :</h3> <ul> <li><p><a href=""></a></p></li> </ul> <h3>Risques pour l'Homme au travail :</h3> <ul> <li><p><a href=""></a></p></li> </ul> <h3>Général :</h3> <ul> <li><p><a href=""></a></p></li> </ul> <h3>Institutionnels :</h3> <ul> <li><p><a href=""></a></p></li> </ul>
Gérer les utilisateurs
Utilisateurs
Permet d'afficher l'ensemble de la liste des utilisateurs, sans tri par liste.attributs des utilisateurs
Permet de définir les champs complémentaires utilisables pour chaques liste, et pour chaques pages d'accueil/d'inscription.Vérifier les valeurs pour
Permet de définir / modifier les valeurs pour les attributs au format liste de choixfaire le ménage dans la base de données utilisateurs
Permet d'afficher des utilisateurs en fonction de filtres établis. Le but est de faire le ménage dans les utilisateurs.effectuer une vérification de certains utilisateurs
marquer en masse les utilisateurs comme non confirmés
importer des utilisateurs
Préparation du fichier:- Vérifier que dans la première ligne du fichier à importer que la valeur soit "EMAIL"
- Enregistrer le fichier au format .txt avec des tabulations comme séparateur
- Pour les champs 'case à cocher', la valeur doit être vide (NULL), 'off' ou 'on'.
- Il est également possible de prévoir un champ "Foreign Key" pour enregistrer une clé externe.
- Créer une nouvelle liste, si nécessaire, avant d'importer
- A partir de la page principale, cliquer sur "importer". 4 possibilités, mais il faut privilégier la première "importer des adresses email avec des attributs différents de votre système".
- Sélectionner la liste dans laquelle importer les nouveaux contacts.
- Sélectionner le fichier.
- Spécifier ce qui délimite les champs (TAB par défaut)
- Cocher "Résultat test:" pour avoir un aperçu de l'import.
- Cocher les autres options, notamment "Confirmer d'office".
- Cliquer sur "Importer"
- Cliquer sur remettre à zéro la session import pour revenir en arrière
- Ou sur confirmer l’import pour finir l'import
exporter des utilisateurs
Cela permet d'exporter la liste en format csv (important: sélectionner les dates). Avant d'ouvrir le fichier avec Excel, il faut modifier l'extension en .txt.Expédition
Fermer ou pas le navigateur?
Lors de l'expédition des emails, le message suivant est affiché: Vous pouvez cliquer sur le bouton Arrêt de votre navigateur sans crainte maintenant, un rapport sera envoyé par email à...En fait, cela dépend du type de serveur PHP (PHP-cgi ou PHP-cli). Avec PHP-cli vous pouvez suivre le conseil du message et fermer le navigateur. Mais si vous avez PHP-cgi, vous aurez probablement des arrêts causés par des 'timeouts'. Rafraîchir la fenêtre du navigateur (F5) chaque 20 minutes pourrait aider a maintenir le processus de l'envoi, mais si vous avez un grand nombre de messages il serait plus commode d'utiliser un 'cron job'.
Pour une explication plus approfondie, voyez:
- http://docs.phplist.com/PhpInterfacesInfo
- http://docs.phplist.com/ProcessQueueInfo
Pour connaitre la version el le type de serveur (PHP-cgi/PHP-cli), créer une page avec ce code :
La mettre en ligne, et visualisez la (ligne : Server API).
Problème d'exécution du script
Il est possible que l'expédition des emails soit bloquée par une limite de temps imposée par le serveur d'hébergement.Une cause possible est l'usage de 'batch processing' (MAILQUEUE_BATCH_SIZE) avec PHP-cgi sur le serveur. Cette combinaison peut causer des 'timeouts' et il faut recharger chaque batch, ou bien ne pas utiliser batch processing. Dans ce cas, essayer les modifications suivante dans le fichier config.php (lignes > 300) :
# Désactiver batch processing:
define("MAILQUEUE_BATCH_SIZE", 0);
# Batch_period est sans éffet si batch processing est désactivé:
define("MAILQUEUE_BATCH_PERIOD",3600);
# Pause entre messages (en secondes) afin de
# ne pas envoyer plus que 400 messages par heure:
define('MAILQUEUE_THROTTLE',9);
# Autothrottle désactivé:
define('MAILQUEUE_AUTOTHROTTLE',0); Voir les messages suivant sur le forum :
http://forums.phplist.com/viewtopic.php?t=9631
http://forums.phplist.com/viewtopic.php?p=31090#31090
Le MAILQUEUE_THROTTLE est paramétré avec une valeur à 9 sec, ce qui correspond à 400 messages par heure (3600/400). Cette valeur dépend de l'hébergeur et peut être modifié en fonction.
Le problème que vous avez, peut aussi être causé par une demande trop grande des ressources du serveur c.a.d., que la demande faite par phplist sur les ressources du serveur MySql par exemple, dépasse la limite de demandes autorisé par l'hébergeur. Dans ce cas le programme qui contrôle l'usage des ressources des utilisateurs, arrêtera le script. Il faudrait contacter l'hébergeur et voir s'il est incliné a résoudre le problème.
Merci à H2B2 pour ces explications.
SI cela ne marche pas, c'est que votre hébergeur a mis des sécurités et restreint le temps d'exécution des scripts. C'est ce qui m'est arrivé chez 1&1. Deux solutions : rafraîchir la page toutes les 15 min, ou changer d'hébergement pour un serveur privé.
CategoryDocumentation



