2011-06-13 2 views
0

J'utilise le dernier noyau Drupal 7.2 et je n'ai aucune idée de comment résoudre mon problème. Je voudrais réduire tous les commentaires de noeuds (il y en a beaucoup) et les exposer pour l'utilisateur quand il appuie sur "Afficher les commentaires". Je sais que ça a quelque chose à voir avec les fieldsets (ou peut-être que je me trompe), mais où, quoi et comment?commentaires pliants dans Drupal 7

Toutes les réponses utiles seront appréciées. Merci d'avance.

+0

J'espère qu'il y a une solution pour cela. J'ai vraiment besoin d'aide. – Jonah

+0

Peut-être mettre les commentaires dans le panneau et définir son style à repliable fonctionnerait, mais je ne veux pas perdre mon style de commentaires réels (style de thème standard). Que devrais-je faire? – Jonah

+0

CECI pourrait être une solution, mais il n'y a pas de port D7 ici: http://drupal.org/node/94035 – Jonah

Répondre

0

Ceci est plus d'une pointe d'une réponse à votre problème, mais notre site a cessé d'utiliser les commentaires Drupal car ils étaient trop basique et déplacé à utiliser le service gratuit appelé Disqus

+0

Bon conseil, merci. Mais je préfère rester avec ces commentaires de base qui correspondent aux besoins des clients. En tout cas merci - bon conseil pour l'avenir. – Jonah

+0

J'ai été en mesure de trouver cela avec un peu de googling, mais pourrait être facilement modifié pour travailler avec D7 http://drupal.org/node/94035 – red

+0

Oui, vu cela, mais il n'y a pas de solution pour Drupal 7. Que devrait Je change et où mettre cela pour obtenir des commentaires pliants? – Jonah

1

Alors j'ai essayé un tas de façons comme suggéré here.

Ce que je fini par faire depuis que je suis en train de mettre fondamentalement juste toutes les choses comments dans un fieldset pliable est décrite ici:

  1. Allez dans le Content Type -> Manage Display.
  2. Créer un fieldset vide appelé quelque chose comme Comments (Vous aurez besoin fieldset/fieldcollection modules)
  3. Une fois que vous avez le groupe, prenez la field_groupname pour une utilisation ultérieure dans le code.

En template.php ou whereever de votre thème que vous avez le rendu des tableaux que vous aurez quelque chose comme ceci pour ajouter essentiellement l'objet « commentaires » dans le groupe fieldset vous venez de créer.

function mytheme_preprocess_node(&$vars, $hook){ 
    $tempField = null; 

    // Copy the comments/comment form into a variable. 
    $tempField = $vars['content']['comments']; 

    // Rename some of the labels, use the markup 
    $tempField['#title'] = "DMS URL"; 
    $tempField['#field_name'] = "field_comments"; 
    $tempField[0]['#markup'] = $vars['content']['comments']; 

    // Add it into the group (fieldset/group name you copied) 
    $vars['content']['group_commentsgroup']['field_comments'] = $tempField; 
} 

Cela en fait ajouter vos commentaires balises dans un fieldset/groupe vide créé à l'aide d'affichage du nœud à l'aide de gérer fieldset/fieldcollection. En outre, j'utilisais ajax_comments pour cela.

0

Après une longue période de recherche de commentaires individuels pliants, j'ai trouvé une solution, où vous pouvez mettre vos réponses dans un ensemble de champs pliable individuel. :)

Ci-dessous le code dans script.js Inclure les js dans le fichier en tant que scripts .info [] = js/script.js

(function ($) {$ (function() {// Dépêchez et cacher les commentaires et ses réponses, si elles sont présentes dans la plupart des navigateurs, ce

$('.indented').hide(); 

// The Comment section will be turned into a toggle to 
//  open/close the comments 
$('.comment').addClass('closed').bind('click', function() { 
    var $self = $(this), 
     $form = $self.siblings('.indented'), 
     speed = 250; // speed of animation, change to suit, larger = slower 

    if ($self.hasClass('open')) { 
    $self.addClass('transition').removeClass('open'); 
    $form.hide(speed, function() { 
     $self.addClass('closed').removeClass('transition'); 
    }); 
    } 
    else { 
    $self.addClass('transition').removeClass('closed'); 
    $form.show(speed, function() { 
     $self.addClass('open').removeClass('transition'); 
    }); 
    } 
}); 

});.}) (jQuery);