it-swarm.com.de

Wie kann ich Kommentare zum Inhaltstyp endgültig deaktivieren?

Ich versuche, Kommentare im Webformular zu deaktivieren. Ich habe alle Einstellungen ausprobiert, die ich finden konnte, aber:

  • Der Link zum Kommentarformular wird weiterhin angezeigt
  • Das Namensfeld und die Schaltfläche "Senden" werden weiterhin im Kommentarformular angezeigt

Könnte mir jemand einen Rat geben?

12
Codium

Wie juampy schrieb, sollte auch node_revision aktualisiert werden. Sie müssen 2 Abfragen ausführen:

Schritt 1:

UPDATE node SET comment = 0 WHERE type = 'your_content_type'

Schritt 2:

UPDATE node_revision nrev
INNER JOIN node nd ON nrev.nid = nd.nid AND nd.type = 'your_content_type'
SET nrev.comment = 0

Schritt 3: Cache löschen

11

Durch Ändern der Standardkommentareinstellungen für den Inhaltstyp, wie von uwe999 vorgeschlagen, werden nur die Standardeinstellungen für den Inhaltstyp geändert. Das bedeutet, dass die Einstellungen für vorhandene Inhalte nicht rückwirkend geändert werden (da dadurch vorhandene Kommentare gelöscht werden könnten).

Sie müssen die Knotenbearbeitungsansicht für jeden vorhandenen Knoten aufrufen, für den Sie Kommentare deaktivieren möchten, und die Einstellungen dort aktualisieren. Wenn Sie ein Modul wie das Modul Knotenformularspalten installiert haben, das Elemente auf den Seiten zum Hinzufügen/Bearbeiten von Knoten verbirgt/entfernt, müssen Sie die Konfiguration aktualisieren. Das Feld für die Kommentareinstellungen wird für die Knoten angezeigt.

7
David Meister

Manchmal ist es am einfachsten, nur SQL zu verwenden. Ich denke, dies ist einer dieser Fälle.

UPDATE node SET comment = 0 WHERE type = 'nocommentsforthistype';

0 = deaktiviert

1 = schreibgeschützt

2 = Lesen/Schreiben.

7
skomorokh

Keine der oben genannten Lösungen hat bei mir funktioniert. Das Kommentarformular wird weiterhin in vorhandenen Knoten angezeigt, es sei denn, Sie aktualisieren auch node_revision.

Hier ist die Hook_update_N () -Implementierung, die für mich funktioniert hat:

/**
 * Implements hook_update_N().
 *
 * Disables comments in existing event nodes.
 */
function hook_update_7000(&$sandbox) {
  $content_type = 'event';

  // Update node table.
  db_update('node')
    ->fields(array('comment' => 1))
    ->condition('type', $content_type)
   ->execute();

  // Update node_revision table.
  $nids = db_select('node', 'n')
    ->fields('n', array('nid'))
    ->condition('type', $content_type)
    ->execute()
    ->fetchCol();
  db_update('node_revision')
    ->fields(array('comment' => 1))
    ->condition('nid', $nids)
    ->execute();
}
3
Juampy NR

sie deaktivieren Kommentare in den Einstellungen "Struktur/Inhaltstypen/[Name des Typs]/Bearbeiten/Kommentar". Setzen Sie "Standardkommentareinstellung für neuen Inhalt" auf "Ausgeblendet".

Wenn Sie bereits Kommentare haben, können Sie diese unter "Inhalt/Kommentare" löschen oder einfach die Veröffentlichung aufheben.

2
uwe

Ich bin mir über Ihr Problem nicht sicher, aber ein schmutziger Trick könnte darin bestehen, eine spezielle Vorlage für Ihren Inhaltstyp zu erstellen und die Kommentarteile zu entfernen.

1
tostinni

Der einfachste Weg zu Kommentare deaktivieren im Webformular besteht darin, einfach zu EDIT-Webformular zu wechseln. Im unteren Bereich der EDIT-Option gibt es die Option - Kommentareinstellungen.

Per standardmäßig ist es immer OFFEN also mach es geschlossen und das Kommentarbereich aus dem Webformular wird verschwinden ...

1
Nitesh Sethia

Sie können CSS verwenden, um den Kommentarbereich auszublenden, sodass nachträgliche Kommentare nicht angezeigt werden.

Fügen Sie der Registerkarte Admin> Darstellung> Erweitert> Benutzerdefiniertes CSS CSS-Code hinzu. Sie müssten sich die Klassennamen der Divs für die Seitentypen Ihrer spezifischen Site ansehen. Hier ist ein Beispiel von meiner Testseite, die den Seitentyp "Nachrichten" (Computername "Artikel") verwendet:

.node-article .comment-wrapper{
 visibility: hidden;
 display: none;
 }
1
Emma

Deaktivieren Sie hier zuerst die Kommentare:

structure->content types->{node_type}->edit->comment settings

Um die Knoten zu aktualisieren, müssen Sie leider jeden Knoten neu speichern. Verwenden Sie hook_update unten:

/**
 * Disable comments on node_type
 */
function hook_update_N(&$sandbox) {
  $content_type = 'node_type';

  // Initialize batch.
  if (!isset($sandbox['total'])) {
    $query = db_select('node');
    $query->addExpression('COUNT(*)');
    $query->condition('type', $content_type);

    $sandbox['total'] = $query->execute()->fetchField();
    $sandbox['progress'] = 0;

    if (empty($sandbox['total'])) {
      $sandbox['#finished'] = 1;
      return t('No %type nodes exist in database.', array('%type' => $content_type));
    }
  }

  // Get and update nodes.
  $nids = db_select('node')
    ->fields('node', array('nid'))
    ->condition('type', $content_type)
    ->range(0, 10)
    ->execute()
    ->fetchCol();

  if (!empty($nids)) {
    $nodes = node_load_multiple($nids, NULL, TRUE);

    foreach ($nodes as $node) {
      $node->comment = 1; // I set comments as 1 where value of 2 enables the comments.
      node_save($node);   // Re-save the node.
    }
  }

  // Increment & check progress.
  $sandbox['progress'] += count($nids);
  if (empty($nids) || $sandbox['progress'] >= $sandbox['total']) {
    $sandbox['#finished'] = 1;
    return t('Updated @count nodes.', array('@count' => $sandbox['progress']));
  }
  else {
    $sandbox['#finished'] = $sandbox['progress'] / $sandbox['total'];
  }
}

Vergessen Sie nicht, 'node_type' durch Ihren Knotentyp zu ersetzen.

1
mrded

Es ist ziemlich einfach, folgen Sie den folgenden Schritten:

  1. Navigieren Sie zu Struktur> Inhaltstypen> Webform
  2. Bearbeiten Sie dann das Webformular und klicken Sie in den Einstellungen auf der linken Seite auf Kommentareinstellungen.
  3. Ändern Sie den Wert "Standardkommentareinstellung für neuen Inhalt" in "Schließen" und speichern Sie die Einstellung.

Vielen Dank

0

Ich hatte dies mit ungefähr 50.000 Datensätzen zu tun, die ich in 4 verschiedene Inhaltstypen importiert habe. Ich wollte keine SQL-Abfragen in der Datenbank löschen und erneut importieren oder damit herumspielen. Wenn Sie die Kommentarfunktion von allen Knoten entfernen möchten, deaktivieren Sie einfach das Kommentarmodul.

0
MascotDB

Verwenden Sie Views-Massenoperationen mit der Standardoperation: "Entitätswerte ändern/ändern". Hier können Sie das Kommentieren auf geschlossen für vorhandene Knoten setzen.

0
giorgio79