Thêm một loại nội dung mới theo chương trình trong tệp .install hoặc .module?


7

Có 2 cách khác nhau để tạo một loại nội dung mới theo chương trình.

Tôi thích phương pháp đầu tiên, vì cảm giác của tôi nói rằng tốt hơn là duy trì (tức là thêm / cập nhật các trường mới thông qua hook_update_N()) và nó phù hợp hơn trong .installtệp. Nhưng, tôi cứ tự hỏi tại sao nó lại được thực hiện theo cách khác trong mô đun Ví dụ nút.

Có ai biết CON và PRO sử dụng cả hai phương pháp để tạo một loại nội dung mới trong mã không?

Câu trả lời:


5

Một số hook, giống như hook_deletechỉ được gọi trên mô-đun xác định loại nội dung của nút. Nếu bạn lưu loại nội dung vào cơ sở dữ liệu bằng cách sử dụng node_type_save(), nó có thể không được nhận dạng là "được xác định bởi mô-đun" - nó hoạt động như các loại nội dung được tạo bởi người dùng. Tất nhiên trừ khi bạn sẽ đặt $info['module']điểm vào mô-đun của mình - trong trường hợp đó, các mục được tạo sẽ hoạt động theo cùng một cách.


4

Phương thức thứ ba, thường dễ bảo trì hơn, đặc biệt nếu loại nút của bạn sẽ thay đổi theo thời gian, là sử dụng Tính năng để xuất loại nút, trường và trường hợp trường. Bạn vẫn có thể thêm mã tùy chỉnh vào mô-đun Tính năng đã xuất và Tính năng sẽ giữ mã tùy chỉnh đó (và mọi tệp bổ sung) trong các lần xuất sau.

Tôi đã từng sử dụng phương pháp tệp .install trong một thời gian dài, nhưng tính ổn định và tích hợp UI / drush của Tính năng đủ tốt để nó giúp tôi tiết kiệm rất nhiều thời gian để nhận thông tin trường và thông tin loại nút theo cách thủ công.

Nếu bạn thay đổi loại nút / trường / v.v. và xuất lại mô-đun tính năng, bạn có thể cập nhật tính năng này trong giao diện người dùng hoặc sử dụng drush feature-reverthoặc features-revert-all.


-3

Sẽ không có vấn đề gì với điều đó ... với phương pháp cập nhật, bạn có thể tạo các loại nội dung mới ...


Bạn có thực sự nghĩ rằng đây là một TRẢ LỜI cho câu hỏi về nhược điểm và ưu điểm mà OP đang hỏi không?
Sk8erPeter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.