Frage

im hier mit einer bösen Frage.

Drupal Griff Kommentare dem Benutzer die Wahl zu Anzeige thems nur in 4 Möglichkeiten zu geben:. Flat list - collapsed, Flat list - expanded, Threaded list - collapsed und Threaded list - expanded

Im die letzten Verwendung, der bietet eine Markup wie:

<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>

Aber ich möchte den Kommentar ‚Kinder‘ haben im gleichen dom Element der ‚Eltern‘ Kommentar. So zum Beispiel so etwas wie:

<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>

, um eine Markup zu haben, die mir erlauben, die Gewinde Kommentare zu zeigen, wie Blog (mit Wordpress) der Fall ist.

Es verwendet, um eine Markup wie:

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

Also, was ist das drupalish Weg, dies zu tun (besser, wenn alle Änderungen, die ich brauche, sind in der template.php oder Templating-Dateien)?

War es hilfreich?

Lösung

comment_render () alles intern zu tun scheint. So müßten Sie diese neu zu schreiben. Leider, wenn Sie mit node_show () Ihre Knoten machen comment_render laufen wird automatisch (nicht über eine überwindbare Thema Funktion), so müssen Sie eine ganze Menge Arbeit tun, um dies zu erhalten zu tun, was Sie wollen.

Zum einen werden Sie verwenden müssen hook_nodeapi Drupal Kern davon zu überzeugen, dass es keine Kommentare (der Talk Modul tut dies)

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;
  }
}

Dann müssen Sie Ihre eigene Implementierung von comment_render schreiben (mit Verschachtelung) und Anruf, dass, nachdem der Knoten gemacht wird (wahrscheinlich auf Ihrer Vorlagenseite oder in einer Vorprozess-Funktion).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top