CMS Automne
http://www.automne-cms.org/forum/

[Résolu] Blog et commentaires
http://www.automne-cms.org/forum/viewtopic.php?f=2&t=768
Page 1 sur 1

Auteur:  Cguillaume [ Lun Jan 17, 2011 11:56 am ]
Sujet du message:  [Résolu] Blog et commentaires

J'essaie de reproduire le système de commentaires tel qu'existant par exemple sur le site Automne, à savoir liés les commentaires à des articles, posts ou autres... mais je dois avouer que je tourne un peu en rond !

J'ai créé par exemple un module "blog" avec deux objets "articles" (3 champs 'titre' 'texte' 'date') et "commentaires" (4 champs 'nom' 'texte' 'page' 'item')... 'page' et 'item' sont censés servir à rattacher les commentaires à des articles particuliers, mais ca marche pas tip top en fait !...

Quelqu'un pourrait me dire si je cherche dans la bonne direction ou si je fais fausse route...?
Tout conseil est le bienvenu,

Merci

Auteur:  Frank [ Lun Jan 17, 2011 12:18 pm ]
Sujet du message:  Re: blog et commentaires

Sur le site d'Automne ce sont 2 modules distincts car on doit pouvoir aussi commenter sur des pages (contributions) :

Dans la structure du module on retrouve donc un champ page et un champ entier qui contiendra l'ID de l'actualité :

> Structure de l'objet '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)
Type (Catégories)
Page (Page)
Actualité (Nombre entier)

Langue (Langue)
Notification par email (Notification par email)

Dans la rangée qui affiche le détail des actualités, on a donc 2 recherches polymod dont une sur les objets commentaires à laquelle on passe en paramètre l'ID de l'actualité :

Code :
            <atm-search-param search="searchComment" type="{Commentaire:Actualite:fieldID}" value="{request:int:item}" mandatory="true" />


tu peux nous dire comment tu as procédé exactement ?

Auteur:  Cguillaume [ Lun Jan 17, 2011 3:52 pm ]
Sujet du message:  Re: blog et commentaires

Merci pour le code proposé.
De mon côté c'est toujours au point mort, mais si j'arrive à avancer je te tiens au courant.

Afin d'effectuer une recherche dans le module actualité, il faut être dans le block module="actualité" et idem pour la recherche dans le module commentaires. Le système que tu proposes implique donc une action du visteur qui clique sur un article particulier afin que les deux recherches portent sur l'ID de l'item, car lorsque l'on est sur la page contenant tous les articles aucune recherche portant sur les item n'est appliquée ??? (on ne peut pas lancer un atm-search sur le module 'commentaires' depuis un bloc module='actualites' ???)

Je cherche un fonctionnement (typique d'un blog) permettant de spécifier lorsque l'on est sur la page contenant tous les articles le nombre de commentaires par articles, et présenter le contenu de ces commentaires lorsque l'on ouvre une actualité en particulier...

Bon bah j'y retourne...

Auteur:  Frank [ Lun Jan 17, 2011 4:15 pm ]
Sujet du message:  Re: blog et commentaires

Pour compter les commentaires, on passe par une classe PHP :

cf. http://www.automne.ws/api/Automne/polym ... AllObjects

Exemple sur le site d'Automne :

Code :
...
              <atm-if what="!{request:int:item}">
                {Blog:Introduction:value}
                <atm-if what="{Blog:Texte:value}">
                  <a href="{page:self:url}?item={Blog:id}" class="blocLien" title="En savoir plus concernant '{Blog:label}'">
                    <span class="blocLienBottom">Lire la suite</span>
                  </a>
                </atm-if>
                <?php
                  //count comments
                  $comments = CMS_poly_object_catalog::getAllObjects(3, true, array(48 => {Blog:id}), false);
                  if ($comments) {
                    $content .= '<a href="'.{page:self:url}.'?item='.{Blog:id}.'&amp;viewComments=1#viewComments" title="Voir les '.sizeof($comments).' commentaire(s)">&raquo; Voir les '.sizeof($comments).' commentaire(s)</a>';
                  } else {
                    $content .= '<a href="'.{page:self:url}.'?item='.{Blog:id}.'&amp;viewComments=1#addComment" title="Ajouter un commentaire">&raquo; Ajouter un commentaire</a>';
                  }
                  ?>
              </atm-if>
...

Auteur:  Cguillaume [ Lun Jan 17, 2011 4:31 pm ]
Sujet du message:  Re: blog et commentaires

On se rapproche du but, ca devrait résoudre mon dernier "petit soucis"... merci !

Auteur:  Cguillaume [ Mer Jan 26, 2011 12:26 pm ]
Sujet du message:  Re: blog et commentaires

Merci pour le conseil d'utilisser la classe CMS_poly_object_catalog::getAllObjects, tout marche "presque" bien !

Une question cependant, j'ai une page qui contient tous les articles, dont l'ID est 12.
Pour l'exemple, disons que l'url correspondante est http://www.monsite.fr/web/12-mesarticles.php
Sur ces articles, il y a possibilité de déposer des commentaires (tel que vous me l'avez conseillé dans les posts précédents).

La recherche sur un article particulier (par exemple dont l'ID=21) me dirige vers la page http://www.monsite.fr/web/12-mesarticles.php?item=21.
Mais lorsque je rédige un commentaire via le formulaire présent sous l'article, au moment de la soumission je me retrouve ici http://www.monsite.fr/web/12-mesarticles.php, donc sur la page présentant tous les articles, et je ne sais donc pas si mon commentaire est valide ou non.

Merci de votre aide, je ne trouve pas la solution ?

Auteur:  Sébastien [ Mer Jan 26, 2011 12:35 pm ]
Sujet du message:  Re: blog et commentaires

Il te suffit de rajouter un champ caché avec ton id dans ton formulaire :
Code :
<input type="hidden" name="item" value="{request:int:item}" />

Auteur:  Cguillaume [ Mer Jan 26, 2011 12:37 pm ]
Sujet du message:  Re: blog et commentaires

MERCI, je l'avais effectivement déjà présent, mais uniquement pour l'export vers le module commentaire.

Auteur:  Cguillaume [ Mer Jan 26, 2011 1:22 pm ]
Sujet du message:  Re: blog et commentaires

Lorsque un commentaire est déposé et valide (via la vérification {filled}), quel est le fonctionnement qui masque les champs du formulaire pour laisser place au message "votre message est bien envoyé" ? (j'ai pas trouvé dans la doc')
Car dans mon cas, je ne vois (toujours) pas d'où vient l'erreur, lorsque !{filled} tout se passe bien (les messages d'erreurs sont affichés), mais lorsque tout est bien saisi alors le commentaire est bien envoyé au module mais il n'y a pas de message ni de masquage du formulaire côté client (bizarre)...

Petite question bonus : lorsque l'on soumet un commentaire, qu'il soit valide ou erroné, l'affichage remonte toujours en haut de page => ce qui n'est pas très pratique. Y a-t-il comme pour précédemment un champ caché permettant d'agir là-dessus ?

Auteur:  Sébastien [ Mer Jan 26, 2011 1:50 pm ]
Sujet du message:  Re: blog et commentaires

Pour info, voila un code commenté d'exemple de création d'un formulaire :
Code :
<atm-form what="{Message}" name="createMessage">
   <!-- Cette partie affiche le message indiquant que le formulaire a été correctement enregistré -->
   <atm-if what="{filled}">
      <div class="message-ok">Votre message a bien été ajouté !</div>
   </atm-if>
   
   <!-- Cette partie affiche le formulaire si il n'est pas rempli ou comporte des erreurs -->
   <atm-if what="!{filled}">
     
      <!-- Cette partie affiche les erreurs éventuelles survenues lors de la soumission -->
      <atm-if what="{error}">
         <div class="message-alert">
            Une erreur est survenue durant l'enregistrement de votre message ...
            Veuillez réessayer.
         </div>
      </atm-if>
     
      <!-- Cette partie affiche une erreur à propos des champs manquants détectés lors de la soumission -->
      <atm-if what="{required}">
         <div class="message-alert">Les champs suivants sont requis :
            <ul>
               <atm-form-required form="createMessage">
                  <li>{requiredname}</li>
               </atm-form-required>
            </ul>
         </div>
      </atm-if>
     
      <!-- Cette partie affiche une erreur à propos des champs incorrects détectés lors de la soumission -->
      <atm-if what="{malformed}">
         <div class="message-alert">Les champs suivants sont incorrects :
            <ul>
               <atm-form-malformed form="createMessage">
                  <li>{requiredname}</li>
               </atm-form-malformed>
            </ul>
         </div>
      </atm-if>
     
      <!-- ... Ajoutez ici les champs atm-input composant votre formulaire ... -->
     
      <!-- Exemple de tag atm-input -->
      <div class="message">
         Votre message :<br/>
         <atm-input field="{Message:Texte}" form="createMessage" />
      </div>
     
     
      <!-- Bouton de soumission du formulaire -->
      <input type="submit" class="submit" value="Publier votre message" />
   </atm-if>
</atm-form>


Après pour ce qui est du positionnement de la page après la soumission du formulaire, il n'y a rien encore qui permette de faire ça pour le moment. Tu dois pouvoir le faire en javascript.

Auteur:  Cguillaume [ Jeu Jan 27, 2011 6:05 pm ]
Sujet du message:  Re: blog et commentaires

Lorsque j'insère ce champ caché mon problème de changement de page est réglé => les messages {required} apparaissent bien, mais toujours rien qui ne se passe lors de la soumission du formulaire dûment rempli (pourtant le commentaire est bien envoyé et enregistré dans le module ???)
Code :
<input type="hidden" name="item" value="{request:int:item}#addComment" />

Je ne vois pas pourquoi le message {filled} n'apparait pas, j'ai revérifier moult fois mon code...
Si quelqu'un a déjà rencontré ce "soucis" ?

PS : si quelqu'un gère mieux que moi le javascript (C pas vraiment le but de ce forum, mais C au cas où), pour résoudre le problème citer plus haut dans ce sujet à propos de la page qui "remonte" lors de la soumission du formulaire (qui est lui situé tout en bas de ma page... grrr)

Merqui

Auteur:  Cguillaume [ Ven Jan 28, 2011 2:40 pm ]
Sujet du message:  Re: blog et commentaires

Problème de validation du formulaire résolu, vu que ma rangée contenait 2 <form ...> (un pour les pages courantes et l'autre pour les commentaires des articles du blog), j'avais laissé le même name aux deux, et l'erreur venait de là (=> pour info à ceux qui rencontrerait ce problème).

Pour le javascript c'est en cours, je poste le résultat dès que j'y arrive!

Page 1 sur 1 Le fuseau horaire est UTC [Heure d’été]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/