toanloau Posted February 19, 2014 Share Posted February 19, 2014 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 More sharing options...
Quang Ha Posted February 20, 2014 Share Posted February 20, 2014 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 Link to comment Share on other sites More sharing options...
toanloau Posted February 20, 2014 Author Share Posted February 20, 2014 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 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 More sharing options...
Quang Ha Posted February 24, 2014 Share Posted February 24, 2014 nếu bạn tự viết sql thì mình nghĩ cũng bị ảnh hưởng khi prestashop nâng cấp version. mình nghĩ là bạn nên viết lại 1 function getproducts (lấy lại function của prestashop và chỉnh sửa thêm) Link to comment Share on other sites More sharing options...
thanhkha159684 Posted February 25, 2014 Share Posted February 25, 2014 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 Link to comment Share on other sites More sharing options...
toanloau Posted February 25, 2014 Author Share Posted February 25, 2014 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 More sharing options...
thanhkha159684 Posted February 25, 2014 Share Posted February 25, 2014 (edited) Bua truoc minh co lam lau o nho. override trong module thi duong dan la mymodule/override/classes/ten_file.php Nho xoa cache truoc khi chay nha. /cache/class_index.php. Muc dich cung la chi la copy file cua ban ra thu muc override thui nen minh copy lun cho nhanh Edited February 25, 2014 by thanhkha159684 (see edit history) Link to comment Share on other sites More sharing options...
toanloau Posted February 25, 2014 Author Share Posted February 25, 2014 Cảm ơn bạn! mình đã làm được. Link to comment Share on other sites More sharing options...
Recommended Posts