03
mai 2013

Koken et formulaire de contact

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" />

 

Administrateur système de métier mais surtout curieux de découvrir de nouvelles technos très orientées DIY. A mes heures perdues je fais de la photo avec toujours une petite envie d'intégrer des DIY sous forme de timelaps à base de raspberry.

Écrire un commentaire

Quelle est la dernière lettre du mot wpkxw ? :

Koken et formulaire de contact - Philippe Maladjian - Péripéties bucoliques d'un administrateur systèmes au royaume de la virtualisation, du stockage et accessoirement photographe à ses heures perdues