web-dev-qa-db-fra.com

Comment activer les commentaires pour les profils utilisateur?

Les utilisateurs étant des entités dans D7, j'ai supposé que le type d'utilisateur aurait intégré l'option "commentaire". Cela ne semble pas être le cas. Je veux juste permettre aux utilisateurs de laisser des commentaires sur la page de profil utilisateur. Existe-t-il un moyen simple de procéder?

11
uwe

Vous pouvez utiliser Profile2 , qui attache le nœud au profil utilisateur, afin qu'il puisse être commenté et ressemblera à un commentaire à l'utilisateur.

8
Nikit

Je ne l'ai pas essayé, mais le module Répondre a l'air vraiment bien.

La réponse est une réponse D7 aux commentaires de l'entité. Il n'est pas destiné à remplacer le module de commentaire principal, plus probablement il complète son incapacité à travailler avec des entités autres que le nœud.

La réponse est fondamentalement une entité champable avec des champs sujet et corps qui sont codés en dur dans le module et ne sont pas des champs API de champ. C'est parce que c'est l'essence même de la réponse/du commentaire. L'entité est modifiable afin que vous puissiez créer une "révision" ou tout ce que vous voulez en attachant des champs à ses ensembles.

7
moshe weitzman

Actuellement dans Drupal 7 core, le module de commentaire est toujours couplé à node.module. Les commentaires sont des entités mais ne peuvent pas être ajoutés à des entités autres que des nœuds.

Vous pouvez voir ce problème pour obtenir la mise à jour: Découper le commentaire.module du nœud

5
Sang Le Thanh

J'encouragerai l'utilisation des statuts http://drupal.org/project/statuses pour un style de mur "Twitter-facebook". Ce n'est pas une entité "commentaire" mais cela fonctionne plutôt bien.

J'ai également regardé le code, il est bien écrit et possède de nombreux crochets.

Les statuts s'intègrent également avec: Vues Règles d'indicateur d'activité Domaine Mollom Notifications Messagerie Services Pathauto Twitter Userpoints

2
rafinskipg

Si le cas d'utilisation est un cas où chaque utilisateur ne peut commenter qu'une seule fois (comme un avis par exemple), la meilleure solution que j'ai trouvée est d'utiliser le module Flag. La version 7.3 de Flag est désormais utilisable sur le terrain. Vous créez donc un indicateur "ajouter un commentaire" et ajoutez un champ de texte + les autres champs que vous souhaitez. Ensuite, vous pouvez afficher le contenu des drapeaux dans une vue. Solution très flexible, extensible et non piratée.

2
Adam Harms

La façon dont j'ai fini par implémenter les commentaires sur les profils utilisateur était d'ajouter un type de contenu "livre d'or" qui a un champ de référence utilisateur.

Lorsque vous regardez le profil d'utilisateur de quelqu'un, vous pouvez cliquer sur "signer le livre d'or" qui renvoie à "nœud/ajouter/livre d'or? Modifier [field_guestbook_userreference] [und] [uid] = user123".

Le module de pré-remplissage est utilisé pour préremplir le nom d'utilisateur sur le formulaire d'ajout de nœud avec "user123" et j'utilise css pour masquer ce champ. Le livre d'or a des commentaires activés pour permettre aux autres de commenter également.

J'utilise un bloc de vue pour afficher les titres du "livre d'or" sur le profil utilisateur.

1
uwe

Inspiré par @MotoTribe ( question similaire ici ), je l'ai résolu comme ceci:

Vous aurez besoin de: vues, panneaux, règles, référence d'entité et modules de pré-remplissage de référence d'entité.

  1. Créez un type de contenu user_comments, supprimez le champ du corps (si vous ne le faites pas, les utilisateurs devront saisir 2 champs: le titre et le corps). Les commentaires deviendront le titre du nœud (255 longueur maximale). Ajouter un champ de référence d'entité field_user_reference_comments.

  2. Créez une vue UTILISATEUR (nom: user_comments), ajoutez une relation à la "référence d'entité". Ajoutez un filtre contextuel: User Uid> fournissez une valeur par défaut -> User ID from Url.

  3. La vue intérieure fait 2 blocs (j'ai fait des volets de contenu).

    • Premier bloc: ajouter un champ UID, réécrire les résultats: <a class="" href="/node/add/user-comments?field_user_reference_comments=[uid]">Add comment</a>.
    • Deuxième bloc: ajouter un champ de titre de contenu à l'aide de la relation. Ajoutez plus de relations et de champs selon vos besoins.
  4. Ajoutez une nouvelle règle (importez d'ici, assurez-vous de suivre la syntaxe expliquée ci-dessus):

    { "rules_redirect_on_add_a_user_comment" : {
        "LABEL" : "redirect on add a user comment",
        "PLUGIN" : "reaction rule",
        "OWNER" : "rules",
        "TAGS" : [ "user account" ],
        "REQUIRES" : [ "rules" ],
        "ON" : {
          "node_insert--user_comments" : { "bundle" : "user_comments" },
          "node_update--user_comments" : { "bundle" : "user_comments" }
        },
        "DO" : [
          { "redirect" : { "url" : "users\/[node:field_user_reference_comments]" } }
        ]
      }
    }
    
  5. Activer à partir des panneaux "vue utilisateur". Ajouter l'utilisateur visualisé, ajouter des vues Premier bloc, ajouter des vues Deuxième bloc.

  6. Maintenant vous avez terminé; cela devrait très bien fonctionner. Construisez votre vue aussi complexe que vous le souhaitez, ajoutez: champs, filtres, tris, etc. fonctionne parfaitement.

1
pinueve

créer un nœud de commentaire avec tous les champs. Parmi eux, un champ doit faire référence au type profile2 (Utilisation du module de référence). Ensuite, vous pouvez attacher ce nœud au profil2 à l'aide du module EVA. Si une meilleure réponse, faites-le moi savoir.

0
Sadanand Kenganal

Le profil utilisateur est essentiellement une vue; vous pouvez vous accrocher à la vue pour inclure les commentaires.

0
karthik

vous pouvez ajouter un élément de collection de champs à votre profil, puis y ajouter des champs arbitraires. afin que les utilisateurs puissent insérer des commentaires avec lui si vous utilisez le module de permission de champ et donnez à tous les utilisateurs la permission d'insérer des commentaires. il fonctionne correctement, je l'ai essayé

0
shekoufeh