Khi code với Diem CMF, nhiều khi chúng ta băn khoăn không biết nên dùng components (khai báo trong modules.yml) hay dùng widgets (khai báo trong widget_types.yml)
Với các component có dạng show* (ví dụ showForWap, showForWeb), list* (listByCategory, listByAuthor), Diem sẽ tự động sinh ra form cho ta tùy chọn các tham số khi kéo component vào trang.
Với các component khác thì Diem tự động sinh ra form nhưng không cho ta tùy chọn các tham số khi kéo component vào trang (ngoại trừ tham số cssClass mặc định)
Với widget, ta có thể tạo ra form hiển thị bất kỳ tham số cần thiết nào để sau đó tùy ý nhập vào cho view sử dụng rồi render ra template.
Như vậy, với các box cần tùy biến theo nhiều tham số loằng ngoằng thì hãy nên dùng widget, còn bình thường nên tận dụng component code cho nhanh?!
Ví dụ khi nào sử dụng widget và khi nào sử dụng component:
- Components: showBySlug, listArticlesForCategory (chú ý trong code ta có thể ghi đè/thay đổi các tham số đã nhập ở form khi kéo widget ==> khi kéo widget, chọn show "Record 001" nhưng thực tế ta có thể code để show ra "Record 002" theo context/condition nào đó)
- Widgets:
+ form_class: BoxArticlesForm, view_class: BoxArticlesView = Kéo form tùy chọn Thuộc tính, Chuyên mục, Số lượng, Có hiển thị ảnh hay không, Sắp xếp tăng hay giảm dần
[*Notice] Các nhận định trên là chưa bàn về cache. Hôm nào rảnh review lại cache khi code với component và widget sau.
Title:
Diem CMF - Write component or widget
Description:
Khi code với Diem CMF, nhiều khi chúng ta băn khoăn không biết nên dùng components (khai báo trong modules.yml) hay dùng widgets (khai báo ...
...
Rating:
4