Tôi đang cố gắng kiểm đếm số từ trên một tập hợp các trường văn bản dài. Theo như tôi có thể thấy, có một số tùy chọn:
- Tạo chế độ xem và thêm php vào mẫu tùy chỉnh để tạo số lượng từ. Hầu hết các giải pháp tôi tìm thấy dường như quá tham khảo lại vấn đề năm 2005 này, đã lỗi thời đáng kể.
Đây sẽ là một giải pháp khả thi, ngoại trừ không có tùy chọn mã nào được liệt kê hoạt động và tôi không đủ hiểu biết về php hoặc jquery của mình để tự cập nhật chúng lên D7. Tôi đã thử điều này:
<?php $wordcount = " | ".count(explode(" ", strip_tags(trim($content))))." words" ; ?>
Nhưng tôi gặp lỗi biến không hợp lệ.
- Ở cuối vấn đề tương tự, có một giải pháp D6 giúp lưu số lượng từ bất cứ khi nào nút được lưu:
function od_tweaks_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($op == "insert") { // Lưu số từ
$body = $node->body;
$word_count = count(explode(" ", strip_tags(trim($body))));
$nid = $node->nid;
db_query("CHÈN VÀO {od_tweaks} (nid, wordcount) GIÁ TRỊ ($nid, $word_count)");
} khác nếu ($op == "cập nhật") {
$body = $node->body;
$word_count = count(explode(" ", strip_tags(trim($body))));
$nid = $node->nid;
db_query("CẬP NHẬT {od_tweaks} SET wordcount = $word_count WHERE nid = $nid");
}
}
- Sử dụng một mô-đun mà tôi muốn tránh. Ngoài ra, hầu hết các mô-đun đếm từ D7 hiện đã lỗi thời. Số từ dường như không làm được gì nhiều và không có tài liệu. Xác thực trường yêu cầu nhiều mô-đun và một chút phiền phức. Nó có vẻ như là một giải pháp nặng nề cho vấn đề về mã nhẹ. Hầu hết các giải pháp khác mà tôi đã tìm thấy sẽ tạo ra số lượng từ đang chạy cho trường đang hoạt động, nhưng sẽ không lưu hoặc kết hợp.
Các trường được đề cập có thể được cập nhật cùng với nút hoàn chỉnh hoặc được cập nhật thông qua các trường có thể chỉnh sửa, vì vậy tôi nghĩ cách tốt nhất là hook hoặc jquery thuật lại các từ mỗi khi trường được cập nhật và sau đó lưu giá trị đó vào một lĩnh vực mới. Với trường hợp sử dụng của tôi, điều này sẽ giúp tôi linh hoạt thêm và kết hợp các giá trị đếm từ theo nhiều cách khác nhau.
Vì vậy, có vẻ như tùy chọn 2 là đúng hướng, nhưng mã đã lỗi thời. Có cách nào tốt hơn để làm điều này trong D7 không?