Ticket #94 (closed task: invalid)
db->build() function
| Reported by: | Yves_Hardy@… | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Système d’inscription | Version: | 2.3.2 |
| Severity: | normal | Keywords: | |
| Cc: |
Description
Bonjour,
J'ai rajouté deux champs dans la table prefixes_abonnes qui se nomment: abo_nom et abo_prenom, ensuite j'ai ajouté ces deux nouveaux champs dans le fichier tags.inc.php et enfin, dans le formulaire de souscription j'ai défini deux <input text> contenant les noms: "abo_nom" et "abo_prenom" afin de permettre aux personnes qui s'enregistrent d'insérer en plus de leur adresse mail, leur nom et prénom respectif.
Cependant je constate que cela ne fonctionne pas, ces deux champs ne sont jamais remplis dans la table en question, je pense que c'est parce que je dois mettre à jour la fonction INSERT qui est appelé par la fonction $db->build() que j'ai trouvé dans le fichier class_form.php
Je n'arrive pas à trouver physiquement dans quel fichier cette fonction $db->build() est gérée, j'ai regardé dans tous les fichiers mais je n'ai pas trouvé cette fonction, je pense que ce problème sera résolu dès le moment où je pourrai rajouter dans l'INSERT ces deux nouveaux champs, mais où ce trouve ce fichier?
D'avance merci de votre aide,
Yves Hardy
Change History
comment:2 Changed 9 months ago by Yves_Hardy@…
Bonjour,
Merci pour votre réponse rapide. Désolé j'utilise la version 2.3.3 au lieu de 2.3.2, voici le contenu de mon fichier tags.inc.php
$other_tags[$t]column_name? = 'abo_nom'; $other_tags[$t]tag_name? = 'NOM'; $other_tags[$t]field_name? = 'nom'; $t++;
$other_tags[$t]column_name? = 'abo_prenom'; $other_tags[$t]tag_name? = 'PRENOM'; $other_tags[$t]field_name? = 'prenom'; $t++;
j'ai trouvé sur votre forum la réponse à ma question en rajoutant ces lignes dans le fichier newsletter.php
$supp_fields = array(
'nom' => 'abo_nom',
'prenom' => 'abo_prenom'
);
et ensuite rajouter ces lignes dans le fichier: class_form.php
foreach( $supp_fields AS $argname => $fieldname ) {
$sql_data[$fieldname] = ( !empty($_POST[$argname]) ) ? $_POST[$argname] : ;
}
maintenant les champs abo_nom et abo_prenom contiennent bien le nom et prénom de chaque personne, cependant dans le fichier admin_new_subscribe.txt je souhaite voir apparaître le nom et le prénom de chaque nouvel inscrit en utilisant la variable %NOM% et %PRENOM% mais rien ne s'affiche, voici ce que j'obtiens en retour:
Bonjour,
Une nouvelle personne s'est inscrite à la Newsletter de la BAL, voici ses coordonnées:
Son nom de famille: %NOM% Son prénom: %PRENOM% Son adresse email est Yves_Hardy@… *
Comme vous pouvez le voir, %NOM% et %PRENOM% sont vides, alors que j'ai suivi la procédure décrite dans le FAQ, pourriez-vous me dire ce qui cause ce problème et comment le résorber, merci
Bien à vous,
Yves Hardy
comment:3 Changed 9 months ago by bobe
Là, je suis à court d’idée. J’ai revérifié le code et tout semble ok. J’ai aussi fait un test d’inscription avec ou sans confirmation. Je reçois bien l’email d’alerte à l’administrateur et %TEST% est bien remplacé par la valeur indiquée lors de l’inscription.
Pour info, la méthode en charge de l’envoi des alertes dans class.form.php est alert_admin() vers la fin du fichier.

Avez-vous renseigné également l'entrée "field_name" de vos champs dans tags.inc.php ? il y a un bug dans la version 2.3.2 :
"Bug fix : "Tags" non enregistrés si l’entrée field_name est vide (alors même que column_name est bien renseigné)"
Essayez avec la version 2.3.3 ou remplissez également l'entrée "field_name" de chaque champ dans le fichier tags.inc.php.