Bonjour,
Question simple et peut-être bête, mais en suivant le tuto sur la création d'un formulaire de contact sur CakePHP (v2.x), il est dit que pour retirer le message par défaut "This email was sent using the CakePHP Framework" il faut laisser le layouts email vide afin qu'il prend le template dans la vue, mais rien ne fait de mon coté.
Je suis sur que c'est tout con, mais si quelqu'un peut m'expliquer, ça m'aiderai.
Merci d'avance pour vos réponses et aides.
Cordialement,
hachbé
salut, dans le default.ctp que tu crée essaye de mettre : $content_for_layout;
a+
Bonsoir,
Je ne sais pas si ma question est réellement claire, sinon, n'hésitez pas à me le dire :)
Bonne soirée à tous,
hachbé
Salut,
Désolé j'avais pas vu la question^^
Alors en gros, ce qu'il faut faire, c'est de mettre dans app\View\Layouts\Emails\html ou app\View\Layouts\Emails\text, selon les cas, un fichier default.ctp avec rien dedans, c'est comme pour ton layout de base pour un site.
A+
Bonsoir extrarox et merci pour ta réponse.
C'est bien ce que j'ai essayé de faire.
J'ai donc mis un fichier contact.ctp avec la mise en page de l'email dans le dossier app\View\Emails\html
Et donc en faisant ainsi j'avais le message "This email was sent using the CakePHP Framework".
Et j'ai mis, comme tu as dit, un fichier default.ctp vide dans app\View\Layouts\Emails\html (j'ai mis dans le dossier html et non text car j'envoie dans ce cas ci un email en html) et l'email envoyé est complètement vide.
J'ai bien l'appel du 'template' (contact) via le Model.
En gros ma structure actuelle est comme celui du tuto :)
Est-ce que via la class CakeEmail il faut préciser de ne pas prendre le layout par défaut mais plutôt le template?
Dans la doc, j'avais effectivement compris qu'il prenait par défaut le layout si un template n'était pas précisé.
J'avoue que je suis un peu perdu ^^
D'habitude, j'essaye de trouver par moi-même mais là je n'y arrive vraiment pas et comme je sais qu'il y a pas mal de personnes qui connaissent bien CakePHP ici, je profite de vos lumières :)
ps: J'ai oublié de dire que je ne travaille pas en local mais bien directement sur un serveur distant.
Cordialement,
hachbé
Bonjour,
Tu es bien matinal :)
Une info que j'ai oublié d'indiquer, c'est que je fonctionne sur la version 2.0.3 de CakePHP.
Sinon, voici le code de mon Model:
<?php
class Contact extends AppModel{
public $useTable = false;
public $validate = array(
'name' => array(
'rule' => 'notEmpty',
'required' => true,
'message' => 'Veuillez entrer votre nom'
),
'email' => array(
'rule' => 'email',
'required' => true,
'message' => 'Veuillez entrer une adresse email valide'
),
'message' => array(
'rule' => 'notEmpty',
'required' => true,
'message' => 'Veuillez entrer un message'
)
);
public function send($data){
$this->set($data);
if($this->validates()){
App::uses('CakeEmail','Network/Email');
$mail = new CakeEmail();
$mail->to('info@hachbe.be')
->from($data'email'])
->subject('Test form de contact')
->emailFormat('html')
->template('contact')
->viewVars($data);
return $mail->send();
}else{
return false;
}
}
}
Et je met également le code de mon template email (portant le nom de contact.ctp)
<?php echo $name; ?> vous a contacté:
<br /><br />
<?php echo nl2br(h($message)); ?>
Merci pour ton suivi.
Passes une bonne matinée :)
hachbé
Oups, ben oui, c'est logique :$
J'savais que ça devait être tout bête.
Un tout grand merci à toi extrarox pour ton aide et ta réactivité :)
Cordialement,
hachbé
Bonjour,
Je me permet de relancer le sujet car j'ai fait exactement ce que vous avez dis mais chez moi j'ai toujours "This email was sent using the CakePHP Framework"
Je suis sous cake 2
Merci par avance pour vos réponse.
Bonjour,
il faut enlever la ligne :
<p>This email was sent using the <a href="http://cakephp.org">CakePHP Framework</a></p>
du default.ctp dans le dossier app/View/Layouts/Emails/html
ou
This email was sent using the CakePHP Framework, http://cakephp.org.
du default.ctp dans le dossier app/View/Layouts/Emails/text