merchal59 Posted November 24, 2009 Share Posted November 24, 2009 BonsoirJe souhaiterais ajouter un champ "prénom" dans le module (celui de base) newsletter.Pourriez vous m'expliquer comment faire ? Car même si je rajoute le champ dans le fichier tpl, la personne a beau inscrire son prénom, dans la base de données je ne reçois pas cette information.Et de même, si je rajoute (en plus) un champ prénom dans la table ps_newsletter de la base de données ; plutôt que de rajouter une colonne, ça me décale les informations visibles dans la colonne email dans la colonne date add...Merci !(Problème moindre mais malgré tout important pour moi puisque je souhaite envoyer des newsletters personnalisées au prénom du client et par la suite grâce au nom mais ça, pas de soucis grâce à l'inscription compte client je pense ) Link to comment Share on other sites More sharing options...
henribaeyens Posted November 24, 2009 Share Posted November 24, 2009 il faut modifier la fonction newsletterRegistration: récupérer le prénom depuis les données du $_POST et l'insérer dans la base avec l'email. Link to comment Share on other sites More sharing options...
merchal59 Posted November 24, 2009 Author Share Posted November 24, 2009 oula aurais tu le temps de m'expliquer le code ? Car je suis malgré tout débutante !Prend ton temps bien sûr, merci de ta réponse si rapide déjà !! Link to comment Share on other sites More sharing options...
henribaeyens Posted November 24, 2009 Share Posted November 24, 2009 ok, je t'explique ça demain; il est tard (ou tôt, c'est selon) Link to comment Share on other sites More sharing options...
henribaeyens Posted November 25, 2009 Share Posted November 25, 2009 bonjour,1 - ajouter une colonne prenom à la table newsletter (via phpmyadmin ou console)2 - ajouter un input text (name="prenom") au formulaire de blocknewsletter.tpl3 - modifier le code suivant dans blocknewletter.php : /* If the user ins't a customer */ elseif ($registerStatus == -1){ global $cookie; if (!Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'newsletter VALUES ( \'\', \''.pSQL($_POST['email']).'\', NOW(), \''.pSQL($_SERVER['REMOTE_ADDR']).'\', (SELECT c.http_referer FROM '._DB_PREFIX_.'connections c WHERE c.id_guest = '.intval($cookie->id_guest).' ORDER BY c.date_add DESC LIMIT 1))')) return $this->error = $this->l('Error during subscription'); $this->sendVoucher(pSQL($_POST['email'])); return $this->valid = $this->l('Subscription successful'); } pour y insérer le prénom. Selon la position de la colonne prenom dans la table, tu ajoutes \''.pSQL($_POST['prenom']).'\' Link to comment Share on other sites More sharing options...
merchal59 Posted November 25, 2009 Author Share Posted November 25, 2009 Merci !Bon apparemment ça ne prend toujours pas le prénom... Je te copie colle donc ce que j'ai ajouté.Dans le fichier blocnewsletter.tpl : <form action="{$base_dir}" method="post"> <input type="text" name="Prénom" size="18" value="{if $value}{$value}{else}{l s='Votre Prenom' mod='blocknewsletter'}{/if}"></p> blocknewsletter.php : /* If the user ins't a customer */ elseif ($registerStatus == -1) { global $cookie; if (!Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.'newsletter VALUES (\'\', \''.pSQL($_POST['prenom']).'\', \''.pSQL($_POST['email']).'\', NOW(), \''.pSQL($_SERVER['REMOTE_ADDR']).'\', (SELECT c.http_referer FROM '._DB_PREFIX_.'connections c WHERE c.id_guest = '.intval($cookie->id_guest).' ORDER BY c.date_add DESC LIMIT 1))')) return $this->error = $this->l('Error during subscription'); $this->sendVoucher(pSQL($_POST['email'])); return $this->valid = $this->l('Subscription successful'); } Et voici un aperçu de ma table ps_newsletter : 1. id int 6 non auto_increment 2. prenom text non utf8_general_ci 3. email varchar 255 non utf8_general_ci 4. newsletter_date_add datetime oui 5. ip_registration_newsletter varchar 15 non utf8_general_ci 6. http_referer varchar 255 oui utf8_general_ci Ca me prend bien l'inscription mais le problème reste identique puisqu'une fois que j'importe le fichier .csv ; même problème qu'hier puisque les adresses mail sont décalées d'une colonne ; que la colonne prénom n'aparait pas or que quand je vais dans la base de données (via mysql dumper), elle y apparait bien !!Merci... Link to comment Share on other sites More sharing options...
merchal59 Posted November 25, 2009 Author Share Posted November 25, 2009 Ca me fait également ça comme erreur (pour peu que je place le code que tu m'a donné au mauvais endroit) : Column count doesn't match value count at row 1 INSERT INTO ps_newsletter VALUES ('', '***@***.com', NOW(), '**.**.**.**', (SELECT c.http_referer FROM ps_connections c WHERE c.id_guest = 63 ORDER BY c.date_add DESC LIMIT 1)) Merci, car pour moi c'est pas du français mdrr Link to comment Share on other sites More sharing options...
henribaeyens Posted November 25, 2009 Share Posted November 25, 2009 Merci !<form action="{$base_dir}" method="post"> <input type="text" name="Prénom" size="18" value="{if $value}{$value}{else}{l s='Votre Prenom' mod='blocknewsletter'}{/if}"></p> name doit être "prenom" et non "Prénom" Link to comment Share on other sites More sharing options...
merchal59 Posted November 25, 2009 Author Share Posted November 25, 2009 Oui entre temps j'ai pensé à ça et je l'ai modifié !Bon une bonne nouvelle, il prend bien le prénom mais le décalage de colonne se fait toujours.Ce qui fait qu'en fichier csv j'ai en colonne email le prénom et pas de colonne prénom puisque les emails se décalent dans la colonne newsletter date add...Merci. Link to comment Share on other sites More sharing options...
henribaeyens Posted November 25, 2009 Share Posted November 25, 2009 eh bien, logiquement, il faut que tu répercutes ce changement dans le module newsletter (celui qui génère les cvs). Regarde la fonction _getBlockNewsletter. Ca devrait te sauter aux yeux.h Link to comment Share on other sites More sharing options...
merchal59 Posted November 25, 2009 Author Share Posted November 25, 2009 Merci !J'ai réglé le problème en déplacant la colonne prénom au bout Merci encore de ton aide et du temps passé pour m'aider ^^ Link to comment Share on other sites More sharing options...
henribaeyens Posted November 25, 2009 Share Posted November 25, 2009 oui, ça arrange tout. J'avais présumé que la table newsletter était vide; mais, en effet, s'il y avaient déjà des inscrits, alors il y a forcément décalage. Link to comment Share on other sites More sharing options...
GouMs Posted December 8, 2009 Share Posted December 8, 2009 Hello,Merci à vous deux pour les explications détaillées !Je cherchais à faire la même chose, j'ai gagné pas mal de temps grâce à vous A+ Link to comment Share on other sites More sharing options...
xavier2b Posted April 3, 2010 Share Posted April 3, 2010 Bonjour ,pourriez vous m'indiquer ou trouver :1 – ajouter une colonne prenom à la table newsletter (via phpmyadmin ou console)merci beaucoupxavier2b Link to comment Share on other sites More sharing options...
henribaeyens Posted April 3, 2010 Share Posted April 3, 2010 Dans phpmyadmin, choisir la base, puis la table (frame gauche), ajouter un champs.le plus rapide, c'est par la console (windows) ou le terminal (linux)mysql -u xxx -puse nom_de_la_base;alter table ps_newsletter add `prenom` varchar(22) NOT NULL; Link to comment Share on other sites More sharing options...
xavier2b Posted April 3, 2010 Share Posted April 3, 2010 merci pour ta réponse mais je suis novice et je n'arrive pas à trouver les dossiers que tu m'indiques.je dois aller passer par le ftp( je n'ai rien trouvé) ou phpmyadmin (merci de m'indiquer plus précisément les fichier à traiter)? Merci encorexavier2b Link to comment Share on other sites More sharing options...
henribaeyens Posted April 3, 2010 Share Posted April 3, 2010 tu dois bien savoir comment accéder à phpmyadmin, non ?pour modifier une table de ta base, il n'est pas question de modifier quelque fichier que ce soit mais de le faire via l'administration de tes bases de données; c'est-à-dire phpmyadmin. Tout hébergeur digne de ce nom met à ta disposition un tableau de bord type cpanel qui te donne accès à phpmyadmin. Link to comment Share on other sites More sharing options...
xavier2b Posted April 3, 2010 Share Posted April 3, 2010 oui j ai bien ca, mais j'ai 430 fichier sur la gauche de mon ecran , lequel dois je modifier ?psen1_?ps_?ou autre ?merci Link to comment Share on other sites More sharing options...
xavier2b Posted April 4, 2010 Share Posted April 4, 2010 j'ai beau chercher la base newletter, mais je ne la trouve pas. Pourtant j'ai bien la newletter dans mon site et en ftp.xavier2b Link to comment Share on other sites More sharing options...
xavier2b Posted April 4, 2010 Share Posted April 4, 2010 Cest ok ! tout est parfait !Merci beaucoup...Xavier2b Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now