Câu trả lời:
Như juampy đã viết, nút numvvision cũng nên được cập nhật. Bạn cần thực hiện 2 truy vấn:
Bước 1:
UPDATE node SET comment = 0 WHERE type = 'your_content_type'
Bước 2:
UPDATE node_revision nrev
INNER JOIN node nd ON nrev.nid = nd.nid AND nd.type = 'your_content_type'
SET nrev.comment = 0
Bước 3: Xóa bộ nhớ cache
Đôi khi, thật dễ dàng để sử dụng SQL. Điều này, tôi nghĩ, là một trong những trường hợp đó.
UPDATE node SET comment = 0 WHERE type = 'nocommentsforthistype';
0 = bị vô hiệu hóa
1 = chỉ đọc
2 = đọc / ghi.
Thay đổi cài đặt nhận xét mặc định cho loại nội dung, như được đề xuất bởi uwe999 chỉ thay đổi cài đặt mặc định cho loại nội dung. Điều đó có nghĩa là nó sẽ không thay đổi hồi tố cài đặt cho nội dung hiện có (vì điều đó có thể xóa các bình luận hiện có).
Bạn sẽ phải truy cập vào chế độ xem chỉnh sửa nút cho từng nút hiện có mà bạn đang cố gắng tắt nhận xét và cập nhật cài đặt tại đó. Nếu bạn đã cài đặt một mô-đun như mô-đun cột biểu mẫu nút , ẩn / xóa các thành phần khỏi các trang thêm / chỉnh sửa nút, thì bạn sẽ phải cập nhật cấu hình của nó, hộp cài đặt nhận xét xuất hiện cho các nút.
Không có giải pháp nào ở trên làm việc cho tôi. Biểu mẫu nhận xét vẫn được hiển thị trong các nút hiện có trừ khi bạn cũng cập nhật nút numvision.
Đây là cách triển khai hook_update_N () hoạt động với tôi:
/**
* 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();
}
bạn tắt nhận xét trong "cấu trúc / loại nội dung / [tên loại] / chỉnh sửa / cài đặt nhận xét. Đặt" Cài đặt nhận xét mặc định cho nội dung mới "thành ẩn.
Nếu bạn có các bình luận hiện có, bạn có thể xóa chúng trong "nội dung / bình luận" hoặc chỉ không công bố chúng.
Tắt nhận xét ở đây trước:
structure->content types->{node_type}->edit->comment settings
Thật không may, để cập nhật các nút, bạn phải lưu lại từng nút. Sử dụng hook_update bên dưới:
/**
* 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'];
}
}
Đừng quên thay thế 'node_type' thành loại nút của bạn.
Cách đơn giản nhất để vô hiệu hóa nhận xét trong biểu mẫu web là chỉ cần truy cập biểu mẫu web EDIT và ở dưới cùng của tùy chọn EDIT có một tùy chọn Cài đặt Nhận xét .
Theo mặc định, nó luôn luôn MỞ để làm cho nó đóng và phần bình luận từ biểu mẫu web sẽ biến mất ...
Bạn có thể sử dụng CSS để ẩn phần bình luận để các bình luận hồi cứu không hiển thị.
Thêm mã CSS vào Quản trị viên> Giao diện> Nâng cao> tab CSS tùy chỉnh. Bạn sẽ phải xem tên lớp của các div cho các loại trang của trang web cụ thể của bạn. Đây là một ví dụ từ trang thử nghiệm của tôi sử dụng loại trang mục Tin tức (tên máy "bài viết"):
.node-article .comment-wrapper{
visibility: hidden;
display: none;
}
Nó khá thẳng về phía trước, làm theo các bước dưới đây:
Cảm ơn
UPDATE node SET comment = 0; UPDATE node_revision SET comment = 0
. Đã làm cho tôi :-).