Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?

Formulaire de contact
(1 lecteur(s)) (1) Invité(s)
Aller en basPage: 12345
SUJET:

Formulaire de contact

#26142
CaPiT
Développeur Magento
Moderator
Messages: 1828
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin ronan.capitaine ASPerience Lieu: Finistère ou Nantes Date anniversaire: 07/05

Re:Formulaire de contact

Il y a 2 Années
Karma: 51  
N'hésites pas !
En espérant que ce ne soit que des exploits
 
Ronan Capitaine
L'administrateur a désactivé l'accès public en écriture.
#26251
ktarr
Expert Boarder
Messages: 121
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Formulaire de contact

Il y a 2 Années
Karma: 2  
Bonjour,


Et bien manque de bol…ça coince quelque part.

Ce que j’ai effectué :

1/ créer deux champs supplémentaire dans la table « historizecontacts »
- newsletter
- documentation

2/ Modifier le code suivant ( indexController.php):

Code :

                 ->setName($post['name'])
                 ->setEmail($post['email'])
                 ->setTelephone($post['telephone'])
                 ->setMessage($post['comment'])
                 ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
                 ->setCreatedTime(date("Y-m-d G:i:s", Mage::getModel('core/date')->timestamp(time())))
                 ->save();



Par celui la :
Code :


                 ->setName($post['name'])
                 ->setEmail($post['email'])
                 ->setTelephone($post['telephone'])
                 ->setMessage($post['comment'])
->setNewsletter($post['newsletter'])
->setDocumentation($post['documentation'])
                 ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
                 ->setCreatedTime(date("Y-m-d G:i:s", Mage::getModel('core/date')->timestamp(time())))
                 ->save();




3/ Ajouter le code suivant (Grid.php):

Code :

  $this->addColumn('newsletter', array(
'header'    => Mage::helper('historizecontacts')->__('Newsletter'),
'index'     => 'newsletter',
      ));
  
  $this->addColumn('documentation', array(
'header'    => Mage::helper('historizecontacts')->__('Documentation'),
'index'     => 'documentation',
      ));

 
L'administrateur a désactivé l'accès public en écriture.
#26277
CaPiT
Développeur Magento
Moderator
Messages: 1828
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin ronan.capitaine ASPerience Lieu: Finistère ou Nantes Date anniversaire: 07/05

Re:Formulaire de contact

Il y a 1 Année, 12 Mois
Karma: 51  
Bonjour.

Qu'est ce qu'il ne fonctionne pas dans l'histoire?
Dans le .phtml, tu as bien:
<input type="checkbox" name="newsletter" id="newsletter" ... ?
 
Ronan Capitaine
L'administrateur a désactivé l'accès public en écriture.
#26283
ktarr
Expert Boarder
Messages: 121
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Formulaire de contact

Il y a 1 Année, 12 Mois
Karma: 2  
Bonjour,

Et merci de t’occuper d’un jeune « padawan » comme moi…

Oui, j’ai bien mes deux balises « input type checkbox » avec les attributs « name » et « id » 1/newsletter
2/documentation

L’email est bien envoyé sans prendre en compte les « checkbox » de plus le message d’erreur : « Impossible d'envoyer votre demande. Veuillez réessayer plus tard. » s’affiche.

Côté bases de données pas d’enregistrement.

Voila où j’en suis de ma « grande » première modification…

Il n’y aurait pas une spécificité pour les « checkbox » ?
La fonction récupère l’attribut value ou « 1 » pour coché et « 0 » pour non coché ?
 
L'administrateur a désactivé l'accès public en écriture.
#26284
CaPiT
Développeur Magento
Moderator
Messages: 1828
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin ronan.capitaine ASPerience Lieu: Finistère ou Nantes Date anniversaire: 07/05

Re:Formulaire de contact

Il y a 1 Année, 12 Mois
Karma: 51  
Pour débuguer ça, il y a plusieurs façons.

Par exemple, tu peux tester si les variables sont bien transmises au controlleur en faisant :
Code :

$post = $this->getRequest()->getPost();
echo $post;


ou
Code :

$post = $this->getRequest()->getPost();
foreach($post as $p){
    echo $p;
}


ou les Mage::log à la place des echo si tu utilises les log.
Si elles ne sont pas dedans, ça vient des .phtml.

Sinon tu peux commenter les lignes suivantes:
Code :

//try {

Code :

// } catch (Exception $e) {

Code :

//}

Et me montrer l'erreur

Ou au pire, il me semble que dans la création de compte des clients, Magento utilise des checkbox, donc faudrait fouiller un peu par là-bas.
 
Dernière édition: 08/02/10 à  11:35 Par CaPiT.
Ronan Capitaine
L'administrateur a désactivé l'accès public en écriture.
#26286
ktarr
Expert Boarder
Messages: 121
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Formulaire de contact

Il y a 1 Année, 12 Mois
Karma: 2  
Quand je commente

Code :


// Try {
....
// } catch (Exception $e) {
....
// }



Le message part bien mais toujours sans les indications des « checkbox »
Par contre plus de message d’erreur.

Mais bonne avancée sur la base de données car la tous les champs s’enregistres et donc apparaisse dans l’admin.

Je viens de regarder la doc Zend et si j’ai bien compris la fonction try, elle sert à traiter des cas d'erreurs (connexion à la base ratée, erreur de syntaxe dans la requête,...).

Je vais de ce pas relire une foi de plus le code…Mais si tu as encore une piste je suis évidemment preneur…
 
L'administrateur a désactivé l'accès public en écriture.
#26287
CaPiT
Développeur Magento
Moderator
Messages: 1828
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Sexe: Masculin ronan.capitaine ASPerience Lieu: Finistère ou Nantes Date anniversaire: 07/05

Re:Formulaire de contact

Il y a 1 Année, 12 Mois
Karma: 51  
Oui après il faut modifier l'Email.
Dans Sytème/configuration/contacts, si c'est "Gabarit par défaut pour la locale", il faut modifier app/locale/fr_FR/template/email/contact_form.html et y ajouter:
Code :

Newsletter : {{var data.newsletter}}
Documentation : {{var data.documentation}}


Ou sinon modifier l'email transactionnel associé.


Bizarre quand même le fait que tu n'as pas d'erreur Magento quand tu enlèves le try catch.
 
Ronan Capitaine
L'administrateur a désactivé l'accès public en écriture.
#26289
ktarr
Expert Boarder
Messages: 121
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur

Re:Formulaire de contact

Il y a 1 Année, 12 Mois
Karma: 2  
A oui, les gabarits d’email j’avais oubliés de renommer les « var.data » (j’ai changé de nom de balise pendant mes relectures)…

Maintenant tout fonctionne et avec 'try catch'

En espèrent plus te solliciter (enfin sur ce sujet…) quoique je serai tenté de rajouter dans l’admin un lien éditer.

En tout cas je te remercie de ton aide.
 
L'administrateur a désactivé l'accès public en écriture.
Revenir en hautPage: 12345
Modérateur: admin, neurone, Gabriiiel, CaPiT