web-dev-qa-db-ja.com

スレッド化されたコメントを表示/非表示にするリンクを追加するにはどうすればよいですか?

Drupal 7サイトのコメント設定でスレッド化されたコメントを有効にしました。ここで、その下にスレッド化されたコメントがあるすべてのコメントに、同じ場所にリンクを追加します返信/編集/削除リンクとして)、その下にあるスレッド化されたコメントの表示を切り替えることができます(返信の表示/非表示リンク)。

5
BenjaminRH

あなたはこのようなことをすることができます:

テーマのtemplate.phpファイルで:

/**
 * Override or insert variables into the comment wrapper templates.
 *
 * @param $variables
 *   An array of variables to pass to the theme template.
 * @param $hook
 *   The name of the template being rendered ("comment" in this case.)
 */
function THEMENAME_preprocess_comment_wrapper(&$variables, $hook) {
  // Add jQuery UI accordian to hide the comments in.
  // It is already added in preprocess node but it is safer to also have it here
  // and doens't add much overhead as drupal will only add it once.
  drupal_add_library('system', 'ui.accordion');
  // Add some custom js to collapse comments.
  drupal_add_js(path_to_theme() . '/js/collapsi-comments.js');
}

Collapsi-comments.js(この場合は、テーマの「js」というフォルダーにあります。

(function($){
  Drupal.behaviors.collapsiComments = {
    attach: function(context, settings) {
      $('.comment-form-wrapper.accordion').accordion({
        collapsible: true,
        autoHeight: false,
        active: false,
        header: 'h2.title.comment-form'
      });
    }
  };
}(jQuery));

テーマのcomment-wrapper.tpl.phpで、コメントフォームを次のようなラッパーdivでラップします(テーマにそれがなく、ベーステーマがある場合は、ベーステーマからコピーして変更します。それ以外の場合は、コメントモジュールからコピーして変更します)。

<?php if ($comment_form): ?>
  <div class="comment-form-wrapper accordion">
    <h2 class="title comment-form"><?php print t('Add new comment'); ?></h2>
    <?php print $comment_form; ?>
  </div>
<?php endif; ?>
1
rooby