Vấn đề chính
Hiện tại không có cách nào để buộc tất cả các bình luận của con cháu vào Cha mẹ chính (cha mẹ ban đầu / đầu tiên). Ngoài ra, cần một cách để tách cha mẹ chính khỏi tất cả trẻ em.
Giải pháp TL, DR
Sử dụng mô-đun khung nhìn trường xem để tách con cái khỏi cha mẹ chính và thêm tất cả con cái dưới dạng một trường. Bằng cách đó, chúng tôi có thể sắp xếp các Phụ huynh chính theo Phiếu bầu mà không ảnh hưởng đến con cháu.
Nhưng không có cách nào để chỉ cho tất cả con cháu của CID chính; do đó, tạo một mô-đun tùy chỉnh để giải quyết vấn đề này, vì vậy chúng tôi có thể sử dụng kỹ thuật trường xem.
Giải pháp chi tiết
Yêu cầu :
Chế độ xem trường , API thực thể , PID chính (mô-đun tùy chỉnh bên dưới).
chính_pid.info
name = Main PID
description = Links all children and grandchildren comments to the main parent by saving main parent cid into main_parent_pid field when comment is saved.
package = custom
core = 7.x
main_pid.module
<?php
/**
* Implements hook_comment_presave()
*/
function main_pid_comment_presave($comment) {
$pid = $comment->pid;
if ($pid > 0){
while ($pid > 0) {
// Implements comment_load()
$load_comment = comment_load($pid);
$pid = $load_comment->pid;
$cid = $load_comment->cid;
}
$comment->field_main_pid[LANGUAGE_NONE][0]['value'] = $cid;
}
elseif ($pid == 0) {
$comment->field_main_pid[LANGUAGE_NONE][0]['value'] = 0;
}
}
Bây giờ trong các bình luận thêm một trường mới gọi là Main PID với tên máy của field_main_pid
. Bạn có thể thực hiện việc này theo chương trình hoặc sử dụng Giao diện người dùng Drupal (Tôi sẽ để việc này tùy thuộc vào bạn)
Bây giờ, ẩn trường khỏi màn hình
Theo quan điểm của bạn:
Trong các trường, thêm Comment: Rendered Comment
(Nhờ API thực thể)
Trong các trường, thêm Comment ID
Bây giờ thêm một khối mới
Nhấp vào khối và thay đổi tên hiển thị
Trong các trường thêm Depth
Trong các trường, thêm Comment: Rendered Comment
(Nhờ API thực thể)
Các cài đặt kiểu sẽ cho phép bạn thụt lề trẻ em bằng CSS.
Thí dụ:
.depth-1 { width: 480px; margin-left: 10px; }
.depth-2 { width: 470px; margin-left: 20px; }
Trong Tiêu chí lọc, thêm Content: Main PID
Chỉ có cha mẹ chính có PID bằng 0, do đó, điều này sẽ chỉ hiển thị tất cả các con
Sau đó thêm Content: Thread
vào Sắp xếp và Main PID
trong Bộ lọc ngữ cảnh
Vì vậy, Chế độ xem trẻ em của bạn sẽ giống như thế này:
Quay trở lại Chế độ xem đầu tiên :
Trong Tiêu chí lọc, thêm PID chính
Lần này bằng 0, vì chúng tôi chỉ muốn cha mẹ chính.
Bây giờ trong Trường, thêm Global: View
(Cảm ơn Chế độ xem trường)
Chế độ xem ban đầu / chính của bạn sẽ trông như thế này:
Quan trọng: Thêm bộ lọc theo ngữ cảnh của NID tại đây (quên làm điều đó).
Cuối cùng, trong Tiêu chí sắp xếp, hãy thêm Votes Value
(Không hiển thị trên ảnh chụp màn hình vì tôi không bận tâm cài đặt API và tỷ lệ bỏ phiếu) và xóa mặc định Post date
.