Yanıtlar:
Gibi juampy yazdım, node_revision sıra güncellenmelidir. 2 sorgu yürütmeniz gerekir:
Aşama 1:
UPDATE node SET comment = 0 WHERE type = 'your_content_type'
Adım 2:
UPDATE node_revision nrev
INNER JOIN node nd ON nrev.nid = nd.nid AND nd.type = 'your_content_type'
SET nrev.comment = 0
3. Adım: Önbelleği temizle
Bazen SQL kullanmak en kolay yoldur. Bence bu da bunlardan biri.
UPDATE node SET comment = 0 WHERE type = 'nocommentsforthistype';
0 = devre dışı
1 = salt okunur
2 = okuma / yazma.
Uwe999 tarafından önerildiği gibi, içerik türü için varsayılan yorum ayarlarının değiştirilmesi, yalnızca içerik türü için varsayılan ayarları değiştirir . Bu, mevcut içerik ayarlarını geriye dönük olarak değiştirmeyeceği anlamına gelir (mevcut yorumları silebilir).
Yorumlarını devre dışı bırakmaya çalıştığınız her bir düğüm için düğüm düzenleme görünümünü ziyaret etmeniz ve buradaki ayarları güncellemeniz gerekir. Düğüm ekleme / düzenleme sayfalarındaki öğeleri gizleyen / kaldıran Düğüm form sütunları modülü gibi bir modül yüklediyseniz , düğümler için yorum ayarları kutusunun yapılandırmasını güncellemeniz gerekir.
Yukarıdaki çözümlerin hiçbiri benim için işe yaramadı. Node_revision'ı da güncellemediğiniz sürece yorum formu hala mevcut düğümlerde görüntülenir.
Benim için çalışan hook_update_N () uygulaması:
/**
* 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();
}
"yapı / içerik türleri / [türün adı] / düzenle / yorum ayarlarında yorumları devre dışı bırakırsınız." Yeni içerik için varsayılan yorum ayarı "nı gizli olarak ayarlayın.
Mevcut yorumlarınız varsa "içerik / yorumlar" altında silebilir veya yalnızca yayından kaldırabilirsiniz.
Önce buradaki yorumları devre dışı bırakın:
structure->content types->{node_type}->edit->comment settings
Düğümleri güncellemek için maalesef her düğümü tekrar kaydetmeniz gerekir. Aşağıda hook_update kullanın:
/**
* 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'];
}
}
Düğüm türünüzle 'düğüm_türü' yerine geçmeyi unutmayın .
En basit yolu devre dışı yorumlarla içinde web formunu basitçe gitmektir DÜZENLEME web formunda bir seçenek yoktur ve DÜZENLEME seçeneği altındaki Yorumlar Ayarlar .
By varsayılan onun hep AÇIK yüzden yapmak kapalı ve açıklama bölümünde web formunu dan edecektir kaybolur ...
Geriye dönük yorumların görünmemesi için yorumlar bölümünü gizlemek için CSS'yi kullanabilirsiniz.
Yönetici> Görünüm> Gelişmiş> Özel CSS sekmesine CSS kodu ekleyin. Sitenizin sayfa türleri için div öğelerinin sınıf adlarına bakmanız gerekir. İşte test sitemden Haberler öğesi sayfa türünü (makine adı "makale") kullanan bir örnek:
.node-article .comment-wrapper{
visibility: hidden;
display: none;
}
Oldukça basit, aşağıdaki adımları izleyin:
Teşekkürler
UPDATE node SET comment = 0; UPDATE node_revision SET comment = 0
. Benim için çalıştı :-).