Drupal 6 parçacığı yorumlar biçimlendirme değiştirme

1 Cevap php

kötü bir soru ile buradan im.

Flat list - collapsed, Flat list - expanded, Threaded list - collapsed, ve Threaded list - expanded: Drupal kullanıcı sadece 4 şekillerde thems görüntülemek için seçim veren yorumlar anlaştım.

Gibi bir işaretleme sağlamak son birini kullanarak Im:

<div class="comment">
    <!-- comment's content -->
</div>
<div class="indented">
    <!-- next comment is an 'answer' to the previous comment! -->
    <div class="comment">
        <!-- comment's content -->
    </div>
</div>

But i would like to have the 'children' comment inside the same dom element of the 'parent' comment. So, for example, something like:

<div class="comment">
    <!-- comment's content -->
    <div class="indented">
        <!-- next comment is an 'answer' to the previous comment! -->
        <div class="comment">
            <!-- comment's content -->
        </div>
    </div>
</div>

me this blog (wordpress kullanarak) yaptığı gibi dişli yorumları göstermek için izin biçimlendirme olması için.

Bu biçimlendirme gibi kullanın:

<ul>
    <li>
        <div class="comment>
            <!-- comment's content -->
        </div>
        <ul class="children">
            <li>
                <div class="comment>
                    <!-- comment's content -->
                </div>
            </li>
        </ul>
    </li>
</ul>

(I gereken tüm değişiklikleri template.php veya çiftleşmiş dosyalarda eğer daha iyi) Yani, bunu yapmak için drupalish yolu nedir?

1 Cevap

comment_render() içten her şeyi yapmak gibi görünüyor. Yani bu yeniden yazmak gerekir. Eğer düğümleri işlemek için node_show() kullanıyorsanız maalesef otomatik olarak çalışır (değil geçersiz kılınabilir tema fonksiyonu ile) bu yüzden bu ne istediğinizi yapmak için almak için çalışma oldukça bir sürü yapmak gerekir comment_render.

Öncelikle hook_nodeapi (talk module bunu yapar) Henüz yorum yok olduğunu drupal çekirdek ikna için kullanmak zorunda olacak

function talk_nodeapi(&$node, $op) {
  switch ($op) {
    case 'load':
      if (talk_activated($node->type) && arg(0) == 'node' && !arg(2)) {
        // Overwrite setting of comment module and set comments for this node to disabled.
        // This prevents the comments of being displayed.
        $output['comment_original_value'] = $node->comment;
        $output['comment'] = 0;
        return $output;
      }
      break;
  }
}

Sonra (yuvalama) ile comment_render kendi uygulama yazmak gerekir ve düğüm (muhtemelen şablon sayfasında veya bir preprocess işlevi) hale getirilmesinden sonra arayacak.