Yanc admin panel in Joomla! CMS big screenshot

Faire fonctionner le composant de newsletter YaNC sous Joomla! 1.5

6 minutes de lecture
Joomla! 1.5 Logo

Ce billet est une compilation des différentes bidouilles et hacks qui m'ont permis de faire tourner parfaitement le composant de newsletter / e-mailing  YaNC sous Joomla! 1.5 sur mes sites webs (sachant que YaNC, dans sa version actuelle, ne fonctionne qu'avec Joomla! 1.0)

Les modifications mentionné ici ont permis de faire fonctionner YaNC sur 2 sites sous Joomla! 1.5 chez 2 hébergeurs différents :

  • Le site du DODO Surf Club sur un hébergement mutualisé chez OVH PHP 5.2.10
  • Le site des Pénibles de Mauvezin sur un un serveur dédié chez Haisoft PHP 5.1.6

Yanc, un excellent système de Newsletter pour Joomla!

Le composant YaNC, considéré par beaucoup comme le meilleur système de Newsletter pour Joomla!, n'évolue plus 2 ans. La version disponible au téléchargement sur le site du développeur n'est pas compatible avec Joomla 1.5, et ce malgré l'activation du plugin Legacy Mode. Ce plugin rend possible l'installation et le fonctionnement sous Joomla! 1.5 de certains composants, modules, etc. de l’ancien Joomla! 1.0. (le support de la branche 1.0 de Joomla! a été abandonné officiellement le 22 juillet dernier).

Le développeur de YaNC semble se décider à travailler sur une version 2 de son composant, pour Joomla! 1.5. Mais la roadmap reste incertaine. On peut se replier vers certains composants alternatifs avec des capacités d'import d'autres composants de Newsletter, comme Acajoom, mais en ce qui me concerne étant habitué à YaNC j'ai essayé (et réussi) à le faire tourner sur Joomla! 1.5.

Yanc admin panel in Joomla! CMS big screenshot

Les fonctionnalités de YaNC

  • Multilingue
  • Gestion de plusieurs Newsletters
  • Possibilité de personnaliser et gérer plusieurs templates pour les e-mails
  • Gestion de plusieurs listes d'abonnés (e-mails) avec fonction d'import/export de listes (formats XML, CSV)
  • Gestion de l'association d'un abonné avec un compte utilisateur Joomla! / Community Builder
  • Possibilités pour les visiteurs du site de s'inscrire à une newsletter depuis un module ou une page
  • Possibilité pour un utilisateur du site de gérer ses inscriptions aux newsletters depuis la modification de son profil Community Builder
  • Possibilité pour les administrateurs de créer, supprimer, confirmer, bloquer des abonnés
  • Possibilité d'envois automatique d'e-mails de confirmation d'inscription/désinscription aux abonnés et à l'administrateur
  • Possibilité de donner accès aux archives des emails aux visiteurs et utilisateurs du site dans le front-end
  • Gestion des niveaux d'accès Joomla!
  • Possibilité de renvoyer des éléments d'archives depuis le site pour tout visiteur ou utilisateur
  • Envoi d'e-mails aux formats HTML et texte
  • Gestion des éditeurs WYSIWYG de Joomla! (TinyMCE, JCE, etc.)
  • Insertion d'images et de pièces jointes dans les e-mails
  • Inclusion de lien de désabonnement
  • Enregistrement et affichage d'aperçu avant d'envoyer l'e-mailing
  • Indicateur de progression d'envoi de Newsletter en AJAX
  • Planification des envois automatiques
  • Différents moyens d'envoyer des mails: PHP mail, sendmail ou SMTP
  • Statistiques sur la lecture des mails par les abonnés et les clicks sur les liens contenus dans les e-mails
Yanc admin panel in Joomla! CMS big screenshot

Les différents hacks et bidouilles à opérer pour faire tourner YaNC sous Joomla! 1.5

Installer la version "trunk" du 20 juin 2008

Pour installer Yanc! et le faire fonctionner il faudra que vous activiez le plugin Legacy Mode dans votre Joomla! 1.5.

Il vous faudra d'abord récupérer une version "tronquée" du composant YaNC réalisée par le développeur lui-même. Comme c'est la galère pour récupérer cette fameuse version, je vous la mets à disposition ici :

[download id="2"]

Installation d'un fichier de langue française complet et paramétrage de l'affichage des accents

La version de langue française dans le package d'installation est incomplet, et incompatible avec le format d'affichage UTF-8 (configuration de caractère standard pour des sites en PHP 5.x). Ci-dessous un fichier complet au bon format, à déposer dans le répertoire /administrator/components/com_yanc/language :

[download id="1"]

Dans le panneau d'administration du composant, il faudra également, dans la configuration du composant, saisir la valeur "UTF-8" dans le champ "Encodage du message", pour éviter des titres d'emails illisibles.

Correction du problème d'apparition d'Antislash (stripslashes) dans les textes

Le problème : Yanc! a la fâcheuse tendance à rajouter un "\" avant les apostrophes dans les textes a chaque enregistrement de données.

Source du hack : fix for problem in administrator when magic quotes are switched on

Dans les fichiers letter.php, mailing.php et subscriber.php (répertoire administrator/components/com_yanc/classes) au niveau de la fonction save() :

rajouter le code:

$_POST = yanc::fix_magic_quotes($_POST);

au dessus de la ligne :

$row->bind($_POST);

ce qui donne donc :

$_POST = yanc::fix_magic_quotes($_POST);
$row->bind($_POST);

Dans le fichier /administrator/components/com_yanc/yanc.class.php, rajoutez la fonction suivante dans la classe "yanc" :

Juste après :

class yanc {

rajouter :

function fix_magic_quotes($a)
{
if(!get_magic_quotes_gpc())
return $a;
foreach($a as $key=>$val)
if(!is_array($val))
$a[$key] = stripslashes($val);
return $a;
}

Intégration avec le composant Community Builder

Le composant Community Builder intègre un plugin "YaNC 1.4b3 Newsletters" qui permet à un utilisateur, lors de son inscription sur le site ou lors de la modification de son profil, de gérer son inscription aux Newsletters auxquelles il a accès sur le site. Pour faire fonctionner cela sous Joomla! 1.5, il faut faire quelques modifications.

Yanc Tab in Community Builder admin panel in Joomla! CMS screenshot

Source du hack numéro 1 : Yanc 1.5x - Compatible with Joomla 1.5.3?

Dans /components/com_yanc/yanc.html.php

Ramplacer (à la ligne line 73 ou 99 environ ?) :

$my->load( );

par

$my = & JFactory::getUser();

Source du hack numéro 2 : Getting YaNC Working With CB 1.2 RC4

Modifier le fichier /administrator/components/com_yanc/classes/subscriber.php

Sous la fonction :

confirm($hash)

changer la ligne :

echo "<script> 
alert('". Y_FRONT_SUBSCRIPTION_CONFIRMED . "'); 
document.location.href='index.php?option=$option&Itemid=$Itemid';
</script>\n";

par :

echo "<script> 
alert('". Y_FRONT_SUBSCRIPTION_CONFIRMED . "'); 
document.location.href='index.php?view=article&id=129';
</script>\n";

Correction du problème d'affichage des pages dans le front-end

Le problème : lorsqu'on veut accèder à une archive d'e-mail ou utiliser le fonction de transfert d'une archive, l'affichage pête complétement la page /template du site.

La solution : dans le fichier yanc.html.php, la chaine  &no_html=1 doit être supprimée

Pour cela, dans le fichier

Ramplacer :

sefRelToAbs('index2.php?option=' 
. $option . '&act=archive&task=view&cid=' 
. $mailing->id . '&Itemid=' . $Itemid . 
'&no_html=1');

Par :

sefRelToAbs('index2.php?option=' 
. $option . '&act=archive&task=view&cid=' 
. $mailing->id . '&Itemid=' 
. $Itemid);

Correction du problème des boutons inactifs dans le front-end

Le problème : les boutons accessibles dans le front-end du site ne fonctionnent pas : confirmation d'abonnement à une newsletter, confirmation d'envoi d'un e-mail archivé à un ami, etc.

La solution : rajouter le script joomla.javascript.js dans la balise head du fichier index.php de votre template actif :

<head>
<jdoc:include type="head" />
<script src="<?php echo $this->baseurl ?>/includes/js/joomla.javascript.js" type="text/javascript"></script>
(...)

Enlever un petit message d'erreur dans le front-end lors de la visualisation d'une archive d'e-mail en plein écran

Le problème : j'ai pu constater l'apparition d'un petit message d'erreur en haut de page lors de la visualisation d'une archive d'e-mail en plein écran dans le front-end. Cela était visible sur un seul de mes deux sites (la différence entre les deux sites vient sans doute de la configuration de l'affichage des erreurs sur le serveur).

La solution : j'ai modifié le fichier plugins/yanc/core.php en remplacant la chaine

#__mambots

par la chaîne

#__plugins

Voilà ! Maintenant bon e-mailing et bon Joomla! à vous !

2 Commentaires
  • clement62
    Publié à 17:02h, 03 février Répondre

    bonjour, j'ai essayé de faire fonctionné YaNC sur Jooomla 1.5 je rencontre de sérieux probleme dans l onglet statistiques
    quelqu'un peut m'aider

    J'ai modifié le composant YANC pour qu'il soit compatible avec Joomla 1.5

    et j'ai toujours ceci comme erreur dans l'onglet statistiques

    Code:
    Warning: Division by zero in /home/atoonewsletter/1_mon_espace/www/administrator/components/com_yanc/admin.yanc.html.php on line 1247
    0 %
    Pas vu
    Warning: Division by zero in /home/atoonewsletter/1_mon_espace/www/administrator/components/com_yanc/admin.yanc.html.php on line 1251
    0 %
    Bounces
    Warning: Division by zero in /home/atoonewsletter/1_mon_espace/www/administrator/components/com_yanc/admin.yanc.html.php on line 1255
    0 %
    Clics 0Je me suis arrété juste avant
    Intégration avec le composant Community Builder
    je me suis aidé de ceci
    https://www.pierre-lannes.fr/composant-newsletter-yanc-sous-joomla-1-5/

    Merci d'avance pour votre aide

  • Pingback:Comment migrer son site Joomla! de version 1.0.x à 1.5.x (après avoir failli abandonner Joomla!…) | titou.net
    Publié à 14:32h, 12 juillet Répondre

    […] LivePlaylistsA propos…« Photos session surf aux Bourdaines le 20 juillet 2009Faire fonctionner le composant de newsletter YaNC sous Joomla! 1.5 » 6 sept 2009Comment migrer son site Joomla! de version 1.0.x à 1.5.x (après avoir failli […]

Poster un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.