Wie implementiere ich ein Kommentarantwortformular über Ansichten und mit JS?

9

Wir haben einen Kommentarkörper mit Ansichten, in dem wir den Namen, den Kommentar, das Bild und das Datum für jeden der veröffentlichten Kommentare haben. Am Ende aller Kommentare haben wir einen Kommentarkörper, in den man einen Kommentar einfügen kann.

Dies funktioniert hervorragend für ein lineares Kommentarsystem, aber wir möchten ein Thread-System. In Ansichten kann ich einen Antwortkommentar-Link hinzufügen, der mich jedoch zu einer neuen Seite führt.

Was ich möchte, ist eine JavaScript-basierte Aktion, sodass das Kommentarformular unter dem Antwortlink angezeigt wird, wenn auf die Antwortschaltfläche geklickt wird. Ist das über Ansichten möglich?

Wenn nicht, was ist meine beste Option?

AKTUALISIEREN

Ich habe ein Modul namens Ajax-Kommentare aktiviert. Dies funktioniert hervorragend mit dem Standard-Drupal-Kommentarsystem, aber nicht so sehr mit Ansichten. Ich habe die erforderlichen Klassen hinzugefügt und das Grundlegende zum Laufen gebracht, aber der neu hinzugefügte Kommentar wird erst angezeigt, wenn Sie die Seite aktualisieren. Auch die Nachricht (zur Moderation in die Warteschlange gestellt) befindet sich am Ende der Seite.

Wenn jemand dieses Modul erfolgreich mit Ansichten eingerichtet hat, lassen Sie es mich bitte wissen.

Pratik Bothra
quelle

Antworten:

0

Sie können Ihr Formular in der Vorlagendatei Ihrer Ansicht rendern. Sie können diesen Code in Ihre Ansichten aufnehmen - view-YOUR_VIEW_NAME.tpl

$build = drupal_get_form("comment_node_{$node->type}_form", (object) array('nid' => $node->nid));

print render($build);
Gobinath Manokaran
quelle
0

Ich möchte nur etwas zu Ihrem aktualisierten Teil hinzufügen , vielleicht hilft es Ihnen.

Wenn Sie in der Lage sind, die Nachricht unten comment-wrapper.tpl.phpanzuzeigen, können Sie sie mithilfe der benutzerdefinierten Vorlage von und zum Anzeigen der Nachricht aufrufen, ohne die gesamte Seite <div>zu aktualisieren . Sie können die Antwort bei submit/saveaktualisieren drupal_add_js.

madhurjya
quelle
Danke, war das deine erste Antwort? :-) Wir wollen genau das tun, aber stattdessen in einem Leuchtkasten öffnen. Keine Beleidigung für Drupal, aber WordPress handhabt 4 Dinge so viel besser als Drupal, direkt nach dem Auspacken, hauptsächlich Wysiwyg, Abonnement, Medien und Kommentare. Obwohl CKEditor and Media mit seinem neuesten Patch so viel besser ist!
Pratik Bothra
0

Verwenden Sie dazu das Modul " Entitätssammlung" , in dem Sie Kommentare als Entität erstellen und Entitäten sammeln. Auf diese Weise können Sie ein Thread-Kommentarsystem ausführen.

bhupendraosd
quelle
0

Pratik,

Die Verwendung von AJAX-Kommentaren mit Standardeinstellungen ist eine gute Idee, aber Änderungen daran können wirklich dazu führen, dass Dinge kaputt gehen. Als ich arbeitete, gab es nicht einmal einen hook () für die Datenänderung.

Es ist besser, dies auf benutzerdefinierte Weise zu tun, was je nach Bedarf viel einfacher und flexibler ist.

Vaibhav Jain
quelle
Ajax Comments ist so fehlerhaft, dass wir aufgeben mussten. Ich kann nicht glauben, dass Drupal standardmäßig kein schönes Kommentarsystem hat - die Antwort führt Sie zu einer separaten Seite anstelle einer Ajax / JS-Funktion. Ich denke, ich sollte dies zu D8 beitragen, wenn ich kann. Wir verwenden normalerweise Disqus, aber die Kunden bestanden auf keinem Disqus, also mussten wir diesen Ansatz durchlaufen. Im Moment rahmen wir nur die Antwort ein, um sie in einem Leuchtkasten zu öffnen.
Pratik Bothra
0

Fügen Sie einfach Kommentar: Thread (asc) zu Ihren Sortierkriterien hinzu. Es hält alle Kommentare desselben Threads zusammen

shekoufeh
quelle