Module Commentaires

Module Commentaires :

Le module Commentaires est celui qui est employé dans les pages de ce site pour créer les contributions visibles en bas de page. Vous trouverez ci-dessous la structure de l'objet Commentaire à reproduire ainsi que la rangée de contenu permettant de créer la logique d'affichage sur le site. Bien entendu ce code est fourni à titre d'exemple et peut être modifié en fonction de vos besoins.

Structure de l'objet 'Commentaire' :

Voici les différents champs (et leur type) qui composent un object "Commentaire" :

  • Auteur (Chaîne de caractères)
  • Email (Chaîne de caractères)
  • Site web (Chaîne de caractères)
  • Commentaire (Champ texte)
  • Date de création (Date)
  • Page (Page)
  • Notification par email (Notification par email)

Rangée de contenu :

Voici le code XML qui permet de créer la rangée permettant d'afficher et de saisir les commentaires dans une page. Ici il s'agit du code employé pour la fonction "Ajouter une contribution" que l'on retrouve en bas de toutes les pages de documentation du ce site ainsi qu'en bas de cette page.

Cette rangée effectue d'abord la recherche des commentaires pour la page en cours, puis elle affiche les résultats éventuels.

Elle permet en plus de saisir un commentaire en affichant un formulaire de saisie.

<row>
    <block module="comments" id="comment" language="fr">
        <div id="comments">
            <atm-if what="!{request:int:viewComments}">
                <h2>
                    <atm-search what="{Commentaire}" name="searchComment">
                        <atm-search-param search="searchComment" type="{Commentaire:Page:fieldID}" value="{page:self:id}" mandatory="true" />
                        <atm-search-limit search="searchComment" value="1" />
                        <atm-search-page search="searchComment" value="1" />
                        <atm-result search="searchComment">
                            <a href="{page:self:url}?viewComments=1#viewComments" title="Voir les {maxresults} contributions(s)">Voir les {maxresults} contributions(s)</a>
                        </atm-result>
                        <atm-noresult search="searchComment"><a href="{page:self:url}?viewComments=1#addComment" title="Ajouter une contribution">Ajouter une contribution</a></atm-noresult>
                    </atm-search>
                </h2>
            </atm-if>
            <atm-if what="{request:int:viewComments}">
                <atm-search what="{Commentaire}" name="searchComment">
                    <atm-search-param search="searchComment" type="{Commentaire:Page:fieldID}" value="{page:self:id}" mandatory="true" />
                    <atm-search-order search="searchComment" type="objectID" direction="asc" />
                    <atm-result search="searchComment">
                        <atm-if what="{firstresult}">
                            <a name="viewComments"> </a>
                            <h2>Vos contributions : </h2>
                        </atm-if>
                        <div class="comment">
                            <a name="comment{Commentaire:id}"> </a>
                            <h3>Par
                                <atm-if what="{Commentaire:Site_web:value}">
                                    <?php
                                        $website = {Commentaire:Site_web:value};
                                        if (substr($website, 0, 4) !== 'http') {
                                            $website = 'http://'.$website;
                                        }
                                    ?>
                                    <a href="{var:string:website}" target="_blank" rel="nofollow">{Commentaire:Auteur:value}</a>
                                </atm-if>
                                <atm-if what="!{Commentaire:Site_web:value}">
                                    {Commentaire:Auteur:value}
                                </atm-if>
                                le {Commentaire:Date_de_creation:formatedValue|d/m/Y H:i:s} :</h3>
                            {Commentaire:Commentaire:htmlvalue}<br />
                        </div>
                    </atm-result>
                </atm-search>
                <a name="addComment"> </a>
                <h2>Ajouter une contribution : </h2>
                <div class="comment">
                    <em>Les contributions servent à compléter la documentation en détaillant des points précis ou pour donner des exemples. Elles sont modérées et peuvent être supprimées sans préavis.<br />
                    <strong>Pour poser des questions ou rapporter un bug, merci d'employer <a href="/forum/" target="_blank">le forum</a></strong>.</em>
                </div>
                <div class="comment">
                    <atm-form what="{Commentaire}" name="addComment">
                        <atm-if what="{filled}">
                            <div class="comment-ok">Votre contribution à été ajoutée !</div>
                        </atm-if>
                        <atm-if what="!{filled}">
                            <atm-if what="{required}">
                                <span class="comment-alert">
                                    <ul>
                                        <atm-form-required form="addComment">
                                            <li>Le champ {requiredname} est requis ...</li>
                                        </atm-form-required>
                                    </ul>
                                </span>
                            </atm-if>
                            <atm-if what="{malformed}">
                                <span class="comment-alert">
                                    <ul>
                                        <atm-form-malformed form="addComment">
                                            <li>Le champ {malformedname} est incorrect...</li>
                                        </atm-form-malformed>
                                    </ul>
                                </span>
                            </atm-if>
                            <input type="hidden" value="1" name="viewComments"/>
                            <label for="12_0"><span class="comment-alert">*</span> Nom :</label><br />
                            <atm-input field="{Commentaire:Auteur}" form="addComment" /><br />
                            <label for="15_0"><span class="comment-alert">*</span> Email <small>(Invisible sur le site)</small> :</label><br />
                            <atm-input field="{Commentaire:Email}" form="addComment" /><br />
                            <label for="18_0">Site : </label><br />
                            <atm-input field="{Commentaire:Site_web}" form="addComment" /><br />
                            <input    type="hidden" value="{page:self:id}" name="16_0"/>
                            <input type="hidden" value="16" name="polymodFields[16]"/>
                            <input type="hidden" value="1" name="17_0"/>
                            <input type="hidden" value="17" name="polymodFields[17]"/>
                            <label for="13_0"><span class="comment-alert">*</span> Texte <small>(HTML non autorisé)</small> : </label><br />
                            <atm-input field="{Commentaire:Commentaire}" form="addComment" /><br />
                            <small>Date de votre contribution : <atm-input field="{Commentaire:Date_de_creation}" form="addComment" /></small>
                            <input class="submit" type="submit" name="submit" value="Poster votre contribution" />
                            <div class="spacer"></div>
                        </atm-if>
                    </atm-form>
                </div>
            </atm-if>
        </div>
    </block>
</row>


3 contribution(s)

Par Frank Taillandier le 14/04/2010 17:02:39 :

@essays : You're welcome ;)

Automne is not just a blog engine, even if you can blog with it, so comments are not shipped by default. I think we will release a separate comments module for Automne users who need to handle comments on their websites.

Par Aude le 02/05/2010 15:00:40 :

Bonjour,

Je viens d'essayer ce module mais j'ai un souci d'affichage.
Après avoir créé l'objet "Commentaire" avec tous les champs puis créé mon modèle de rangée en copiant simplement le code fourni, je n'ai aucun résultat qui apparait.
Ce qui est étrange est que toutes les infos qui doivent être retournées concernant les commentaires sont inscrites en brut (par exemple j'ai " Voir les 3 contributions(s) " au lieu de "Voir les 2 contributions(s)".
Les requêtes ne sont pas exécutées, est-ce que vous avez une idée?
Faut-il modifier également la BDD?

Merci d'avance,

Par Frank Taillandier le 03/05/2010 11:09:04 :

Bonjour Aude,

Concernant ta demande d'aide, je t'ai répondu sur le forum : http://www.automne-cms.org/forum/viewtopic.php?f=2&t=638

Haut