Jump to content

Tìm hiểu override class và controller


Recommended Posts

Chào mọi người! Tôi là thành viên mới và cũng mới tìm hiểu prestashop được ít hôm.

Tôi có đọc nhiều diễn đàn thì thấy prestashop cho phép override các class và controller sẵn có.

Nhưng tôi chưa hình dung được là khi nào thì cần viết đè chúng, tại vì tôi thấy nguyên tắc trong 1 module cơ bản prestashop là: file .php trong thư mục module (tên file trùng với tên module) nó sẽ xử lý các tác vụ rồi chuyển qua file .tpl để hiển thị ra ngoài front-end. Ai có thể giải thích thêm cho tôi phần override với.

Xin cảm ơn!

Link to comment
Share on other sites

Chào  bạn toàn lo âu,

 

nhiều khi bạn muốn thay đổi 1 cái gì đấy trong core của prestashop (ví dụ 1 module luôn luôn giảm giá của sản phẩm đi $10 chẳng hạn) thì bạn phải sửa trong class và function tính giá đúng ko. nhưng như thế có thể lỗi hoặc gây khó khăn khi update version và đặc biệt là rất khó tích hợp vào module mà bạn muốn viết nên prestashop hỗ trợ override để tránh sửa trực tiếp vào file core và tiện cho việc viết trong module.

 

mình giải thích có vẻ hơi khó hiểu :D

Link to comment
Share on other sites

Chào  bạn toàn lo âu,

 

nhiều khi bạn muốn thay đổi 1 cái gì đấy trong core của prestashop (ví dụ 1 module luôn luôn giảm giá của sản phẩm đi $10 chẳng hạn) thì bạn phải sửa trong class và function tính giá đúng ko. nhưng như thế có thể lỗi hoặc gây khó khăn khi update version và đặc biệt là rất khó tích hợp vào module mà bạn muốn viết nên prestashop hỗ trợ override để tránh sửa trực tiếp vào file core và tiện cho việc viết trong module.

 

mình giải thích có vẻ hơi khó hiểu :D

Chân thành cảm ơn bạn! Tuy khó hiểu nhưng t đã có chút hình tượng và sẽ tìm hiểu thêm!

Bạn Quang Hà cho tôi hỏi: [Tôi đang viết module] Trong prestashop, ví dụ tôi muốn lấy tất cả các sản phẩm có trong shop và hiển thị trong phần back office (kể cả người dùng thiết lập multistore), nghĩa là lấy tất cả các sản phẩm không cần phụ thuộc vào language hay shop_id, category. Nhưng tôi kiếm trong nhiều class và controller thì không thấy hàm nào cho giá trị mà tôi mong muốn cả, Bây giờ, tôi đành viết sql query rồi thực thi, theo bạn, cách nào thấy ổn không? và có dễ bị lỗi khi version mới update không? Nếu k được, bạn có thể gợi ý cho tôi giải pháp không? Xin cảm ơn!

Link to comment
Share on other sites

thuong thi trong may cai class se  co ham tuong tu, ban chi can loai bo Context::getContext()->language->id; trong sql WHERE la duoc. va tao ra function moi cho minh. Nen nho override de sau nay de nang cap nhe

Hiện tại mình đang gặp rắc rối trong việc override class với prestashop 1.5.6, m muốn override class trong thư mục module của mình luôn. Bạn nào có thể chỉ thư mục nào mà m lưu file override không? Chứ m viết mà prestashop báo là không tìm được class này. Nếu chi tiết thì m xin cảm ơn nhiều!

Link to comment
Share on other sites

×
×
  • Create New...