Tôi đang lập trình tạo ra nhiều nút. Rõ ràng chúng phải có giá trị trước khi lưu trữ chúng. Các $node
đối tượng như vậy có các trường CCK trộn với các trường tùy chỉnh.
Bởi vì các trình xác nhận chỉ thiết lập một form_set_error()
và hầu như không bao giờ trả về kết quả xác thực, tôi phải đi qua máng hình thức để biết liệu một nút có hợp lệ hay không.
Tôi gọi node_validate()
, sau đó form_get_errors()
(mà, lần lượt gọi form_set_error()
).
Dường như có một số vấn đề với phương pháp này:
form_set_error()
đặt tin nhắn vớidrupal_set_message()
; đối với những thứ như cron (người dùng không có phiên), điều này sẽ thêm các thông báo lỗi liên tục mồ côi vào cơ sở dữ liệu (chúng sẽ không bao giờ được in, do đó không bao giờ bị xóa).- mảng trả về lỗi được tạo để được sử dụng trong mảng dạng đa chiều. Đặc biệt với các trường CCK, tôi phải đào khá sâu để tìm ra lỗi thực tế.
- Tôi chỉ muốn lưu trữ một nút, vì vậy tôi không quan tâm đến hình thức người dùng phải đối mặt; sử dụng API biểu mẫu chỉ cảm thấy sai.
Có một phương pháp đơn giản hơn, thanh lịch hơn?