En standard Koken ne propose pas de formulaire de contact, étonnant mais c'est la réalité et l'équipe de dev n'a pas l'air d'avoir envie d'en créer un. Donc sur le forum ça a bougé un peu...
Marc Becher à donner une modification de template qui marche en plus, j'y ai juste apporté une petite modification pour supprimer les balises php et html qu'une personne un peu joueuse aurait pu essayé de vous envoyer et traduit en français.
info.json
"templates": { "contact": { "name": "contact", "source": "page" } }, "routes": { [...] "/contact": { "template": "contact", "navigation": { "label": "Contact", "in_primary": "true" } } },
inc/contact.php
<?php if(isset($_POST['submitted'])) { if(trim($_POST['contactName']) === '') { $nameError = 'Obligatoire !'; $hasError = true; } else { $name = trim($_POST['contactName']); $name = strip_tags($name); } if(trim($_POST['email']) === '') { $emailError = 'Obligatoire !'; $hasError = true; } elseif (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+.[A-Z]{2,4}$", trim($_POST['email']))) { $emailError = 'Adresse e-mail invalide'; $hasError = true; } else { $email = trim($_POST['email']); $email = strip_tags($email); } $tel = trim($_POST['tel']); $tel = strip_tags($tel); if(trim($_POST['comments']) === '') { $commentError = 'Obligatoire !'; $hasError = true; } else { if(function_exists('stripslashes')) { $comments = stripslashes(trim($_POST['comments'])); $comments = strip_tags($comments); } else { $comments = trim($_POST['comments']); $comments = strip_tags($comments); } } if(!isset($hasError)) { $emailTo = "votre@adresse.fr"; $subject = '[votre site] Message de '.$name; $body = "Nom : $name \nEmail : $email \nTéléphone : $tel \n\nMessage :\n$comments"; $headers = 'From: '.$name.' <'.$email.'>' . "\n" . 'Reply-To: ' . $email; mail($emailTo, $subject, $body, $headers); $emailSent = true; } } ?> <koken:load> <article> <div class="content-row"> <div class="essay-body"> <?php if(isset($emailSent) && $emailSent == true) { ?> <h2 id="form">Votre message a bien été envoyé.</h2> <?php } else { ?> <h2><?php if ( isset($hasError) ) { echo 'Erreur !'; } ?></h2> <form action="/contact" id="form" method="post" class="contactform"> <p class="input"> <label for="contactName">Votre nom et prénom</label> <input<?php if ( isset($nameError) ) { echo ' class="error"'; } ?> type="text" name="contactName" id="contactName" value="<?php if ( isset($hasError) ) { echo trim($_POST['contactName']); } ?>" placeholder="<?php if ( isset($nameError) ) { echo $nameError; } ?>" /> </p> <p class="input"> <label for="email">Votre adresse e-mail</label> <input<?php if ( isset($emailError) ) { echo ' class="error"'; } ?> type="email" name="email" id="email" value="<?php if ( isset($hasError) && (!isset($emailError) ) ) { echo trim($_POST['email']); } ?>" placeholder="<?php if ( isset($emailError) ) { echo $emailError; } ?>" /> </p> <p class="input"> <label for="tel">Votre numéro de téléphone</label> <input type="text" name="tel" id="tel" value="<?php if ( isset($hasError) ) { echo trim($_POST['tel']); } ?>" placeholder="" /> </p> <p class="textarea"> <label for="commentsText">Votre commentaire</label><br /> <textarea<?php if ( isset($commentError) ) { echo ' class="error"'; } ?> name="comments" id="commentsText" rows="10" cols="100%" placeholder="<?php if ( isset($commentError) ) { echo $commentError; } ?>" ><?php if ( isset($hasError) ) { echo trim($_POST['comments']); } ?></textarea> </p> <p class="button"> <button type="submit">Envoyer</button> </p> <input type="hidden" name="submitted" id="submitted" value="true" /> </form> <?php } ?> </div> </div> </article> </koken:load>
contact.lens
<koken:include file="inc/header.html" /> <koken:include file="inc/contact.php" /> <koken:include file="inc/footer.html" />